基于JAVA的五子棋人机博弈实现开题报告

 2022-01-31 21:12:57

1. 研究目的与意义、国内外研究现状(文献综述)

课题的意义:

随着近几年人工智能的高速发展,人工智能被应用在各个领域,其中人机博弈也得到了越来越多的关注。五子棋作为一种历史悠久的棋类游戏,有着大量的玩家基数。但由于玩家间的实力差异,让很多比较擅长五子棋的玩家无法找到合适的对手一起下棋从而提高自己的技术。而人工智能中博弈论中穷举当前状态的所有后继情况,计算最终受益以求在可以接受的条件内获取尽量高的受益的思想与棋类游戏中对抗的思想类似。因此利用博弈论的算法设计一款供人机五子棋对弈的软件则可以满足上述用户的需求,此外还能丰富广大五子棋玩家的业余生活。

国内外研究进展:

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

2. 研究的基本内容和问题

研究的目标:

使用java实现一款五子棋人机对弈程序,对各种博弈算法进行比较取舍,并设计出自己合理的评分函数等,从而使人机获得更好的决策和更快的决策速度。该程序具有一个用户界面,其上包括五子棋棋盘,游戏开始、重新开始、悔棋、认输等操作键,以及计时器、规则介绍、回看棋谱、推荐落子、智能分级、人机对弈、人人对弈等必要功能;同时该程序具有一定的智能可以在与普通五子棋玩家的实战过程中进行有效的决策并占据优势以至赢得比赛。

研究的内容:

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

3. 研究的方法与方案

针对五子棋中一些高级技术的实现问题,本研究需要对大量的五子棋技术进行了解和探究并将其转化为算法形式供机器人学习。五子棋作为一个历史悠久的棋类游戏,在网络上存在大量的文献、棋谱、技术攻略,通过这些资料我先提升自己对五子棋的理解,这样在编程是可以考虑更加全面。

针对图形界面的设计与布局,本研究借鉴市面上比较成功的五子棋软件的界面和互动功能,结合我自己身的审美和软件实际需求进行美术和功能设计,通过java图形包编译实现。

针对棋谱的实现,使用栈结构存储棋谱,可以满足对弈过程中的悔棋、推敲以及棋局结束后的棋谱输出和研究。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

4. 研究创新点

特色或创新之处

现有的大众五子棋人机通常是基于单一博弈树搜索或者贪心算法的决策,在实际应用中容易发现他们具有单一的规律从而让玩家轻易找到对策。而我想设计的是一个可以实现在一些情景下形成跳三、冲四,甚至跳二等出人意料的获胜棋术的人机。下过五子棋的人都经历过,有的子也许对这一步的影响并不是最大最优,但是可以为下一步做出及其有利的铺垫,有时在僵持局面下出一个漂亮的跳三或连续的冲四进攻可以让对手疲于应对,最终落入圈套输掉比赛。但当前的五子棋机器人由于算法单一,所以缺少这种变通,而在我的算法下玩家将具有更真实的对抗体验,让五子棋的人机对弈更具有多变性。

此外,五子棋人机除了是一款供人对弈娱乐的软件外,还可以让人从机器人的落子分析总结出能让自己提高的技术,从而做到辅助玩家进步的效果。

剩余内容已隐藏,您需要先支付后才能查看该篇文章全部内容!

5. 研究计划与进展

研究计划及预期进展

0~10天 总结五子棋基本规则与常用招式、配置开发工具,设计规划模块功能及接口,梳理模块间逻辑关系。设计可视化界面框图。

10~20天 编写可视化界面模块,编写人类玩家下棋模块,编写游戏模块使各其可以实现简单的落子下棋。

剩余内容已隐藏,您需要先支付 10元 才能查看该篇文章全部内容!立即支付

发小红书推广免费获取该资料资格。点击链接进入获取推广文案即可: Ai一键组稿 | 降AI率 | 降重复率 | 论文一键排版