使用二维数组,实现五子棋功能
import java.util.Scanner;
public class FiveBoard {
public static void main(String[] args) {
String[][] a = new String[15][15];
String[] c = {" ⒈ ", " ⒉ ", " ⒊ ", " ⒋ ", " ⒌ ", " ⒍ ", " ⒎ ", " ⒏ ", " ⒐ ", " ⒑ ", " ⒒ ", " ⒓ ", " ⒔ ", " ⒕ ", " ⒖ "};
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a.length; j++) {
if (j == a.length - 1) {
a[i][a.length - 1] = c[i];
} else if (i == a.length - 1) {
a[a.length - 1][j] = c[j];
} else {
a[i][j] = " 十 ";
}
System.out.print(a[i][j]);
}
System.out.println();
}
boolean flag = true;
out:
while (true) {
Scanner input = new Scanner(System.in);
if (flag == true) {
System.out.println("请黑棋下,他的位置是:");
} else {
System.out.println("请白棋下,他的位置是:");
}
int x = input.nextInt();
int y = input.nextInt();
if (x < 0 || x > a.length - 1 || y < 0 || y > a.length - 1) {
System.out.println("当前输入已超出棋盘有限范围,请重新选择位置");
continue out;
}
if (a[x - 1][y - 1] == " ● " || a[x - 1][y - 1] == " ○ ") {
System.out.println("当前输入位置已被占用,请重新选择位置");
continue out;
}
if (flag == true) {
a[x - 1][y - 1] = " ● ";
flag = false;
} else {
a[x - 1][y - 1] = " ○ ";
flag = true;
}
for (int j = 0; j < a.length; j++) {
for (int k = 0; k < a.length; k++) {
System.out.print(a[j][k]);
}
System.out.println();
}
for (int i = 0; i < a.length; i++) {
for (int j = 0; j < a[i].length - 4; j++) {
if (a[i][j] == a[i][j + 1] && a[i][j] == a[i][j + 2] && a[i][j] == a[i][j + 3] && a[i][j] == a[i][j + 4]) {
if (a[i][j] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][j] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
}
for (int i = 0; i < a.length - 4; i++) {
for (int j = 0; j < a[i].length; j++) {
if (a[i][j] == a[i + 1][j] && a[i][j] == a[i + 2][j] && a[i][j] == a[i + 3][j] && a[i][j] == a[i + 4][j]) {
if (a[i][j] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][j] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
}
for (int i = 0; i < a.length - 4; i++) {
if (a[i][i] == a[i + 1][i + 1] && a[i][i] == a[i + 2][i + 2] && a[i][i] == a[i + 3][i + 3] && a[i][i] == a[i + 4][i + 4]) {
if (a[i][i] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][i] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
for (int i = a.length - 1; i > 4; i--) {
if (a[i][i] == a[i - 1][i - 1] && a[i][i] == a[i - 2][i - 2] && a[i][i] == a[i - 3][i - 3] && a[i][i] == a[i - 4][i - 4]) {
if (a[i][i] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][i] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
for (int i = a.length - 1; i > 4; i--) {
for (int j = 0; j < a.length - 4; j++) {
if (a[i][j] == a[i - 1][j + 1] && a[i][j] == a[i - 2][j + 2] && a[i][j] == a[i - 3][j + 3] && a[i][j] == a[i - 4][j + 4]) {
if (a[i][j] == " 十 ") {
continue;
}
if (a[i][j] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][j] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
}
for (int i = 0; i < a.length - 4; i++) {
for (int j = a.length - 1; j > 4; j--) {
if (a[i][j] == a[i + 1][j - 1] && a[i][j] == a[i + 2][j - 2] && a[i][j] == a[i + 3][j - 3] && a[i][j] == a[i + 4][j - 4]) {
if (a[i][j] == " 十 ") {
continue;
}
if (a[i][j] == " ● ") {
System.out.println("黑方胜");
break out;
}
if (a[i][j] == " ○ ") {
System.out.println("白方胜");
break out;
}
}
}
}
}
}
}