[文档和源码分享] 智能人机博弈五子棋游戏

作者:jcmp      发布时间:2021-04-23      浏览量:0
五子棋是双人博弈棋类益智游戏,由围棋演变

五子棋是双人博弈棋类益智游戏,由围棋演变而来,属纯策略型。棋盘通常15*15,即15行,15列,共225个交叉点,即棋子落点;棋子由黑白两色组成,黑棋123颗,白棋122颗。游戏规则为黑先白后,谁先五子连成一条直线谁赢,其中直线可以是横的、纵的、45度、135度。

本次Java编程我的目的是现实人机对战,即游戏者一方是人,另一方计算机。这就要求程序不仅要具备五子棋的基本界面,还要编程指导计算机与人进行对弈。为了使程序尽可能智能,我采用了贪心策略、传统搜索算法、极大极小博弈树算法,对应游戏玩家的3个等级:简单、中等、困难。

Java语言是面向对象的语言。我在进行五子棋游戏编程是总共传创建了11个自定义的类。在编写程序的过程中,我有一个明显的体验就是面向对象编程就是一项有关对象设计和对象接口技术,很多关键的技术就是如何设计自定义的对象。

下面我先概括给出我的所有类的作用:mainFrame类:主框架类,我应用程序的入口;chessPositon类:主控类,这个类是我程序的核心类,负责控制双方的下棋,以及调用其他的类完成当前棋局的显示绘制;chessPanel类:面板类,调用其他底层类完成当前棋局的显示绘制;chessBoard类:棋盘绘制类,负责棋盘的绘制;chessImage类:文件类,包含各种资源(背景图片、背景音乐)以及静态全局变量(public。

static Type);chessButton类:组件类,定义各种组件,包括按钮、单选按钮、文本框等;chessMusic类:音乐类,负责调用Java类库完成背景音乐、下棋音乐、取胜音乐等的播放;chessPiece类:棋局类,定义棋局二维数组数据结构并完成相关操作;chessList类:栈类,完成悔棋等操作;chessOneStep类:棋子类,定义每步坐标以及下在该处获得的估价值;myCompare类:排序类,完成chessOneStep类的自定义排序;

参考博文和源码下载地址:

https://www.write-bug.com/article/100.html。