003importjava.util.Arrays;
004importjava.util.Scanner;
005
006publicclassFiveChess{
007privatestaticfinalintCELL=16;
008privatestaticfinalcharCELL_CHAR='\u253C';
009privatechar[][]cells;
010privatebooleanturn;//true:黑;false:白
011
012publicFiveChess(){
013cells=newchar[FiveChess.CELL][FiveChess.CELL];
014for(inti=0;i
015Arrays.fill(cells[i],FiveChess.CELL_CHAR);
016}
017turn=true;
018}
019
020publicvoidprintCells(){
021System.out.print("");
022for(inti=0;i 023System.out.print((char)(i+'a')+"");
024}
025System.out.println();
026for(inti=0;i 027for(intj=0;j 028if(j==0){
029System.out.print((char)(i+'a')+"");
030}
031System.out.print(cells[i][j]+"");
032}
033System.out.println();
034}
035}
036
037publicbooleandownChess(introw,intcolumn){
038booleanflag=true;
039if(row>=FiveChess.CELL||row<0
040||column>=FiveChess.CELL||column<0){
041System.out.println("输入有误,请重新输入!");
042flag=false;
043}else{
044if(cells[row][column]!=FiveChess.CELL_CHAR){
045System.out.println("输入位已落子,请重新输入!");
046flag=false;
047}else{
048cells[row][column]=turn?'@':'o';
049}
050}
051returnflag;
052}
053
054publicbooleanisWin(introw,intcolumn){
055booleanisWin=false;
056charcurChess=turn?'@':'o';
057if(this.isHorizontalWin(row,column,curChess)
058||this.isVerticalWin(row,column,curChess)
059||this.isLeftObliqueDownWin(row,column,curChess)
060||this.isLeftObliqueUpWin(row,column,curChess)){
061isWin=true;
062}
063returnisWin;
064}
065
066publicbooleanisHorizontalWin(introw,intcolumn,charcurChess){
067booleanisWin=false;
068intcount=0;
069for(intc=column-1;c>=0;c--){
070if(cells[row][c]==curChess){
071count++;
072}else{
073break;
074}
075}
076for(intc=column+1;c 077if(cells[row][c]==curChess){
078count++;
079}else{
080break;
081}
082}
083System.out.println("horizontalcount:"+count);
084if(count>=4){
085isWin=true;
086}
087returnisWin;
088}
089
090publicbooleanisVerticalWin(introw,intcolumn,charcurChess){
091booleanisWin=false;
092
093returnisWin;
094}
095
096publicbooleanisLeftObliqueDownWin(introw,intcolumn,charcurChess){
097booleanisWin=false;
098returnisWin;
099}
100
101publicbooleanisLeftObliqueUpWin(introw,intcolumn,charcurChess){
102booleanisWin=false;
103intcount=0;
104for(intr=row-1,c=column-1;r>=0&;&;c>=0;r--,c--){
105if(cells[r][c]==curChess){
106count++;
107}else{
108break;
109}
110}
111if(count>=