1.本实例基于java控制台输出
2.本实例未包含胜负判断算法,待完善
3.本实例用于数组、类和对象、输入输出、流程控制等知识点的教学用
PlayGo.java
package cn.edu.lecheng;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class PlayGo {
private static final int BOARD_SIZE = 10;
/**
* @param args
* 创建者:TOM
* 创建日期:2013-7-16
* @throws IOException
*/
public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String inputStr = "";
int stepCount = 1;
//初始化棋盘
Board board = new Board(BOARD_SIZE);
Position position = new Position(BOARD_SIZE);
//board[3][6]="◎";
//board[2][6]="◆";
//输出初始化的棋盘
System.out.println("游戏开始,初始化棋盘:");
board.printBoard();
System.out.println("玩家1所用棋子:◎;玩家2所用棋子:◆。");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try{
System.out.print("第1步——请输入棋子的行列坐标,用逗号隔开:");
while((inputStr=br.readLine())!=null){
if(position.checkPositionFormat(inputStr)){ //判断输入的坐标格式是否正确
if(board.checkBoard(inputStr)){
board.play(inputStr, stepCount);
board.printBoard();
stepCount++;
}else{
System.out.println("该位置已经有子,请重新下。");
continue;
}
}else{
System.out.println("输入的坐标不正确!请重新输入:");
continue;
}
System.out.print("第"+stepCount+"步——请输入棋子的行列坐标,用逗号隔开:");
}
}catch(IOException ioe){
System.out.println(ioe.getMessage());
}
}
}
Board.java
package cn.edu.lecheng;
public class Board {
private String[][] board;
private int boardSize = 0;
// 构造方法
public Board(int size) {
// TODO Auto-generated constructor stub
boardSize = size;
board = new String[size][size];
for (int i = 0; i < size; i++) {
for (int j = 0; j < size; j++) {
if (i == 0 && j == 0) {
board[i][j] = " ";// 左上角
} else if (i == 0 && j != 0) {
board[i][j] = (new Integer(j)).toString() + " ";// 列号.空格为对齐表格
} else if (i != 0 && j == 0) {
board[i][j] = (new Integer(i)).toString();// 行号
} else {
board[i][j] = "╋";
}
}
}
}
/**
* 输出棋盘
*
* 创建者:TOM
* 创建日期:2013-7-17
*/
public void printBoard() {
for (int i = 0; i < boardSize; i++) {
for (int j = 0; j < boardSize; j++) {
System.out.print(board[i][j]);
}
System.out.println("");
}
}
/**
* 下子
* @param pos
* @param step
* 创建者:TOM
* 创建日期:2013-7-17
*/
public void play(String pos, int step){
String[] tempStr = pos.split(",");
int row = Integer.parseInt(tempStr[0]);
int col = Integer.parseInt(tempStr[1]);
if(step % 2 !=0){
board[row][col]="◎";
}else{
board[row][col]="◆";
}
}
/**
* 检测该位置是否已有子
* @param pos
* @return 无子返回true,有子返回false
* 创建者:TOM
* 创建日期:2013-7-17
*/
public boolean checkBoard(String pos){
boolean flag = false;
String[] tempStr = pos.split(",");
int row = Integer.parseInt(tempStr[0]);
int col = Integer.parseInt(tempStr[1]);
if(board[row][col].equals("╋")){
flag = true;
}
return flag;
}
}
Position.java
package cn.edu.lecheng;
public class Position {
private int bSize = 0;
public Position(int size){
bSize = size;
}
/**
* 检查坐标输入格式
* @param pos
* @return
* 创建者:TOM
* 创建日期:2013-7-18
*/
public boolean checkPositionFormat(String pos){
boolean flag=false;
String[] tempStr = pos.split(",");
try{
if(Integer.parseInt(tempStr[0]) > bSize-1 || Integer.parseInt(tempStr[0]) <=0 ){
return false;
}
if(Integer.parseInt(tempStr[1]) > bSize-1 || Integer.parseInt(tempStr[1]) <=0 ){
return false;
}
flag = true;
}catch(Exception e){
flag=false;
}
return flag;
}
}
演示效果
分享到:
相关推荐
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
Java波浪文字制作方法及源代码 1个目标文件 摘要:Java源码,初学实例,波浪文字 Java波浪文字,一个利用Java处理字符的实例,可以设置运动方向参数,显示文本的字符数组,高速文本颜色,显示字体的 FontMetrics对象,...
单机版java五子棋V1.1.rar 在Servlet中连接数据库的Java代码.rar 备份数据源.rar 学生成绩系统(图形界面).rar 学生课程管理系统.rar 宾馆管理系统.rar 手机游戏J2ME毕业设计.rar 打地鼠游戏.rar 数据持久层框架 ...
制作一个简单的多页Tab功能 一完美的关于请求的目录不存在而需要url重写的解决方案! 在C#中实现MSN消息框的功能 XmlHttp实现无刷新三联动ListBox 鼠标放在一个连接上,会显示图片(类似tooltip) 使用microsoft.web.ui...