JAVA小游戏(国王和大臣)
棋规则和需求
规则:
棋子: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小游戏(国王和大臣)相关推荐
- 各种经典java小游戏_Java是这个世界上最好的语言!
为什么? 请看TIOBE最新发布的编程语言排行榜: TIOBE开发语言排行榜每月更新一次,其结果可以用来检阅开发者的编程技能能否跟上趋势,或是否有必要作出战略改变,以及什么编程语言是应该及时掌握的. ...
- Java小游戏:模仿微信群发红包
Java小游戏:模仿微信群发红包 微信群主发普通红包,普通红包规则: 群主的一笔金额,从群主余额中扣除,平均分成n等分,让群员领取. 成员领取红包后,保存到余额中. 请根据规则,完成案例中所有类的定义 ...
- 《Java小游戏实现》:坦克大战
<Java小游戏实现>:坦克大战 前面写了一个简单的聊天小程序,今天开始就写一个坦克大战的游戏,算是对Java相关小知识点的一个应用. 这个游戏的完成,我们也是分步完成,逐步累加,一个一个 ...
- java小游戏-超级玛丽
java小游戏-java小游戏-超级玛丽 1 创建窗口 2 创建并完成常量类 3 创建背景类 4 绘制背景类 5 创建障碍物 6 第一关的设计 7 第二关的设计 8 第三关的设计 9 创建马里奥类 1 ...
- java小游戏-java小游戏-大鱼吃小鱼
java小游戏-java小游戏-大鱼吃小鱼 1 创建窗口 2 添加背景图 3 启动封面 4 启动页面的点击事件 5 游戏开始时的背景添加 6 双缓存解决闪屏问题 7 地方第一条小鱼的添加 8 敌方左方 ...
- java小游戏之捕鱼达人,学了java,妈妈不再担心我去网吧游戏厅了!
Java小项目捕鱼达人 跪求关注,祝关注我的人都:身体健康,财源广进,福如东海,寿比南山,早上贵子,从不掉发! 捕鱼达人这款游戏,相信和我年纪相仿的朋友,肯定很熟悉.在当时半智能手机和智能手机刚刚出现 ...
- java小游戏——飞翔的小鸟(java初学作品)
注:学习了java基础后,做出来的一个小作品,可以用来巩固学习 概述: 飞翔的小鸟能够作为Java基础的收官之作,包涵了Java很多的基础知识,在学习完Java基础后,尝试编写一些东西,能够起到很好的 ...
- java小游戏------Flappy Bird(飞翔的小鸟含源码)
前言:本小游戏可作为java入门阶段收尾创作. 需:掌握面向对象的使用,了解多线程和异常处理等知识. 如上图所示:我们需要绘制背景,小鸟,障碍物,当然也包括游戏开始界面以及死亡界面. 一:思路解析: ...
- java小游戏-飞翔的小鸟
java小游戏-ava小游戏-飞翔的小鸟 1 游戏窗口的显示 2 游戏背景添加 3 背景颜色的添加 4 屏幕中绘制小鸟 5 实现小鸟上下移动 6 解决屏幕闪烁问题 7 云彩的添加与移动 8 云彩的自动 ...
最新文章
- 采用TCPListener/TCPClient实现图片传输
- 【有三吐槽】程序员改BUG的六重境界,你,第几重了?
- 淘宝SEO培训视频课程【22讲】
- vs 2019 aspx灰色_蛇纹当道,豹纹在侧:穿成动物园是2019时尚大势?
- html jq 控制显示密码,js、jquery分别实现点击密码输入框密码显示和隐藏
- 【书摘001】android 底层开发技术实战详解 - 基础 - 进程管理的一些常用命令
- 变参函数寻找最大整数值
- java类中各成员初始化的顺序
- 正态分布下贝叶斯决策的特例(三)
- WIN7系统下如何把IE8升级成IE9
- Windows Embedded 7 最简便EWF系统制作方案
- 小凡模拟器(DynamipsGUI)打不开的简单解决方法
- Nginx作为静态资源服务器
- win8-cmd请求的操作需要提升
- 日期时间选择器bootstrap(手机适应)
- 无法打开登录所请求的数据库database登录失败用户登录失败
- uniapp获取通知栏内容 监听通知栏信息
- 画出漂亮的神经网络图,神经网络可视化工具集锦
- ubuntu下没有中文输入法的解决办法!
- 对接银行的方法与流程