import java.util.Scanner;
public class YouWuZiQi {
public static void main(String[] args) {
String[][] map =new String[10][10];
int result = 0;// 结果
int count = 0;// 计步
int a, b;// 下子位置
Scanner sca =new Scanner(System.in);
/*-----------遍历输出(有格子)-------------*/
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
map[i][j] = "*";
map[i][0] = "" + i + "";
map[0][j] = "" + j + "";
System.out.print(map[i][j] + " ");
}
System.out.println();
}
do {
/*-----------------玩家1输入----------------------*/
if (count % 2 == 0) {
System.out.println("第" + (count + 1) + "步:");
System.out.println("1号玩家请输入您要点击的行数:");
a = sca.nextInt();
if (a < 1 | a > map.length - 1) {
System.out.println("输入超出行边界,1号玩家重新输入坐标");
System.out.println();
continue;
}
System.out.println("1号玩家请输入您要点击的列数:");
b = sca.nextInt();
if (b < 1 | b > map.length - 1) {
System.out.println("输入超出列边界,1号玩家重新输入坐标");
System.out.println();
continue;
}
/*-------判断1号玩家并下子----------*/
if (count % 2 == 0) {
if (map[a][b] == "1" || map[a][b] == "2") {
System.out.println("该位置已有棋子,请重新输入");
} else {
map[a][b] = "1";
count++;
}
}
/*-----------遍历输出-------------*/
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
/*-------------------判断1胜--------------------*/
// 纵向
for (int i = 1; i < map.length - 4; i++) {
for (int j = 1; j < map[i].length; j++) {
if (map[i][j] == "1" & map[i + 1][j] == "1" & map[i + 2][j] == "1" & map[i + 3][j] == "1"
& map[i + 4][j] == "1") {
result = 1;
}
}
}
// 横向
for (int i = 1; i < map.length; i++) {
for (int j = 1; j < map[i].length - 4; j++) {
if (map[i][j] == "1" & map[i][j + 1] == "1" & map[i][j + 2] == "1" & map[i][j + 3] == "1"
& map[i][j + 4] == "1") {
result = 1;
}
}
}
// 斜向
for (int i = 3; i < map.length - 2; i++) {
for (int j = 3; j < map[i].length - 2; j++) {
if ("1" == map[i][j] & "1" == map[i - 1][j - 1] & "1" == map[i - 2][j - 2]
& "1" == map[i + 1][j + 1] & "1" == map[i + 2][j + 2]
|| "1" == map[i][j] & "1" == map[i - 1][j + 1] & "1" == map[i - 2][j + 2]
& "1" == map[i + 1][j - 1] & "1" == map[i + 2][j - 2]) {
result = 1;
}
}
}
if (result == 1) {
System.out.println("玩家1胜出,游戏结束");
return;
}
}
if (count % 2 == 1) {
/*--------------2下子并判断界限--------------*/
System.out.println("第" + (count + 1) + "步:");
System.out.println("2号玩家请输入您要点击的行数:");
a = sca.nextInt();
if (a < 1 | a > map.length - 1) {
System.out.println("输入超出行边界,2号玩家重新输入坐标");
System.out.println();
continue;
}
System.out.println("2号玩家请输入您要点击的列数:");
b = sca.nextInt();
if (b < 1 | b > map.length - 1) {
System.out.println("输入超出列边界,2号玩家重新输入坐标");
System.out.println();
continue;
}
/*-------------------2下子判断重复--------------------*/
if (count % 2 == 1) {
if (map[a][b] == "1" || map[a][b] == "2") {
System.out.println("该位置已有棋子,请重新输入");
} else {
map[a][b] = "2";
count++;
}
}
/*-----------遍历输出-------------*/
for (int i = 0; i < map.length; i++) {
for (int j = 0; j < map[i].length; j++) {
System.out.print(map[i][j] + " ");
}
System.out.println();
}
/*------------判断2胜-------------*/
// 纵向
for (int i = 1; i < map.length - 4; i++) {
for (int j = 1; j < map[i].length; j++) {
if (map[i][j] == "2" & map[i + 1][j] == "2" & map[i + 2][j] == "2" & map[i + 3][j] == "2"
& map[i + 4][j] == "2") {
result = 2;
}
}
}
// 横向
for (int i = 1; i < map.length; i++) {
for (int j = 1; j < map[i].length - 4; j++) {
if (map[i][j] == "2" & map[i][j + 1] == "2" & map[i][j + 2] == "2" & map[i][j + 3] == "2"
& map[i][j + 4] == "2") {
result = 2;
}
}
}
// 斜向
for (int i = 3; i < map.length - 2; i++) {
for (int j = 3; j < map[i].length - 2; j++) {
if ("2" == map[i][j] & "2" == map[i - 1][j - 1] & "2" == map[i - 2][j - 2]
& "2" == map[i + 1][j + 1] & "2" == map[i + 2][j + 2]
|| "2" == map[i][j] & "2" == map[i - 1][j + 1] & "2" == map[i - 2][j + 2]
& "2" == map[i + 1][j - 1] & "2" == map[i + 2][j - 2]) {
result = 2;
}
}
}
if (result == 2) {
System.out.println("玩家2胜出,游戏结束");
return;
}
}
/*----------------输入结束---------------------*/
} while (result == 0);
/*----------------检测结束--------------------*/
}
}