public class MainClass {
// 创建棋盘
public void Create(char board[][]) {
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
board[i][j] = '+';
}
}
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(" " + board[i][j]);
}
System.out.println();
}
}
/*
* 下棋(黑白棋) 调用其他函数判断是否五连
*/
public int BW(char board[][], char colour) {
Scanner input = new Scanner(System.in);
System.out.print("输入 x y:");
int x = input.nextInt();
int y = input.nextInt();
board[x][y] = colour;
for (int i = 0; i < 10; i++) {
for (int j = 0; j < 10; j++) {
System.out.print(" " + board[i][j]);
}
System.out.println();
}
int Test1 = Test1(board, x, y, colour);
int Test2 = Test2(board, x, y, colour);
int Test3 = Test3(board, x, y, colour);
int Test4 = Test4(board, x, y, colour);
if (Test1 == 5 || Test2 == 5 || Test3 == 5 || Test4 == 5) {
System.out.println(colour + "棋子连接成功···");
System.out.println("···游戏结束···");
return 1;
} else
return 0;
}
/*
* 判断黑棋是否为五个
*
* 判断什么时候白棋下,什么时候黑棋下 当没有连成五个的时候就可以下 当连成五个时 游戏结束
*/
// 横向
int j = 0;
public int Test1(char board[][], int x, int y, char colour) {
for (int i = y - 4; i <= y + 4; i++) {
if (i >= 0 && i <= 9) {
if (board[x][i] == colour) {
j = j + 1;
if (j == 5)
break;
} else {
j = 0;
}
}
}
return j;
}
// 竖向
public int Test2(char board[][], int x, int y, char colour) {
for (int i = x - 4; i <= x + 4; i++) {
if (i >= 0 && i <= 9) {
if (board[i][y] == colour) {
j = j + 1;
if (j == 5)
break;
} else
j = 0;
}
}
return j;
}
// 向右下斜
public int Test3(char board[][], int x, int y, char colour) {
int i, t;
for (t = x - 4, i = y - 4; t <= x + 4; t++, i++) {
if (i <= y + 4 && t >= 0 && t <= 9 && i >= 0 && i <= 9) {
if (board[t][i] == colour) {
j = j + 1;
if (j == 5)
break;
} else
j = 0;
}
}
return j;
}
// 向左下斜
public int Test4(char board[][], int x, int y, char colour) {
int t, i;
for (t = x + 4, i = y - 4; t >= x - 4; t--, i++) {
if (i <= y + 4 && t >= 0 && t <= 9 && i >= 0 && i <= 9) {
if (board[t][i] == colour) {
j = j + 1;
if (j == 5)
break;
} else
j = 0;
}
}
return j;
}
public static void main(String[] args) {
while (true) {
Scanner in = new Scanner(System.in);
// 是否继续(0为继续 1为结束)
System.out.println("0为开始/继续游戏 ,1为结束游戏.");
int New = in.nextInt();
if (New == 1) {
System.out.println("结束游戏");
break;
}
if (New == 0) {
char[][] board = new char[10][10];
MainClass first = new MainClass();
first.Create(board); // 棋盘已经创建好
/*
* 黑棋为O 白棋为@
*/
Scanner input = new Scanner(System.in);
System.out.print("输入先走的棋子O(黑棋子) @(白棋子):");
char colour = input.next().charAt(0);
/*
* 判断是否有五个棋
*/
out: for (int i = 0; i < 100; i++) {
for (int j = 0; j <= 1; j++) {
if (j == 0) {
if (first.BW(board, 'O') == 1) {
break out;
}
} else {
if (first.BW(board, '@') == 1) {
break out;
}
}
}
}
}
}
}
}
这个适合初学者看,在控制台上展示,没有高大上的窗口。(适合初学者哦)
有不懂得算法下面评论,我会回复哦