利用Java,在控制台操作下,编写的五子棋,作为复习二维数组,面向对象等基础知识.w表示白棋,b表示黑棋
进口java.util.Scanner; 公开课MainMethod { 公共静态char [] [] c=new char [10] [10]; 公共静态void main (String [] args) { MainMethod MainMethod=new MainMethod (); mainMethod.init (); int我; 布尔颜色; int[]点=new int [2]; 扫描仪扫描仪=new扫描仪(系统); (i=1;我& lt;100;我+ +){ mainMethod.draw();//绘制棋盘 System.out.println(“请输入坐标,范围为(0,0)到(9,9)"); int x=scanner.nextInt (); int y=scanner.nextInt (); 如果(我% 2==1) 颜色=true; 其他的 颜色=false; 点[0]=x; 点[1]=y; 如果(mainMethod。油漆(点、颜色)==false) {//System.out.println(“下的位置不合理,请重新开始”); 打破; } 如果(mainMethod.win ()==1) { mainMethod.draw (); System.out.println(“恭喜白棋赢! !”); 打破; }else if (mainMethod.win ()==1) { mainMethod.draw (); System.out.println(“恭喜黑棋赢! !”); 打破; } } 如果(i==100) System.out.println(“平局”); } 公共char [] [] init(){//初始化棋盘 for (int i=0;我& lt;c.length;我+ +){ for (int j=0;j & lt;c.length;j + +) { [我]c [j]=?”; } } 返回c; } 公共布尔涂料(int[],布尔colr){//判断下的位置是否正确,若正确改变棋盘 布尔b=true; int x=点[0]; int y=点[1]; 如果(内侧(点)==false | | c [x] [y]==' w ' | | c [x] [y]==' b ' | | x & lt;0){ b=false; 返回b; } else if (colr==true){//白棋下 如果(c [x] [y]==' + ') { c [x] [y]=' w '; } } else if (colr==false){//黑棋下 如果(c [x] [y]==' + ') { c [x] [y]=' b '; } } 返回b; } 公共布尔内侧(int[]点){//判断点是否在棋盘上 int x=点[0]; int y=点[1]; 如果(x & lt;0 | | y & lt;0 | | x祝辞=c。长度| | y祝辞=c.length) 返回错误; 其他的 返回true; } 公共int赢得(){//判断输赢,1表示白的赢,1黑的赢,0暂无输赢 int whoWin=0; int[]点=new int [2]; 外:尽管(真正的){ for (int i=0;我& lt;c.length;我+ +){ for (int j=0;j & lt;c.length;j + +) { 如果(c[我][j]==' w '){//遍历数组,找到的第一个白棋 点[0]=我; 点[1]=j + 4; 如果(内侧(点)){//如果存在向右数第4个的棋盘 如果(c[我][j + 1)==' w ',,c[我][j + 2]==' w ',,c[我][j + 3]==' w ',,[我]c [j + 4)==' w ') { whoWin=1; 打破外; } } 点[0]=我+ 4; 点[1]=j + 4; 如果(内侧(点)){//如果存在向右,向下数4个的棋盘 如果(c (i + 1) (j + 1)==' w ',,c [i + 2] [j + 2]==' w ',,c [i + 3] [j + 3]==' w ' ,,c (i + 4] [j + 4)==' w ') { whoWin=1; 打破外; } } 点[0]=我+ 4; 点[1]=j; 如果(内侧(点)){//如果存在向下数4个的棋盘 如果(c (i + 1) [j]==' w ',,c [i + 2] [j]==' w ',,c [i + 3] [j]==' w ',,c (i + 4] [j]==' w ') { whoWin=1; 打破外; } } 点[0]=i - 4; 点[1]=j + 4; 如果(内侧(点)){//如果存在向左,向下数4个的棋盘 如果(c [i - 1] [j + 1)==' w ',,c [i - 2] [j + 2]==' w ',,c [i - 3] [j + 3]==' w ' ,,c (i - 4] [j + 4)==' w ') { whoWin=1; 打破外; } } }else if (c[我][j]==b) { 点[0]=我; 点[1]=j + 4; 如果(内侧(点)){//如果存在向右数第4个的棋盘 如果(c[我][j + 1)==b,,c[我][j + 2]==b,,c[我][j + 3]==b,,[我]c [j + 4)==b) { whoWin=1; 打破外; } } 点[0]=我+ 4; 点[1]=j + 4; 如果(内侧(点)){//如果存在向右,向下数4个的棋盘 如果(c (i + 1) (j + 1)==b,,c [i + 2] [j + 2]==b,,c [i + 3] [j + 3]==' b ' ,,c (i + 4] [j + 4)==b) { whoWin=1; 打破外; } } 点[0]=我+ 4; 点[1]=j; 如果(内侧(点)){//如果存在向下数4个的棋盘 如果(c (i + 1) [j]==b,,c [i + 2] [j]==b,,c [i + 3] [j]==b,,c (i + 4] [j]==b) { whoWin=1; 打破外; } } 点[0]=i - 4; 点[1]=j + 4; 如果(内侧(点)){//如果存在向左,向下数4个的棋盘 如果(c [i - 1] [j + 1)==b,,c [i - 2] [j + 2]==b,,c [i - 3] [j + 3]==' b ' ,,c (i - 4] [j + 4)==b) { whoWin=1; 打破外; } } } } } whoWin=0; 打破外; } 返回whoWin; } 公共空间画(){//绘制棋盘 for (int i=0;我& lt;c.length;我+ +){ for (int j=0;j & lt;c.length;j + +) { system . out。打印(c[我][j] + " "); } System.out.println (); } } }Java编程实现五子棋人人对战代码示例