上传者: 43607525
|
上传时间: 2022-06-06 16:13:22
|
文件大小: 2.97MB
|
文件类型: RAR
操作系统:win10家庭版
JDK版本:jdk-11.0.1
开发环境:IntelliJ IDEA
①界面美观:按钮以流式布局分布在程序右边,通过点击进行基本操作。
②可两人对下:使用鼠标监听器和15*15的二维数组表示棋盘上棋子的状态。
③判断输赢:每次根据下棋位置更新二维数组后对齐进行行、列、斜的判断,当存在五子连珠时弹出窗口,根据一系列状态变量判断黑方/白方获胜。
④认输:根据当前轮到某一方下棋判断另一方获胜。
⑤合理性判断:对不恰当操作进行提示,例如当鼠标点击位置已有棋子或鼠标点击位置超出棋盘过多时会进行弹窗提示。当游戏胜负已分时再点击“悔棋”,“认输”按钮时也会进行弹窗提示。
⑥悔棋:使用两个动态数组储存每一次下棋的x、y坐标,悔棋时对两个非空二维数组进行弹出,根据得到的上一步的坐标删除该坐标在棋盘数组上对应的存在状态,并重绘棋盘,更新状态变量等。
⑦人机对战:经测试,根据网上现有的效果较好的评分表制定了一套“五元组”评分准则,即棋盘是15*15的。那么应该是572个五元组(五个可形成五子连珠的位置)。同时,针对五元组中黑子和白子的数量的不同,给该五元组评不同的分。棋盘上15*15个位置中每一个位置的得分就是包含这个位置的所有五元组的得分加和。从而在人每次下一手棋子时,程序自动遍历整个棋盘,算出所有位置中得分最大的那个位置进行下棋。