import java.util.Scanner;
public class Demo2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[][] chess = new int[16][16];
int n = 1;
int a = 0;
int b = 0;
int finish = 1;
while(true) {
//输入落子
if(n==1) {
System.out.println("棋盘为15*15,请黑方落子");
a = input.nextInt();
b = input.nextInt();
if(chess[a][b]!=0) {
System.out.println("已有落子,请换一个点");
}else {
chess[a][b] = 1;
n = 2;
}
}else {
System.out.println("请白方落子");
a = input.nextInt();
b = input.nextInt();
if(chess[a][b]!=0) {
System.out.println("已有落子,请换一个点");
}else {
chess[a][b] = 2;
n = 1;
}
}
//绘制棋盘
for(int y=0;y<16;y++) {
for(int x=0;x<16;x++) {
if(y==0) {
System.out.print(x+" ");
}else if(x==0) {
System.out.print(y+" ");
}else {
if(chess[x][y]==0) {
System.out.print(" ");
}else if(chess[x][y]==1) {
System.out.print("* ");
}else {
System.out.print("o ");
}
}
if(x==15) {
System.out.println();
}
}
}
//判断是否有一方获胜
//横向5子
if(n==2) {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1) {
continue;
}
if(chess[a+i][b]==1) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("黑子获胜");
}
}
}else {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1|a+i>15) {
continue;
}
if(chess[a+i][b]==2) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("白子获胜");
}
}
}
//纵向五子
if(n==2) {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(b+i<1|b+i>15) {
continue;
}
if(chess[a][b+i]==1) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("黑子获胜");
}
}
}else {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(b+i<1|b+i>15) {
continue;
}
if(chess[a][b+i]==2) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("白子获胜");
}
}
}
//斜向五子
if(n==2) {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1|b+i<1|b+i>15|a+i>15) {
continue;
}
if(chess[a+i][b+i]==1) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("黑子获胜");
}
}
}else {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1|b+i<1|b+i>15|a+i>15) {
continue;
}
if(chess[a+i][b+i]==2) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("白子获胜");
}
}
}
//斜向5子
if(n==2) {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1|b-i<1|b-i>15|a+i>15) {
continue;
}
if(chess[a+i][b-i]==1) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("黑子获胜");
}
}
}else {
int pieces = 0;//是否5子连珠
for(int i=-4;i<5;i++) {
if(a+i<1|b-i<1|b-i>15|a+i>15) {
continue;
}
if(chess[a+i][b-i]==2) {
pieces++;
}else {
pieces = 0;
}
if(pieces==5) {
finish = 0;
System.out.println("白子获胜");
}
}
}
if(finish==0) {
break;
}
}
}
}
//结果演示