西洋跳棋智能程序设计毕业论文_第1页
西洋跳棋智能程序设计毕业论文_第2页
西洋跳棋智能程序设计毕业论文_第3页
西洋跳棋智能程序设计毕业论文_第4页
西洋跳棋智能程序设计毕业论文_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

西洋跳棋智能程序设计学 院 计算机学院专 业 计算机科学与技术班 级学 号姓 名指导教师负责教师2016 年 6 月摘 要随着社会发展,科技进步,电脑得以普及。电脑游戏伴随着网络和电脑的普及深深的吸引了很多玩家,特别是快节奏的生活,传统的两个人一张桌子的下棋方式逐渐被取缔,人机对弈棋牌类电脑游戏被越来越多的人认可。西洋跳棋作为一款益智类棋牌游戏,不仅可以休闲娱乐,达到游戏自身放松的目的,同时,可以锻炼玩家的思维能力。计算机博弈是非常实际的计算机科学与技术研究课题,也是非常富有挑战性的人工智能领域的研究方向。西洋跳棋是一种平均分支因子较少的棋种,博弈树算法可以得到很好地应用。本游戏是利用 Qt 开发工具与 C+开发语言,利用搜索算法设计最优落子的一款西洋跳棋人机博弈游戏。Qt 是一个多平台的 C+图形用户界面应用程序框架,一种完全面向对象的的程序开发软件,具有很好地封装机制、较高的模块化程度和良好的应用性。C+是一种应用非常广泛的面向对象的计算机程序设计语言,利用 C+语言在游戏中的编程,使得西洋跳棋游戏具有美观的界面,人机对弈方面电脑具有较高的智商。本文主要是对西洋跳棋设计的详细阐述,分别从软件设计背景,需求分析,总体设计和详细设计深入的介绍了软件的开发,并通过对软件的调试分析详细介绍了软件的使用方法,同时,本文深入比较了多种搜素按算法在本设计中的应用。关键词:西洋跳棋;人工智能;Qt;C+AbstractWith the development of society and the progress of science and technology, computer has been popularized. Computer games with the popularity of computer networks and deeply attracted a lot of players, especially the fast pace of life, traditional two table chess has gradually been banned, man-machine chess chess computer game is more and more people recognized. As a puzzle game of chess, checkers can not only entertainment, to achieve the goal of their game to relax, at the same time, you can exercise players thinking ability.Computer game is a very practical computer science and technology research, is very rich challenge in the field of artificial intelligence research direction. Checkers is an average branching factor less chess, the game tree algorithm can be applied well.The game is using Qt development tools and C + + programming language, using search algorithms for the design of optimal Lazi a checkers human-computer game.Qt is a multi platform C + + graphical user interface application program framework, a fully object-oriented programming software, has a good encapsulation mechanism and high degree of modularization and good application of C + + is a kind of widely used object oriented computer programming language, using C + + language in game programming, makes checkers game with beautiful interface, man-machine chess electric brain has a higher IQ.The main purpose of this paper is to checkers design are elaborated in detail, respectively, from the background of software design, demand analysis, general design and detailed design deeply introduced software development, and through the software debugging and analysis of the usage of the software are introduced in detail. At the same time, this paper with various search element according to the algorithm in the design of the application.Keywords: checkers; artificial intelligence; Qt; C+目 录1 前言 .11.1 研究背景 .11.2 国内外研究状况 .11.3 研究内容 .21.4 课题意义 .22 需求分析及相关技术介绍 .32.1 软件设计总体目标 .32.2 系统基本功能 .32.3 西洋跳棋游戏规则说明 .42.4 相关技术介绍 .42.4.1 Qt 软件简介 .42.4.2 C+编程语言介绍 .52.5 系统技术需求 .53 系统分析及设计 .63.1 系统总体设计 .63.1.1 模块化设计流程 .63.1.2 系统总体构成流程 .63.2 系统算法设计概述 .73.3 系统特点及功能结构 .73.3.1 系统特点 .73.3.2 功能结构 .74 详细设计 .94.1 游戏界面模块详细设计 .94.2 棋盘设计模块详细设计 .104.3 人机博弈模块设计详细设计 .124.3.1 博弈树算法设计 .124.3.2 局面评估设计 .124.3.3 走法生成 .124.4 游戏规则模块详细设计 .144.5 胜负判断模块详细设计 .155 运行及调试 .175.1 开始界面调试情况 .175.2 棋盘初始化调试情况 .175.3 走棋调试 .18I5.4 胜负判断调试 .196 总结 .21参考文献 .22致 谢 .2301 前言1.1 研究背景西洋跳棋的起源无法追溯,根据大多数棋艺史家的考证,现在认为西洋跳棋起源于法国的南部地区。当今,例如国际象棋等游戏规则在西方已经统一标准,拥有一套统一化的走棋规则,但西洋跳棋至根据地域不同今却流传着几十种不同的游戏规则,例如波兰跳棋、英国跳棋、中东跳棋等。西洋跳棋下棋过程特别注重玩家对整体棋局的掌控性。西洋跳棋玩法种类繁多,本次设计采用最通用的西洋跳棋规则。双方轮流走子,玩家执红旗先行,人机轮流落子。规则规定:未成王的棋子只能沿斜线向对方左上或者右上前行一格(该格空出没有落子),且未成王的棋子只能前行不可后退。吃子时,对方的棋子在己方棋子斜对角格子的左上或者右上,且对方棋子左上或者右上格子没有其他棋子。加冕成王,游戏在双方底界设计了加冕线,当己方棋子到达对方底边界时,加冕成王,王棋与未成网的棋子区别在于王棋可以后退。胜负判断为两种情况,当一方棋子数量为零时,判断为对方游戏胜利;当双方棋子都无法移动后,由局面评估给出胜利一方。1.2 国内外研究状况当今,西洋跳棋在流行 5000 年的历史之后已经被计算机完全攻破。多年来,西洋跳棋一直被众多数学家、电脑学家和英国跳棋专家研究,取得了非常显著的成功。早在 1989 年,乔纳森谢弗(Jonathan Schaeffer)开始了西洋跳棋项目的研究,在1994 年,谢弗的计算机程序已经可以击败当时人类最顶尖的西洋跳棋大师。在之后的研究中,乔纳森谢弗联手艾伯特大学的学者共同研究出西洋跳棋程序“奇努克”,被誉为当今世界无法被战胜的跳棋程序。自 1950 年,香侬首次提出国际象棋解决方案揭开机器博弈发展序幕之后,诸多计算机爱好者和科学家在此领域不断研究,在九十年代初期,计算机连续战胜很多棋道大师,特别是 1997 年“深蓝”战胜世界棋王,人工智能在计算机博弈方面取得辉煌的成就。之后的研究中,相继攻克中国象棋等众多棋类。2016 年 3 月谷歌Alpha Go 与韩国与韩国棋手李世石进行的围棋比赛中计算机以 4:1 战胜对手获得胜利,人工智能在下棋程序又一次重大进步。11.3 研究内容西洋跳棋是一款规则简单,易于上手的游戏,由于游戏的特性,可以提高玩家对全局的把握能力,并且可以提高玩家逻辑思维能力。本次设计研究内容主要包括以下介个方面:游戏界面设计:游戏界面的设计风格直接影响到玩家对游戏的兴趣,所以游戏界面设计在游戏设计中起到非常重要的作用,游戏界面设计主要为游戏开始界面。游戏棋盘设计:本游戏棋盘设计为标准西洋跳棋 10*10 的棋盘设计,棋盘中100 个格子黑白分明落子明确,玩家可以很容易掌握棋盘。落子设计:落子设计分为玩家落子和电脑落子。玩家落子只需遵从游戏规则即可,电脑落子采用博弈树搜索算法,寻找最优落子方案。局面评估设计:局面评估采用分类加权计算双方优势,最终判断局面胜负情况。1.4 课题意义目前,市面上棋牌类游戏种类繁多,例如中国象棋、跳棋等棋类游戏版本众多,但西洋跳棋游戏却在棋牌类游戏中特别少见,特别是网络上玩家可选择的西洋跳棋游戏制作简单,画面粗糙,加上许多让玩家不喜的广告,很难满足西洋跳棋爱好者的兴趣。因此需要一款设计画面精美,走棋风格合理的西洋跳棋程序来满足西洋跳棋爱好者的兴趣。本设计在过程中注重界面设计,Qt 软件独特的界面设计功能在设计中可以为玩家设计出精美的界面,精美的开始界面有利于提高玩家的游戏乐趣。在游戏设计中,略高的电脑走法,使玩家不会感到枯燥,玩家在下棋过程中提高自身棋艺的同时,不仅可以起到放松的作用,还可以锻炼玩家的逻辑思维能力和智力。22 需求分析及相关技术介绍2.1 软件设计总体目标西洋跳棋是一款益智类人机对弈棋类游戏。本款软件主要针对的用户为西洋跳棋爱好者和初学者玩家,玩家在使用软件过程中达到休闲娱乐,提高棋艺的目的。设计目标:第一,界面设计独特新颖,轻松自然,可以吸引玩家,使玩家达到放松的目的;第二,游戏难度适中,电脑走棋算法合理,适合初级玩家使用,使玩家在使用过程中可以达到提高棋艺的目的,但游戏难度不会过大,不可以让玩家使用过程中因游戏难度过高感到枯燥。2.2 系统基本功能本软件使用对象为游戏玩家,以界面新颖,风格独特,走棋合理的特点为主,软件应包括游戏开始界面,棋盘,棋子,人机博弈,局面评估,胜负判断等内容,设计分为五个模块:1)开设界面模块:用户进入游戏,首先是欢迎界面,既游戏开始界面,玩家点击开始游戏按钮,进入游戏。2)棋盘设计:玩家进入游戏后,生成初始棋盘,棋盘为 10*10 共一百个格子,棋盘设计格子为黑白两色分别交错排布,便与玩家区分,棋子设计要求与棋盘形成对比色彩,便于玩家操作。3)人机对弈模块:本模块为程序设计的核心模块,玩家落子后,电脑根据搜索算法找到最优落子方法,可与玩家进行对弈。4)下棋规则模块:本模块为西阳跳棋程序的基础模块,判断落子地方和吃子情况。5)胜负判断模块:本模块的目的是判断游戏胜负。以上为游戏软件主要功能设计,系统功能模块如图 2.1 所示3图 2.1 软件功能模块图2.3 西洋跳棋游戏规则说明1.游戏双方轮流走棋。2.棋子为成为王棋前,棋子只能向左上角或者右上角且无人占据的格子斜走一格。吃子时,敌方的棋子必须在己方棋子的左上角或者右上角的格子,而且该敌方棋子对应的左上角或者右上角必须没有棋子。3.当棋子到了对方底线,该棋子就可以加冕成王棋,王棋可以向后移动。4.若一个棋子可以吃棋,则必须吃子。5.若一方无法行走或者所有棋子均被吃,则该方算输。2.4 相关技术介绍本软件利用 Qt5.2.0 软件编写,编程语言为 C+计算机编程语言编写。2.4.1 Qt 软件简介Qt 是一个跨平台的 C+应用程序和图形界面开发框架。于 1991 年由奇趣科技研

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论