JAVA基础 流程控制 做 五子棋
package com.lanou.test;
import java.util.Scanner;
public class Wuziqi {
public static void main(String[] args) {
int[][] game = new int[16][16];
boolean isSuccess = false;
int role = 1;
while (!isSuccess) {
// 打印棋盘 遍历二维数组
for (int[] items : game) {
for (int item : items) {
System.out.print(item + " ");
}
System.out.println();
}
System.out.println("请玩家" + (role == 1 ? "黑棋" : "白棋") + "下棋");
System.out.println("请输入行:");
Scanner scanner = new Scanner(System.in);
int row = scanner.nextInt();
System.out.println("请输入列:");
int col = scanner.nextInt();
if (row < 0 || row >= game.length) {
continue;
}
if (col < 0 || col >= game[row].length) {
continue;
}
if (game[row][col] != 0) {
continue;
}
game[row][col] = role;// 下棋
// 判断获胜
// 横向判断输赢
int count = 0;
int i = 0;
while (col - i >= 0 && game[row][col - i] == role) {// 横着往左走
count++;
i++;
}
i = 0;
while (col + i < game[row].length && game[row][col + i] == role) {// 横着往右走
count++;
i++;
}
if (count >= 6) {
System.out.println("恭喜" + (role == 1 ? "黑棋获胜" : "白棋获胜"));
break;
}
// 竖向判断输赢
count = 0;
i = 0;
while (row - i >= 0 && game[row - i][col] == role) {// 竖着向上走
count++;
i++;
}
i = 0;
while (row + i < game.length && game[row + i][col] == role) {// 竖着向下走
count++;
i++;
}
if (count >= 6) {
System.out.println("恭喜" + (role == 1 ? "黑棋获胜" : "白棋获胜"));
break;
}
// 判断 “/” 方向
count = 0;
i = 0;
while (row - i >= 0 && col + i < game[row].length && game[row - i][col + i] == role) {// 往右上
count++;
i++;
}
i = 0;
while (row + i < game.length && col - i >= 0 && game[row + i][col - i] == role) {// 往左下
count++;
i++;
}
if (count >= 6) {
System.out.println("恭喜" + (role == 1 ? "黑棋获胜" : "白棋获胜"));
break;
}
// 判断 “\” 方向
count = 0;
i = 0;
while (row - i >= 0 && col - i >= 0 && game[row - i][col - i] == role) {// 向左上
count++;
i++;
}
i = 0;
while (row + i < game.length && col + i < game[row].length && game[row + i][col + i] == role) {// 向右下
count++;
i++;
}
if (count >= 6) {
System.out.println("恭喜" + (role == 1 ? "黑棋获胜" : "白棋获胜"));
break;
}
role = 3 - role;// 换子
}
}
}