除此之外,我们还可以利用二维数组来完成五子棋、连连看、俄罗斯方块、扫雷等常见小游戏。 下面简单介绍利用二维数组实现五子棋。我们只要定义一个二维数组作为下棋的棋盘,每当一个棋手 下—步棋后,也就是为二维数组的一个数组元素赋值。下面程序完成了这个程序的初步功能∶
package FiveQI;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @author ChinaManor
* #Description Gobang
* #Date: 4/8/2021 08:32
*/
public class Gobang {
//定义一个二维数组来充当棋盘
private String[][] board;
//定义棋盘的大小
private static int BOARD_SIZE = 15;
public void initBoard(){
board= new String[BOARD_SIZE][BOARD_SIZE];
//把每个元素赋为"十",用于在控制台画出棋盘
for(int i = 0;i< BOARD_SIZE; i++){
for( int j=0;j< BOARD_SIZE;j++){
board[i] [j] = "十";
}
}
}
public void printBoard(){
//打印每个数组元素
for (int i = 0;i < BOARD_SIZE;i++){
for (int j= 0;j< BOARD_SIZE ;j++){
//打印数组元素后不换行
System.out.print(board[i][j]);
}
//每打印完一行数组元素后输出一个换行符
System.out.print ("\n");
}
}
public static void main(String[] args) throws Exception {
Gobang gb = new Gobang ();
gb.initBoard();
gb.printBoard();
///这是用于获取键盘输入的方法
BufferedReader br = new BufferedReader(new InputStreamReader
(System.in));
String inputStr = null;
//br.readLine()∶ 每当在键盘上输入一行内容按回车键,刚输入的内容将被br 读取到
while ((inputStr = br.readLine()) != null){
//将用户输入的字符串以逗号(,)作为分隔符,分隔成两个字符串
String[] posStrArr= inputStr.split(",");
//将两个字符串转换成用户下棋的坐标
int xPos = Integer.parseInt(posStrArr[0]);
int yPos = Integer.parseInt(posStrArr[1]);
//把对应的数组元素赋为"●"。
gb.board[xPos - 1][yPos - 1]= "●";
// 电脑随机生成两个整数,作为计算机下棋的坐标,赋给 board 数组
// 还涉及∶
// 1.坐标的有效性,只能是数字,不能超出棋盘范围
// 2.如果下棋的点已经有棋了,则不能重复下棋。
// 3.每次下棋后,需要扫描谁赢了
gb.printBoard();
System.out.println("请输入您下棋的坐标,应以x,y的格式∶");
}
}
}