时间:2021-05-20
本文实例为大家分享了Java实现五子棋小游戏的具体代码,供大家参考,具体内容如下
项目名称
五子棋小游戏
项目描述
可以改变获胜棋子数,率先连成棋数的人获胜
代码实现
测试类
public class Test { public static void main(String[] args) { FiveChess fiveChess = new FiveChess(); fiveChess.start(); }}主类:实现主方法
public class FiveChess { private static final int CheckerSize = 10; private static final int successSize = 5; private Chess[][] chess; private int xPos; private int yPos; private boolean flag = true; private Scanner scanner = new Scanner(System.in); public FiveChess(){ chess = new Chess[CheckerSize][CheckerSize]; } private void initCheck(){ for(int i=0;i<CheckerSize;i++){ for(int j=0;j<CheckerSize;j++){ chess[i][j] = new Chess("十"); } } } private boolean judge(int xPos,int yPos){ //横向 if(yPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos][yPos-1].getValue()) || yPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos][yPos+1].getValue())){ int count = 1; for (int i = 1; i < successSize; i++) { if (yPos - i >= 0 && chess[xPos][yPos - i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } for (int i = 1; i < successSize; i++) { if (yPos + i < CheckerSize && chess[xPos][yPos + i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } return count >= successSize ? true : false; } //纵向 if (xPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos].getValue()) || xPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos].getValue())){ int count = 1; for (int i = 1; i < successSize; i++) { if (xPos- i >= 0 && chess[xPos-i][yPos].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } for (int i = 1; i < successSize; i++) { if (xPos + i < CheckerSize && chess[xPos+i][yPos].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } return count >= successSize ? true : false; } //正斜线 if (xPos-1>=0 && yPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos-1].getValue()) || xPos+1<CheckerSize && yPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos+1].getValue())){ int count = 1; for (int i = 1; i < successSize; i++) { if (xPos - i >= 0 && yPos - i >= 0 && chess[xPos-i][yPos-i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } for (int i = 1; i < successSize; i++) { if (xPos + i < CheckerSize && yPos + i < CheckerSize && chess[xPos+i][yPos+i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } return count >= successSize ? true : false; } //反斜线 if (xPos-1>=0 && yPos+1<CheckerSize && chess[xPos][yPos].getValue().equals(chess[xPos-1][yPos+1].getValue()) || xPos+1<CheckerSize && yPos-1>=0 && chess[xPos][yPos].getValue().equals(chess[xPos+1][yPos-1].getValue())){ int count = 1; for (int i = 1; i < successSize; i++) { if (xPos - i >= 0 && yPos + i<CheckerSize && chess[xPos-i][yPos+i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } for (int i = 1; i < successSize; i++) { if (xPos + i < CheckerSize && yPos - i >= 0 && chess[xPos+i][yPos-i].getValue().equals(chess[xPos][yPos].getValue())) { count++; } else { break; } } return count >= successSize ? true : false; } return false; } private void runChess(String run){ System.out.println("请输入"+run+"坐标:"); xPos = scanner.nextInt(); yPos = scanner.nextInt(); if(chess[xPos-1][yPos-1].getValue().equals("十")){ if(run.equals("黑棋")){ chess[xPos-1][yPos-1] = new Chess("●"); } else if(run.equals("白棋")){ chess[xPos-1][yPos-1] = new Chess("〇"); } for(int i=0;i<CheckerSize;i++){ for (int j=0;j<CheckerSize;j++){ System.out.print(chess[i][j].getValue()); } System.out.println(); } if(judge(xPos-1,yPos-1)){ flag = false; System.out.println(run+"获胜"); System.out.println("游戏结束,是否重玩"); String finish = scanner.next(); if (finish.equals("是")){ flag = true; start(); } else if (finish.equals("否")){ System.exit(0); } } }else { System.out.println("该处已存在棋子,请重新选择"); runChess(run); } } public void start(){ initCheck(); System.out.println("请选择先走方:黑棋or白棋"); String run = scanner.next(); for(int i=0;i<CheckerSize;i++){ for (int j=0;j<CheckerSize;j++){ System.out.print(chess[i][j].getValue()); } System.out.println(); } while (flag) { switch (run) { case "黑棋": runChess("黑棋"); run = "白棋"; break; case "白棋": runChess("白棋"); run = "黑棋"; break; default: } } }}结点类
public class Chess { private String value; public Chess(String value){ this.value = value; } public String getValue() { return value; }}更多有趣的经典小游戏实现专题,分享给大家:
C++经典小游戏汇总
python经典小游戏汇总
python俄罗斯方块游戏集合
JavaScript经典游戏 玩不停
javascript经典小游戏汇总
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文实例为大家分享了JavaScript实现五子棋小游戏的具体代码,供大家参考,具体内容如下HTML部分五子棋*{padding:0;margin:0;}bod
本文实例为大家分享了js+canvas实现五子棋小游戏的具体代码,供大家参考,具体内容如下效果展示:源码展示:五子棋*{margin:0;padding:0;}
本文实例为大家分享了python五子棋游戏的具体代码,供大家参考,具体内容如下1.项目简介在刚刚学习完python套接字的时候做的一个五子棋小游戏,可以在局域网
本文实例为大家分享了js实现AI五子棋人机大战的具体代码,供大家参考,具体内容如下实现原理就是计算五子棋所有赢的种类,利用canvas实现五子棋排版落子。五子棋
控制台实现五子棋游戏,供大家参考,具体内容如下控制台打印棋盘编写两人对弈的五子棋游戏,游戏规则:黑白双方有一方首先实现五子连续,则获胜,游戏结束。代码:impo