java实现简易五子棋游戏

时间:2021-05-19

本文实例为大家分享了java实现简易五子棋游戏的具体代码,供大家参考,具体内容如下

编写一个简易五子棋,棋盘在控制台中绘制,棋盘每- - 个点都有对应的坐标,下棋者输
入对应坐标落棋子,运行效果如图所示。两位数字表示的坐标中,第-一个数字表示横坐标,

第二个数字表示纵坐标,运行结果如图所示。

代码:

package Test;import java.util.Scanner;public class Test4 {public static void main(String[] args) {int flag = 0; //偶数玩家一操作,奇数玩家二操作int works=0; //判断是否胜利,若胜利则为4int works_x=0; //胜利时最后一步的x值int works_y=0; //胜利时最后一步的y值 String list[][] = start(); //棋盘的生成,和显示 for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[i].length; j++) { System.out.print(list[i][j]); } System.out.println(); } while (true) { //循环操作和显示结果,胜利时跳出 Scanner sc = new Scanner(System.in); System.out.print("位置:"); String temp = sc.next(); //棋手输入的x值和y值(此方法中为0-9的数) int x = Integer.parseInt(temp.substring(0,1)); int y = Integer.parseInt(temp.substring(1)); if (flag % 2 == 0){//玩家一操作,此位置为" - "时可操作,否则重新输入 if (list[x+1][y+1]==" - ") list[x+1][y+1] = " O "; else flag--; } else{ //玩家二操作,此位置为" - "时可操作,否则重新输入 if (list[x+1][y+1]==" - ") list[x+1][y+1] =" X "; else flag--; } flag++; //每次操作成功+1,下一玩家操作 for (int i = 0; i < list.length; i++) {//显示操作结果 for (int j = 0; j < list[i].length; j++) { System.out.print(list[i][j]); // } System.out.println(); } if(works!=0){//最后值为“ O ”时,玩家一胜出;最后值为“ X ”时,玩家二胜出。 if(list[works_x][works_y]==" O ") System.out.println("玩家一胜出"); else System.out.println("玩家二胜出"); System.out.println("结束"); break; } }}public static String[][] start() { //生成一个10*10的空棋盘 String list[][] = new String[11][11]; for (int i = 0; i < list.length; i++) { for (int j = 0; j < list[i].length; j++) { if(i == 0 && j==0) list[i][j] = " "; else if (i == 0 && j!=0) list[i][j] = " "+(j-1)+" "; else if (j==0 && i!=0) list[i][j] = " "+(i-1)+" "; else list[i][j] = " - "; } } return list;}public static int work(String list[][],int x,int y) {//判断是否胜利 //if(x-5>0 || y-5>0 ||x+5<list.length ||y+5<list[x].length) int temp=0; if(x-4>0 ){ if(y-4>0 ){ //左上角是否五子连线 for(int i=0;i<4;i++){ if (list[x][y]==list[x-5+i][y-5+i]) temp++; else break; } } else if(y+4<list[x].length){//右上角是否五子连线 for(int i=0;i<4;i++){ if (list[x][y]==list[x-4+i][y+4-i]) temp++; else break; } } else{ for(int i=0;i<4;i++){ //正上角是否五子连线 if (list[x][y]==list[x-4+i][y]) temp++; else break; } } } else if(x+4<list.length ){ //左下角是否五子连线 if(y-4>0 ){ for(int i=0;i<4;i++){ if (list[x][y]==list[x+4-i][y-4+i]) temp++; else break; } } else if(y+4<list[x].length){//右下角是否五子连线 for(int i=0;i<4;i++){ if (list[x][y]==list[x+4-i][y+4-i]) temp++; else break; } } else{ for(int i=0;i<4;i++){ //正下角是否五子连线 if (list[x][y]==list[x+4-i][y]) temp++; else break; } } } else{ if(y-4>0 ){ for(int i=0;i<4;i++){ //正左角是否五子连线 if (list[x][y]==list[x][y-4+i]) temp++; else break; } } else if(y+4<list[x].length){//正右角是否五子连线 for(int i=0;i<4;i++){ if (list[x][y]==list[x][y+4-i]) temp++; else break; } } } return temp; }}

更多有趣的经典小游戏实现专题,分享给大家:

C++经典小游戏汇总

python经典小游戏汇总

python俄罗斯方块游戏集合

JavaScript经典游戏 玩不停

java经典小游戏汇总

javascript经典小游戏汇总

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章