毕业论文--基于Qt的黑白棋游戏

上传人:liy****000 文档编号:115168407 上传时间:2019-11-12 格式:DOC 页数:54 大小:709.50KB
返回 下载 相关 举报
毕业论文--基于Qt的黑白棋游戏_第1页
第1页 / 共54页
毕业论文--基于Qt的黑白棋游戏_第2页
第2页 / 共54页
毕业论文--基于Qt的黑白棋游戏_第3页
第3页 / 共54页
毕业论文--基于Qt的黑白棋游戏_第4页
第4页 / 共54页
毕业论文--基于Qt的黑白棋游戏_第5页
第5页 / 共54页
点击查看更多>>
资源描述

《毕业论文--基于Qt的黑白棋游戏》由会员分享,可在线阅读,更多相关《毕业论文--基于Qt的黑白棋游戏(54页珍藏版)》请在金锄头文库上搜索。

1、 太原理工大学毕业设计(论文)用纸基于Qt的黑白棋游戏摘 要本文主要介绍黑白棋游戏的设计与开发流程,同时讨论黑白棋设计中不同搜索算法的原理以及特点,从博弈树搜索算法的进步来反映人工智能的发展。本程序是在Linux(Ubuntu12.04LTS)环境下使用面向对象的C+语言开发。有人人对弈,人机对弈,悔棋等功能。本论文首先指出了黑白棋游戏,Qt以及计算机博弈的发展现状,然后重点介绍了Qt开发工具的使用,黑白棋程序的设计流程(包含类图、用例图、时序图的设计),规则设计,算法设计。最后介绍了Linux桌面环境GUI和计算机博弈的发展趋势。本设计通过一个棋类游戏的开发,阐述了棋类游戏的开发过程,包括软

2、件开发的逻辑分析,程序设计,软件实现和软件测试的几个步骤。关键词:黑白棋;人工智能;搜索算法;QtReversi game based on QtAbstractThis paper describes the Othello game design and development process and discussed different design principles and features of the search algorithm. From the advancement of game tree search algorithm to reflect advances

3、 in the development of artificial intelligence. This program is the use of object-oriented C + + language development under Linux (Ubuntu12.04LTS) environment. Implements the following functions, man-machine to war, multiplayer, undo, etc. In this thesis points out the development status of Reversi

4、game, Qt and computer game. Then focuses on the usage of Qt development tools, Othello program design process (including class diagrams, case diagram, sequence diagram design with), rules design, algorithm design. Finally, the development trend of Linux desktop environment GUI and computer game.By d

5、eveloping a chess game, describes the development process of board games. Several steps including logical analysis of software development, program design, software implementation and software testing.Key words: Othello; Artificial Intelligence; Search Algorithm; Qt目录摘 要IAbstractII1 绪论11.1 前言11.2 黑白

6、棋的发展11.2.1 黑白棋程式的发展21.2.2 游戏规则21.2.3 开局策略21.3 机器博弈与人工智能的发展概况31.3.1 机器博弈的基本思想31.3.2 机器博弈系统41.3.3 博弈搜索41.3.4 Min-Max搜索41.3.5 -剪枝搜索41.3.6 alpha-beta的增强算法介绍51.3.7 人工智能的发展状况71.4 主要研究内容81.5 相关实验环境82 工具及算法介绍92.1 Qt简介92.2 信号与槽92.3 Qt和MFC的比较92.4 核心算法介绍103 系统分析与设计123.1 黑白棋的需求分析123.1.1 用例图123.1.2 程序流程图133.2 模块

7、设计133.2.1 主要模块简介133.2.2 类图143.2.3 棋盘数据结构设计153.3 设计系统的现实意义174 详细设计184.1 界面设计184.2 核心算法代码及注释205 系统测试295.1 白盒测试295.2 黑盒测试305.3 总结325.4 展望33参考文献34致谢35521 绪论 1.1 前言计算机博弈(Computer Games),也称之为机器博弈,就是让计算机可以像人脑一样进行思维活动,最终可以下棋,下国际象棋、西洋跳棋、黑白棋、中国象棋、围棋等等。 早在计算机诞生的前夜,著名的数学家和计算机学家阿伦图灵(Alan Turing)便设计了一个能够下国际象棋的纸上程

8、序,并经过一步步的人为推演,实现了第一个国际象棋的程序化博弈。那些世界上最著名的科学家,如计算机创始人冯.诺依曼(John von Neumann),信息论创始人科劳德.香农(Claude E. Shannon) ,人工智能的创始人麦卡锡(John McCarthy)等人都曾涉足计算机博弈领域,并做出过非常重要的贡献。 从上世纪 40年代计算机诞生,计算机博弈经过一代又一代学者的艰苦奋斗和坎坷历程,终于在上世纪的八、九十年代,以计算机程序战胜棋类领域的天才而享誉世界。其中最为著名的则是 1997 年5 月 IBM“深蓝”战胜世界棋王卡斯帕罗夫,成为计算机科学史上一个不朽的丰碑。在这之后,计算机

