java实现简单控制台五子棋游戏
本文实例为大家分享了java实现简单控制台五子棋的具体代码,供大家参考,具体内容如下
GobangMain这个类是游戏的主方法,主要用于控制游戏的执行,值得注意的是输入的坐标的格式是3,4的样式,不能是其他的格式,也不能出现空格。
packagecom.qf.Gobang; importjava.util.Scanner; importorg.omg.CORBA.PUBLIC_MEMBER; publicclassGobangMain{ publicstaticStringwhite="白色"; publicstaticStringblack="黑色"; publicstaticbooleancolor=true; publicstaticStringspoint;//存储坐标 publicstaticvoidmain(String[]args){ Gobanggobang=newGobang(); Scannerscanner=newScanner(System.in); while(true){ System.out.println("请"+(color?white:black)+"落子:"); spoint=scanner.next();//获得坐标 Pointpoint=gobang.analysisPoint(spoint);//解析坐标,并返回坐标对象 if(gobang.luoZi(point,color)){ gobang.printMap(); if(gobang.isWin(point,color)){ System.out.println(""+(color?white:black)+"赢了!"); break; } color=!color; } } } }
Point类
publicclassPoint{ publicPoint(intx,inty){ super(); this.x=x; this.y=y; } intx; inty; }
Gobang类是游戏类,主要包含游戏的判断游戏的结束等等。
packagecom.qf.Gobang; importjava.awt.Event; importjava.util.Scanner; publicclassGobang{ publicintn=20;//地图的规模 publicStringcolor;//确认是白方,还是黑方 publicStringmark="╋"; publicStringwhite="○"; publicStringblack="●"; publicString[][]map=newString[n][n];; publicString[]coordinate={"⒈","⒉","⒊","⒋","⒌","⒍","⒎","⒏","⒐","⒑","⒒","⒓","⒔","⒕","⒖","⒗","⒘", "⒙","⒚","⒛"}; publicGobang(){ //初始化地图 init(); } //初始化地图 publicvoidinit(){ for(inti=0;i18||point.y<0||point.y>18){ returnfalse; } //判断落子的地方有没有其他的子 if(map[point.x][point.y]!=mark){ returnfalse; } map[point.x][point.y]=color?white:black; returntrue; } //判断是否输赢 publicbooleanisWin(Pointpoint,booleancolor){ //纵向 intzxS=0;//纵向上 for(inti=0;i<5;i++){ if(point.x-i<0){ break; } if(map[point.x-i][point.y].equals(color?white:black)){ zxS++; }else{ break; } } intzxX=0;//纵向下 for(inti=1;i<5;i++){ if(point.x+i>18){ break; } if(map[point.x+i][point.y].equals(color?white:black)){ zxX++; }else{ break; } } //横向 inthxZ=0;//横向左 for(inti=0;i<5;i++){ if(point.y-i<0){ break; } if(map[point.x][point.y-i].equals(color?white:black)){ hxZ++; }else{ break; } } inthxY=0;//横向右 for(inti=1;i<5;i++){ if(point.y+i>18){ break; } if(map[point.x][point.y+i].equals(color?white:black)){ hxY++; }else{ break; } } //正斜 intzxxS=0;//正斜上 for(inti=0;i<5;i++){ if(point.y+i>18||point.x-i<0){ break; } if(map[point.x-i][point.y+i].equals(color?white:black)){ zxxS++; }else{ break; } } intzxxX=0;//正斜下 for(inti=1;i<5;i++){ if(point.y-i<0||point.x+i>18){ break; } if(map[point.x+i][point.y-i].equals(color?white:black)){ zxxX++; }else{ break; } } //反斜 intfxxS=0;//反斜上 for(inti=0;i<5;i++){ if(point.y-i<0||point.x-i<0){ break; } if(map[point.x-i][point.y-i].equals(color?white:black)){ fxxS++; }else{ break; } } intfxxX=0;//反斜下 for(inti=1;i<5;i++){ if(point.y+i>18||point.x+i>18){ break; } if(map[point.x+i][point.y+i].equals(color?white:black)){ fxxX++; }else{ break; } } System.out.println(); System.out.print("反斜上↖:"+fxxS+"\t"); System.out.print("纵向上↑:"+zxS+"\t"); System.out.print("正斜上↗:"+zxxS); System.out.println(); System.out.print("横向左←:"+hxZ+"\t\t\t"); System.out.print("横向右→:"+hxY); System.out.println(); System.out.print("正斜下↙:"+zxxX+"\t"); System.out.print("纵向下↓:"+zxX+"\t"); System.out.print("反斜下↘:"+fxxX); System.out.println(); if(zxS+zxX>4||hxY+hxZ>4||zxxS+zxxX>4||fxxS+fxxX>4){ returntrue; } returnfalse; } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。