import java.util.Scanner;
public class Gomoku{
public static void display(String [] [] b){
System.out.println(" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 ");
for(int n = 1;n <= 15;n++){
if(n<10){
System.out.print(n+" ");
}else
System.out.print(n);
for(int m = 1;m <= 30;m++){
System.out.print(b[n-1][m-1]+" ");
}
System.out.println();
}
}
public static int sf(int a ,int c,String [][]b){
int p = 1;
for(int e = 1;e <= 10;e++){
for (int v = 1;v <= 26;v++){
if(b[e-1][v-1]=="O"&&b[e-1][v]=="O"&&b[e-1][v+1]=="O"&&b[e-1][v+2]=="O"&&b[e-1][v+3]=="O"){
p = 2;
}else if (b[e-1][v-1]=="O"&&b[e][v-1]=="O"&&b[e+1][v-1]=="O"&&b[e+2][v-1]=="O"&&b[e+3][v-1]=="O"){
p = 2;
}else if(b[e-1][v-1]=="O"&&b[e][v]=="O"&&b[e+1][v+1]=="O"&&b[e+2][v+2]=="O"&&b[e+3][v+3]=="0"){
p = 2;
}else if(b[e+4][v-1]=="O"&&b[e+3][v]=="O"&&b[e+2][v+1]=="O"&&b[e+1][v+2]=="O"&&b[e][v+3]=="O"){
p = 2;
}else if(b[e-1][v-1]=="@"&&b[e-1][v]=="@"&&b[e-1][v+1]=="@"&&b[e-1][v+2]=="@"&&b[e-1][v+3]=="@"){
p = 3;
}else if (b[e-1][v-1]=="@"&&b[e][v-1]=="@"&&b[e+1][v-1]=="@"&&b[e+2][v-1]=="@"&&b[e+3][v-1]=="@"){
p = 3;
}else if(b[e-1][v-1]=="@"&&b[e][v]=="@"&&b[e+1][v+1]=="@"&&b[e+2][v+2]=="@"&&b[e+3][v+3]=="@"){
p = 3;
}else if(b[e+4][v-1]=="@"&&b[e+3][v]=="@"&&b[e+2][v+1]=="@"&&b[e+1][v+2]=="@"&&b[e][v+3]=="@"){
p = 3;
}
}
}
if ( p == 1){
return 1;
}else if ( p == 2){
return 2;
}else {
return 3;
}
}
public static void main(String [] args){
System.out.println("欢乐五子棋");
for(int o = 1;o > 0;o++){
String [] [] b;
b = new String [15] [];
for(int n = 1;n <= 15;n++){
b[n-1] = new String [30];
for(int m = 1;m <= 30;m++){
b[n - 1][m - 1] = "+";
}
}
Scanner scanner = new Scanner(System.in);
display(b);
int v = 6;
for (int i = 1 ;i > 0;i++){
if (v == 3){
v = 6;
}
else if (v == 6 ){
int g = 6;
System.out.println("O方落子");
System.out.println("请输入你要落子的位置的行数");
int c = scanner.nextInt();
if(c > 0 && c <=15){}
else{
System.out.println("请输入正确的行数");
g = 3;
continue;
}
System.out.println("请输入你要落子的位置的列数");
int a = scanner.nextInt();
if(a > 0&& a <= 30){}
else{
System.out.println("请输入正确的列数");
continue;
}
if(b[c - 1][a- 1] == "+"){
b[c - 1][a- 1] = "O";
}else{
System.out.println("此处已经有子");
continue;
}
display(b);
if(sf(a,c,b)==2){
System.out.println("O胜出");
break;
}
}
System.out.println("@方落子");
System.out.println("请输入你要落子的位置的行数");
int n = scanner.nextInt();
if(n > 0&& n <=15){}
else{
System.out.println("请输入正确的行数");
v = 3;
continue;
}
System.out.println("请输入你要落子的位置的列数");
int m = scanner.nextInt();
if(m > 0&& m <=30){}
else{
System.out.println("请输入正确的列数");
v = 3;
continue;
}
if(b[n - 1][m- 1] == "+"){
b[n - 1][m- 1] = "@";
}else{
v = 3;
System.out.println("此处已经有子");
continue;
}
display(b);
if(sf(m,n,b) == 3){
System.out.println("@方获胜");
break;
}
}
System.out.println("输入1开始下一盘,输入其他结束");
Scanner scanner1 = new Scanner(System.in);
int q = scanner1.nextInt();
if(q == 1){
continue;
}else
break;
}
}
}