9、博弈一天也没有停息过拼搏。由Science杂志评选的 2007年十大科技突破中,就还包括了加拿大阿尔波特大学的科研成果解决了西洋跳棋(Checker)博弈问题,也就是说,在西洋跳棋的博弈中计算机将永远“立于不败之地”。计算机博弈原理与方法学既涉及到博弈论(对策论)、搜索原理等理论内容,又更多地涉及到数据结构、软件工程、程序设计方法学等方面的知识。计算机博弈属于计算机科学与应用学科的研究方向之一,又是人工智能领域的重要研究方向,应该属于智能科学与技术学科的一个分支。本文着重介绍了黑白棋的设计与开发,通过介绍博弈算法与程序设计的基本流程让您对计算机博弈原理与方法以及程序设计有更深入的了解。1.2

10、黑白棋的发展黑白棋是起源于英国19世纪末的一种棋盘类游戏,又叫反棋(Reversi)、奥塞罗棋(Othello)、苹果棋或翻转棋。游戏通过相互翻转对方的棋子,最后以棋盘上谁的棋子多来判断胜负。为什么以奥塞罗棋来命名黑白棋呢?上世纪70年代日本人Goro Hasegawa借用莎士比亚名剧“奥塞罗”为黑白棋重新命名。在莎士比亚笔下的主角奥塞罗,是一位黑肤色的摩那人将军,他的妻子是一位白人贵族的女儿苔丝狄蒙娜(Desdemon),因为受到小人伊阿古(Iago)的挑拨离间,怀疑自己的妻子不忠而亲手杀死了自己的妻子。真相大白后,由于内心充满后悔和愧疚而自杀身亡。就如同奥塞罗据中男女主角之间的爱恨纠葛一样

11、,黑白棋在游戏的过程中黑子与白子必须不断翻动对手棋子,因此黑白棋就以Othello来命名。1.2.1 黑白棋程式的发展上世纪90年代初,由于计算深度和尾局的准确性,黑白棋程式的棋力已经很强。这个时期的程式由人工加入行动力、位置策略等因素,所以程式的棋力依赖于程式员本身的棋力,导致程式中存在人类棋手的弱点。这一情况在1995年左右得到了突破性的发展,程式员Michael Buro写出了能自我学习的黑白棋游戏Logistello。自此,程式员不在把人工策略写死在程式里,而是由程式自我学习,程式会纪录形状,自动调整下棋策略。具有先进算法,高效率和准确的编程,使黑白棋程式的棋力远远超过人类棋手。黑白棋

12、算法的不断改进,体现了人工智能(AI)的发展。1.2.2 游戏规则游戏开始时棋盘正中有交叉放置的四个棋子,两黑两白,黑棋总是先手。双方交替下棋。新落下的棋子与棋盘上已有同色棋子之间,被夹住得所有对方棋子都要翻转过来。且夹住位置上必须全部是对手的棋子,不能有空格。一步棋可以在数个方向上翻棋,任何被夹住得棋子必须被翻转过来。如果一方在棋盘上没有地方可以落子,则对手可以连续落子。双方都没有棋子可落时,棋局结束,棋子数目多的一方获胜。在棋盘还没有下满是,如果一方棋盘上没有棋子,则棋局结束。将对手棋子吃光的一方获胜。1.2.3 开局策略黑白棋最常见的开局策略有以下几种:最多子策略(The Maximum

13、 Disc Strategy)位置权重策略(The Weighted Square Strategy)行动能力策略(The Mobility Consideration Strategy)稳定子策略(The Stability Disc Strategy)这四种开局策略各有优缺点,以下会对其简单介绍:(1)最多子策略(The Maximum Disc Strategy)此策略采用贪心算法,是最直接简单的一种策略。此策略在落子时,会判断在哪个位置落子可以造成己方棋子数目最多,即可以翻转对手棋子最多的位置,从而取得胜利。虽然使用此策略会在初期占据大量棋子并取得优势,但是占据的棋子并非不会再被对手所

14、占据的稳定子,且让对手有更多落子的位置的选择。因此很容易被对方逆转局面,失去领先地位。(2)位置权重策略(The Weighted Square Strategy)棋盘上每个位置都有各自对整个盘面变化产生的价值,因此将每个位置不同的价值作为落子时考虑的权重,如图1-1所示在角落位置(*)因为对盘面有较大的影响力,因此也就拥有比其他位置较高的权重,一旦占领角落后,不仅此位置不会被对手再占领,且将可以此位置为锚,进而占领盘面上其他的位置,所以在位置权重策略上对角落位置给予较高权重。而在盘面上C与X被赋予较低的权重,因为落子在这些位置时有可能对盘面发展状况造成不利的影响,落子在C、X会让对手有机会占

15、领角落,而让自己处于不利局面。此外在A、D位置会给予次高的权重,落子在这些位置时,将有可能让对手被迫落子在C、X位置,而陷于困境,因此A、D位置有次高权重。(3)行动能力策略(The Mobility Consideration Strategy)以合法步的数量来决定其行动能力的状态,如果是对手可下的合法步数量少得话,将会使对手无合法步可以落子发生pass,或是被迫下在不利位置(如图1-1 C、X位置)。(4)稳定子策略(The Stability Disc Strategy)落子时考虑落子的位置将会造成多少稳定子来决定该下在哪里,稳定子即无法再被对手所翻动的棋子。在上述的策略中,每一种策略都有其应用的情况,也有其不足之处,所以在一盘棋局中不能只采用一种策略,最好的方式应该是在面对不同的棋局情况时采用对应的策略。 图1-1位置权重策略示意图1.3 机器博弈与人工智能的发展概况

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 毕业论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号