棋规则和需求

规则:
棋子:2颗国王棋和(8+16)颗大臣棋;分别用黑白两色代表国王和大臣(黑子为国王、白子为大臣)
棋盘:5*9的二维棋盘,共37个交点,如图所示:

吃子规则(包括移子和添子):
1、国王每回合可以选择移动一步、或者跳吃大臣一颗棋子,即就是间隔一个大臣棋子跳到对应空位置,大臣棋子被吃掉
2、大臣前16回合只能每次添加一颗棋子,只有将16颗棋子全部都落完后,第17回合才可以移动棋子;或者在落完棋子之前大臣就已经输了就不用移子操作了
胜负规则:
国王不能移动也不能跳吃则判负,大臣赢;
大臣被吃掉8颗棋子后就判负,国王赢
黑子落点情况:
1、与该黑子坐标距离绝对值为1的空白点坐标,即就是横、纵方向上的相邻空白点——国王在横纵方向上的移子落子情况;
2、与该黑子坐标距离绝对值为的空白点坐标,即就是45°斜方向上的相邻空白点——国王在45°斜方向上的移子落子情况;
3、在与该黑子坐标距离绝对值为1的坐标点上为白子时,可以落在与该黑子距离绝对值为2的空白点上,同时该白子被吃掉——国王在横纵方向上吃子的落子情况;
4、在与该黑子坐标距离绝对值为的坐标点上为白子时,可以落在与该黑子距离绝对值为2的空白点上,同时该白子被吃掉——国王在45°斜方向上吃子的落子情况;
白子落子情况:
1、与该白子坐标距离绝对值为1的空白点坐标,即就是横纵方向上的相邻空白点上——大臣在横纵方向上的落子情况;
2、与该白子坐标距离绝对值为的空白坐标点上,即就是45°斜方向上的控标点上——大臣在45°斜方向上的落子情况;
3、白子落子分两个阶段,添子和移子阶段,前16步为添子阶段,之后均为移子阶段。

游戏规则:
1、有良好的UI界面,用户体验良好
2、鼠标点击进行出棋子,玩家两人轮流下棋,固定黑棋优先
3、有人—人、人—机两种模式选择,人机能够按规则执行下棋即可
4、玩家能够重新开始游戏
5、可以悔棋、能够自动判断输赢
6、能够返回主页封面
7、在已经落有棋子的地方不能再落棋子
8、有退出游戏的功能,

游戏主要代码如下:

 if (game.isGameOver()) {if (game.getEatNum() == 8) {gameView.showMsg("国王已取得胜利,请重新开始游戏!");}else {gameView.showMsg("大臣已取得胜利,请重新开始游戏!");}return;}if (!game.haveChess(i, j) && !game.isPitch()) {         //该点没有棋子时且未选中棋子时if (game.isWhite()) {       //白棋下的时候game.addWhiteChess(i, j);}else {game.addBlackChess(i, j);}}else if(game.haveChess(i, j) && !game.isPitch()) {       //该点有棋子且未选中棋子时if (game.pitchChess(i, j) == false) {return;}}else if(game.isPitch()) {                             //已经选中了一个棋子时if (game.isWhite()) {game.checkAndMoveWhite(i, j);}else {game.checkAmdMoveBlack(i, j);}}gameView.fillAllChess();                        //刷新棋子gameView.showState(getState());game.checkGame();                              //判断是否胜利games.add(game.clone());                        //添加到栈中

游戏截图如下:


源码下载

JAVA小游戏(国王和大臣)相关推荐

  1. 各种经典java小游戏_Java是这个世界上最好的语言!

    为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...

  2. Java小游戏:模仿微信群发红包

    Java小游戏:模仿微信群发红包 微信群主发普通红包,普通红包规则: 群主的一笔金额,从群主余额中扣除,平均分成n等分,让群员领取. 成员领取红包后,保存到余额中. 请根据规则,完成案例中所有类的定义 ...

  3. 《Java小游戏实现》:坦克大战

    <Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...

  4. java小游戏-超级玛丽

    java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...

  5. java小游戏-java小游戏-大鱼吃小鱼

    java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...

  6. java小游戏之捕鱼达人,学了java,妈妈不再担心我去网吧游戏厅了!

    Java小项目捕鱼达人 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 捕鱼达人这款游戏,相信和我年纪相仿的朋友,肯定很熟悉.在当时半智能手机和智能手机刚刚出现 ...

  7. java小游戏——飞翔的小鸟(java初学作品)

    注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...

  8. java小游戏------Flappy Bird(飞翔的小鸟含源码)

    前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...

  9. java小游戏-飞翔的小鸟

    java小游戏-ava小游戏-飞翔的小鸟 1 游戏窗口的显示 2 游戏背景添加 3 背景颜色的添加 4 屏幕中绘制小鸟 5 实现小鸟上下移动 6 解决屏幕闪烁问题 7 云彩的添加与移动 8 云彩的自动 ...

最新文章

  1. 采用TCPListener/TCPClient实现图片传输
  2. 【有三吐槽】程序员改BUG的六重境界,你,第几重了?
  3. 淘宝SEO培训视频课程【22讲】
  4. vs 2019 aspx灰色_蛇纹当道,豹纹在侧:穿成动物园是2019时尚大势?
  5. html jq 控制显示密码,js、jquery分别实现点击密码输入框密码显示和隐藏
  6. 【书摘001】android 底层开发技术实战详解 - 基础 - 进程管理的一些常用命令
  7. 变参函数寻找最大整数值
  8. java类中各成员初始化的顺序
  9. 正态分布下贝叶斯决策的特例(三)
  10. WIN7系统下如何把IE8升级成IE9
  11. Windows Embedded 7 最简便EWF系统制作方案
  12. 小凡模拟器(DynamipsGUI)打不开的简单解决方法
  13. Nginx作为静态资源服务器
  14. win8-cmd请求的操作需要提升
  15. 日期时间选择器bootstrap(手机适应)
  16. 无法打开登录所请求的数据库database登录失败用户登录失败
  17. uniapp获取通知栏内容 监听通知栏信息
  18. 画出漂亮的神经网络图,神经网络可视化工具集锦
  19. ubuntu下没有中文输入法的解决办法!
  20. 对接银行的方法与流程

热门文章

  1. 月均GMV超1500万,“组合营销”如何成为快手品牌出圈利器?
  2. 什么是CAS和AQS
  3. 前端安全须知(淘宝)
  4. 0003建模实例1 椅子能在不平的地面上放平
  5. 如何将onedrive for business扩容为硬盘空间
  6. TMS320F28034PNT 德州TI 具有 60MHz 频率、128KB 闪存的 C2000™ 32 位 MCU
  7. 怎样将腾讯视频qlv格式转换成mp3音频
  8. 零基础入门编程神器!苹果的免费编程应用出了Mac版了
  9. 最通俗易懂的SpringBoot经典学习笔记讲解
  10. MT4软件IOS版如何下载