Skip to content

一个西洋跳棋小游戏,写成桌面Java程序,实现了人机对战,对博弈树的遍历进行了极大极小值的alpha-beta剪枝算法进行优化

Notifications You must be signed in to change notification settings

631jike/ForeignCheckers

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ForeignCheckers

一个西洋跳棋小游戏,写成桌面Java程序,实现了人机对战,对博弈树的遍历进行了极大极小值的alpha-beta剪枝算法进行优化

功能

进入游戏

含游戏开始和游戏规则子项,点游戏开始则重新开始游戏,点游戏规则弹出系统对话框说明游戏规则。

游戏等级

分为简单,一般,困难三个等级,由用户选择,从而设置机器人的博弈树算法搜索深度。

游戏音效

简单地开启和关闭游戏的下棋声音。

棋盘背景

用四张不同的背景图来由用户选择更换背景。

算法优化

对博弈树的遍历进行了极大极小值的alpha-beta剪枝算法进行优化

**算法的本质思想是:**一方总是寻找对己方最有利的的走法,而另一方总是寻找对对方最不利的走法。

一般应用在博弈搜索中,比如:围棋,五子棋,象棋等。结果有三种可能:胜利、失败和平局。暴力搜索,如果想通过暴力搜索,把最终的结果得到的话,搜索树的深度太大了,机器不能满足,一般都是规定一个搜索的深度,在这个深度范围内进行深度优先搜索。 假设:A和B对弈,轮到A走棋了,那么我们会遍历A的每一个可能走棋方法,然后对于前面A的每一个走棋方法,遍历B的每一个走棋方法,然后接着遍历A的每一个走棋方法,如此下去,直到得到确定的结果或者达到了搜索深度的限制。当达到了搜索深度限制,此时无法判断结局如何,一般都是根据当前局面的形式,给出一个得分,计算得分的方法被称为评价函数,不同游戏的评价函数差别很大,需要很好的设计。

界面

1)游戏开始界面调试情况

2)走棋调试情况

3)胜负判断调试情况

About

一个西洋跳棋小游戏,写成桌面Java程序,实现了人机对战,对博弈树的遍历进行了极大极小值的alpha-beta剪枝算法进行优化

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 100.0%