资源描述:
《《java五子棋》word版》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、packagecom.tarena.day07.gobang;importjava.util.Scanner;publicclassGoGang{/***@paramargs*/publicstaticvoidmain(String[]args){intspace=0;intblack=1;intwhite=2;String[]chessName={"空","黑","白"};int[]board=newint[16*16];//定义一个棋盘Scannerconsole=newScanner(System.in);intidx=0;while(true){print(board);
2、//调用打印棋盘的方法intcolor=idx++%2+1;//执黑先行(1,2,1,2,1,2)inti,j;do{System.out.print("请"+chessName[color]+"方下子(ij):");i=console.nextInt(16);j=console.nextInt(16);}while(board[i*16+j]!=space);board[i*16+j]=color;if(isWin(board,color,i,j)){print(board);System.out.println("恭喜"+chessName[color]);break;}}}
3、publicstaticbooleanisWin(int[]board,intcolor,inti,intj){returnn2sWin(board,color,i,j)
4、
5、w2eWin(board,color,i,j)
6、
7、wn2esWin(board,color,i,j)
8、
9、en2wsWin(board,color,i,j);}/**东北到西南*/privatestaticbooleanen2wsWin(int[]board,intcolor,inti,intj){while(board[i*16+j]==color){j++;i--;if(j==16
10、
11、i==-1)break
12、;}//i,j是第一个空白子j--;i++;intc=0;//计数变量while(board[i*16+j]==color){c++;j--;i++;if(j==-1
13、
14、i==16)break;}returnc>=5;}/**西到东*/privatestaticbooleanw2eWin(int[]board,intcolor,inti,intj){while(board[i*16+j]==color){j--;if(j==-1)break;}//i,j是第一个空白子j++;intc=0;//计数变量while(board[i*16+j]==color){c++;j++;if(j
15、==16)break;}returnc>=5;}/**西北到东南*/privatestaticbooleanwn2esWin(int[]board,intcolor,inti,intj){while(board[i*16+j]==color){j--;i--;if(j==-1
16、
17、i==-1)break;}//i,j是第一个空白子j++;i++;intc=0;//计数变量while(board[i*16+j]==color){c++;j++;i++;if(j==16
18、
19、i==16)break;}returnc>=5;}/**北到南方向*/privatestaticbooleann2
20、sWin(int[]board,intcolor,inti,intj){while(board[i*16+j]==color){i--;if(i==-1)break;}//i,j是第一个空白子i++;intc=0;//计数变量while(board[i*16+j]==color){c++;i++;if(i==16)break;}returnc>=5;}publicstaticvoidprint(int[]board){char[]ico={'+','@','O'};char[]hex="0123456789abcdef".toCharArray();//for(inti=0;i<
21、board.length;i++){//System.out.print(ico[board[i]]);//if((i+1)%16==0){//System.out.println();//}//}System.out.print("");for(inti=0;i<16;i++){System.out.print(hex[i]);}System.out.println();for(inti=0;i<16;i++){System.out.print(hex[i]);for(intj