登录

  • 登录
  • 忘记密码?点击找回

注册

  • 获取手机验证码 60
  • 注册

找回密码

  • 获取手机验证码60
  • 找回
毕业论文网 > 开题报告 > 计算机类 > 计算机科学与技术 > 正文

基于Python的Reversi游戏设计与开发开题报告

 2020-04-13 05:04  

1. 研究目的与意义(文献综述)

为了熟悉黑白棋规则及技巧,研究简单的人工智能,决定用python开发黑白棋游戏。主要完成了人机对战功能。在人机对弈中通过博弈树搜索和估价函数,来提高ai的智能。 算法的研究有助于理解程序结构,增强逻辑思维能力,在其他人工智能方面也有很大的参考作用。尽管黑白棋的规则比较简单,但它所包括的丰富战略,不亚于那些相当“经典”的策略游戏。

根据wikipedia上的词条显示,现在国外比较强的黑白棋程序分别是edax,ntest和logistello。下面从三个方面来介绍这些程序使用的技术:

首先是棋盘的表示方法,一般的想法是采用8*8的二维数组来表示棋盘,虽然这个方法很直观,操作棋盘也很方便,但是会占用大量的空间,这种缺点对拥有庞大的搜索状态空间的棋类ai来说是致命的,执行搜索算法时,复制原有的棋盘状态并生成新的状态是经常发生的事情,基本上每搜索一个节点都会发生一次复制,使用二维数组不仅会消耗大量空间,同时也会使复制状态的时间大大增加。因此他们都采用bitboard来表示棋盘,即通过两个64位的整型数来表棋盘的状态(黑白棋每个位置有三种状态,分别是黑、白、空,所以每个位置至少要用两个bit表示一个位置,64个位置需要128位来表示,在python中,整数的位数是没有限制的,因此可以用1个128位的数来表示棋盘,但考虑到可扩展性,因为c语言中有64bit的long long,但没有128位的整型,所以一般两个64的整型来表示棋盘),这种表示方法不仅比较节约空间,而且可以使用位运算在常数时间内完成一些运算,例如翻转一片棋子,而数组的表示方法通常需要线性时间的运算才能完成。使用bitboard可以让这些程序在相同的时间和空间里达到更高的搜索深度。

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

2. 研究的基本内容与方案

2.1基本内容

设计并实现一个带声音和图像的reversi游戏。在一个8x8游戏板上下黑白棋,黑棋白棋轮流下,在新棋子和同色棋子之间,如果有对手的棋子,都将其反转。游戏的目标是让你的棋子尽可能多。当任一个玩家不能落子或游戏板填满,游戏结束。棋子多的一方获胜。除了人机对弈模式,还可以修改reversi ai算法,让不同ai进行对战,即计算机自己和自己玩,看哪种ai算法更好。

2.2采用的技术方案

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

3. 研究计划与安排

(1)2018/1/14—2018/3/5:确定选题,查阅文献,外文翻译和撰写开题报告;

(2)2018/3/6—2018/4/30:系统架构、程序设计与开发、系统测试与完善;

(3)2018/5/1—2018/5/25:撰写及修改毕业论文;

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

4. 参考文献(12篇以上)

[1][美]al sweigart(斯维加特).《python游戏编程快速上手》.人民邮电出版社.2017-10-01

[2]江红、余青松.《python程序设计与算法基础教程》清华大学出版社.2017-07-01

[3] l. wang, y. wang and y. li, "mining experiential patterns from game-logs of board game," international journal of computergames technology, vol. 2015, pp. 1-20, 2015.

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

企业微信

Copyright © 2010-2022 毕业论文网 站点地图