基于Java的中国象棋对弈系统

课程设计基本功能描述

实现一个中国象棋对弈的软件,实现中国象棋的规则:棋子共有三十二个,分为红、黑两组,每组十六个,各分七种,其名称和数目如下所述。

红棋子:帅一人,车、马、炮、相、士各两个,兵五个。

黑棋子:将一个,车、马、炮、象、士各两个,卒五个。

在对局时,由执红棋的一方先走,双方轮流各走一着,直至分出胜负为止。轮到走棋的一方,将某个棋子从一个交叉点到另一个空着的交叉点,或者吃掉对方的棋子而占领叉点,都算走了一着。双方各走了一着,称为一个回合。以“将死”或“困毙”对方将(帅)为胜。

  1. 实现棋子的移动:玩家根据象棋规则,进行棋子的移动;

帅(将)

红方为“帅”,黑方为“将”。

帅和将是棋中的首脑,是双方竭力争夺的目标。它只能在九宫之内活动,可上可下,可左可右,每次走动只能按竖线或横线走动一格。帅与将不能在同一直线上直接对面,否则走方判负。

仕(士)

仕(士)是将(帅)的贴身保镖,它也只能在九宫内走动。它的行棋路径只能是九宫内的斜线。

象(相)

红方为,黑方为

相(象)的主要作用是防守,保护自己的帅(将)。它的走法是每次循对角线走两格,俗称象飞田。相(象)的活动范围限于河界以内的本方阵地,不能过河,且如果它走的字中央有一个棋子,就不能走,俗称塞象眼

车(jū)

车在象棋中威力最大,无论横线、竖线均可行走,只要无子阻拦,步数不受限制。因此,一车可以控制十七个点,故有一车十子寒之称。

炮在不吃子的时候,走动与车完全相同,但炮在吃子时,必须跳过一个棋子,我方的和敌方的都可以,俗称炮打隔子

马走日与蹩马腿

马走动的方法是一直一斜,即先横着或直着走一格,然后再斜着走一个对角线,俗称马走日。马一次可走的选择点可以达到四周的八个点,故有八面威风之说。如果在要去的方向有别的棋子挡住,马就无法走过去,俗称蹩马腿

兵(卒)

红方为,黑方为

兵(卒)在未过河前,只能向前一步步走,过河以后,除不能后退外,允许左右移动,但也只能一次一步,即使这样,兵(卒)的威力也大大增强,故有过河的卒子顶半个车之说。

A.移动棋子需要考虑的共同问题:

起点和终点的位置的坐标是否越界;

起点和终点位置的棋子,是否是同一方的;

棋子移动后,将帅是否会对脸。

B.移动棋子需要考虑的特殊问题:

將(帥)、仕(士)是否走出九宫;

象是否过河,象眼是否被堵;

馬是否别腿;

兵过河前只能前进,过河后可以前进或左右移动;

  1. 棋盘

棋子活动的场所,叫作棋盘。在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共有九十个交叉

点,棋子就摆在交叉点上。中间部分,也就是棋盘的第五,第六两横线之间末画竖线的空白地带称为河界。两端的中间,也就是两端第四条到第六条竖线之间的正方形部位,以斜交叉线构成字方格的地方,叫作九宫(它恰好有九个交叉点)。

整个棋盘以河界分为相等的两部分。为了比赛记录和学习棋谱方便起见,现行规则规定:按九条竖线从右至左用中文数字一九来表示红方的每条竖线,用阿拉伯数字‘1’‘9’来表示黑方的每条竖线。对弈开始之前,红黑双方应该把棋子摆放在规定的位置。任何棋子每走一步,进就写,退就写退,如果像车一样横着走,就写

  1. 实现棋子的吃子判断:玩家根据象棋规则,进行吃子;
  1. 吃子需要考虑的问题:

炮需要翻山吃子

  1. 实现悔棋功能:

玩家在游戏中需要悔棋,按下悔棋按钮,退回一步,这里可以退任意步数,也可以一直回退,直至退回游戏开始状态;

  1. 实现重置功能

玩家在游戏进行中或游戏结束,按新游戏按钮,开始新的一局游戏。

程序类图

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年1月20日
下一篇 2021年1月20日

相关推荐