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(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。