该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
import java.util.Arrays;
import java.util.Scanner;
public class Gobang {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean finish = false;// 有戏是否结束
int flagNum = 1;// 当前下棋者标记
char flagch;// 当前下棋者的棋子
int x = 0;
int y = 0;
// 棋盘初始化
char checkboard[][] = new char[10][10];
for (int i = 0; i < checkboard.length; i++) {
Arrays.fill(checkboard[i], '+');
}
game: while (!finish) {
/* 打印棋盘 */
System.out.println("---------------------");
System.out.println(" 1 2 3 4 6 7 8 9 10");
for (int i = 0; i < checkboard.length; i++) {
System.out.print((char) (i + 65) + " ");
for (int j = 0; j < checkboard[i].length; j++) {
System.out.print(checkboard[i][j] + " ");
}
System.out.println();
}
System.out.println("---------------------");
/* 判断当前下棋者 */
if (flagNum == 1) {
flagch = '*';
System.out.println("请*输入棋子坐标:");
} else {
flagch = 'o';
System.out.println("请o输入棋子坐标:");
}
/* 输入棋子坐标 */
String str = sc.nextLine();
char ch = str.toUpperCase().charAt(0);
x = ch - 65;
y = Integer.parseInt(str.substring(1)) - 1;
/* 判断坐标是否在棋盘内 */
if (x < 0 || x > 9 || y < 0 || y > 9) {
System.out.println("您输入的坐标有误,请重新输入!");
continue;
}
/* 判断坐标上是否有棋子 */
if (checkboard[x][y] == '+') {
checkboard[x][y] = flagch;
} else {
System.out.println("您输入的位置已经有其他棋子,请重新输入!");
continue;
}
/* 判断棋子左侧 */
if (y - 4 >= 0) {
if (checkboard[x][y - 1] == flagch && checkboard[x][y - 2] == flagch && checkboard[x][y - 3] == flagch
&& checkboard[x][y - 4] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子右侧 */
if (y + 4 <= 9) {
if (checkboard[x][y + 1] == flagch && checkboard[x][y + 2] == flagch && checkboard[x][y + 3] == flagch
&& checkboard[x][y + 4] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子上方 */
if (x - 4 >= 0) {
if (checkboard[x - 1][y] == flagch && checkboard[x - 2][y] == flagch && checkboard[x - 3][y] == flagch
&& checkboard[x - 4][y] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子下方 */
if (x + 4 <= 9) {
if (checkboard[x + 1][y] == flagch && checkboard[x + 2][y] == flagch && checkboard[x + 3][y] == flagch
&& checkboard[x + 4][y] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子西北 */
if (x - 4 >= 0 && y - 4 >= 0) {
if (checkboard[x - 1][y - 1] == flagch && checkboard[x - 2][y - 2] == flagch
&& checkboard[x - 3][y - 3] == flagch && checkboard[x - 4][y - 4] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子西南 */
if (x + 4 <= 9 && y - 4 >= 0) {
if (checkboard[x + 1][y - 1] == flagch && checkboard[x + 2][y - 2] == flagch
&& checkboard[x + 3][y - 3] == flagch && checkboard[x + 4][y - 4] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子东北 */
if (x - 4 >= 0 && y + 4 <= 9) {
if (checkboard[x - 1][y + 1] == flagch && checkboard[x - 2][y + 2] == flagch
&& checkboard[x - 3][y + 3] == flagch && checkboard[x - 4][y + 4] == flagch) {
finish = true;
break game;
}
}
/* 判断棋子东南 */
if (x + 4 <= 9 && y + 4 <= 9) {
if (checkboard[x + 1][y + 1] == flagch && checkboard[x + 2][y + 2] == flagch
&& checkboard[x + 3][y + 3] == flagch && checkboard[x + 4][y + 4] == flagch) {
finish = true;
break game;
}
}
flagNum *= -1;
}
System.out.println("---------------------");
System.out.println(" 1 2 3 4 6 7 8 9 10");
for (int i = 0; i < checkboard.length; i++) {
System.out.print((char) (i + 65) + " ");
for (int j = 0; j < checkboard[i].length; j++) {
System.out.print(checkboard[i][j] + " ");
}
System.out.println();
}
System.out.println("---------------------");
if(flagNum==1){
System.out.println("*棋胜利");
}else{
System.out.println("o棋胜利");
}
}
}
只能识别按顺序识别!例如 12345 不能先1235 再4! 求大佬帮忙解决!在线等,急!