基于Java的五子棋人机对战系统开题报告

 2022-01-14 11:01

全文总字数:3198字

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

下棋一直就是人类智能的挑战,自然也成了人工智能的标志之一。

二战没结束时,图灵就研究计算机下棋,他1947年编了第一个下棋程序。

后来诸多研究人员创造了下棋的程序,如20世纪80年代末加拿大阿尔伯塔大学的跳棋程序 chinook;贝尔实验室的专用象棋机器 belle。而真正让世人了解人工智能的是deep blue--深蓝,1997年5月11日,“深蓝”对阵卡斯帕罗夫,并成了第一位战胜当时世界冠军的机器。

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

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

研究目标:

1.五子棋的界面实现。包括一个风格简洁清晰的gui,添加一些图片、音效等资源。多种模式可供玩家选择,人人对战、不同难度的人机对战等。

2.软件设计。使用mvc设计模式,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。

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

3. 研究的方法与方案

开发语言:java

开发工具:intellij idea

技术路线:使用javafx设计用户图形界面,使用java代码实现算法代码

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

4. 研究创新点

在游玩4399游戏网站上的五子棋游戏后我发现他们的ai还不是很强,并不能称之为“智能”,有时会犯很低级的错误。算法上还有很多缺陷,并且不能考虑多步和多层,对未来情况进行预测。而我考虑了多种情形,使估值函数更为合理,机器不会出现非常低级的错误。另外我是用了alphabeta剪枝算法来预测多层的情形,使ai变得更加强力和有远见。

很多五子棋走法都相当固定,而我会对某一些情况进行随机选取,即选择估值差不多的地方进行落子,降低重复性。由于五子棋相对简单,对于先手来说优势很大,且有固定的套路可以取胜,因此我在我的程序中加入禁手,防止人类通过固定套路取胜。

目前网上有一些五子棋ai程序,大部分是基于最大最小树的剪枝算法,或者是一些自定义的算法,无法达到机器自我学习的目的,也基本没有禁手规则。

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

5. 研究计划与进展

三月份主要以学习为主,包括对博弈论进行基础学习,了解相关算法。重点学习机器学习和深度学习,在看书和课程的同时学习一些开源项目,并结合官方教程和指南,对相关软件和技术进行熟悉。这一阶段上机实现一些基本代码,创建大致的框架。

四月在学习机器学习的同时进行人工智能五子棋的实现,包括用户图形界面和相关算法的实现并在四月末做好除机器学习以外的内容,同时进行测试和改进。

五月份重点攻略机器学习,预计五月中下旬可以做出最终成品,同时对程序进行训练在项目完成后开始写论文。

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

课题毕业论文、开题报告、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。