packagecom.dream.test01;publicclassGoBang{privateint length =20;//棋盘长度privateString[][] goBang =newString[length][length];//棋盘的容器//棋盘符号privateString add ="┼";privateString black ="●";privateString white ="○";privateString[] nums ={"⒈","⒉","⒊","⒋","⒌","⒍","⒎","⒏","⒐","⒑","⒒","⒓","⒔","⒕","⒖","⒗","⒘","⒙","⒚","⒛"};publicGoBang(){init();printGoBang();}//初始化棋盘privatevoidinit(){for(int i =0; i < goBang.length; i++){for(int j =0; j < goBang[i].length; j++){if(j == length-1){
goBang[i][j]= nums[i];}elseif(i == length-1){
goBang[i][j]= nums[j];}else{
goBang[i][j]= add;}}}}//打印棋盘publicvoidprintGoBang(){for(String[] strings : goBang){for(String string : strings){System.out.print(string);}System.out.println();}}//判断坐标是否超出棋盘范围privatebooleanisIndexOutOfGoBang(int x,int y){if(x <0|| x > length-2|| y <0|| y > length-2){returnfalse;}returntrue;}//判断坐标上是否有棋子privatebooleanisGoBang(int x,int y){if(!goBang[x][y].equals(add)){returnfalse;}returntrue;}/**
* 落子
* @param x x坐标
* @param y y坐标
* @param flag true-黑子 false-白子
* @return -1:落子失败 - 坐标超出棋盘范围
* -2:落子失败 - 坐标上有棋子
* 1:落子成功
*/publicintplay(int x,int y,boolean flag){if(!isIndexOutOfGoBang(x, y)){return-1;}if(!isGoBang(x, y)){return-2;}
goBang[x][y]=(flag)?black:white;return1;}}
packagecom.dream.test01;importjava.util.Scanner;publicclassTest01{publicstaticvoidmain(String[] args){GoBang goBang =newGoBang();Scanner scan =newScanner(System.in);boolean flag =true;//true-黑子 false-白子while(true){System.out.println("请"+((flag)?"黑":"白")+"子输入坐标:");int x = scan.nextInt()-1;int y = scan.nextInt()-1;//落子int play = goBang.play(x, y, flag);if(play ==-1){System.out.println("坐标超出棋盘范围,请重新输入...");continue;}elseif(play ==-2){System.out.println("坐标上有棋子,请重新输入...");continue;}//置反
flag =!flag;//打印棋盘
goBang.printGoBang();}}}