搜档网
当前位置:搜档网 › (完整版)五子棋人工智能课题毕业论文

(完整版)五子棋人工智能课题毕业论文

(完整版)五子棋人工智能课题毕业论文
(完整版)五子棋人工智能课题毕业论文

人工智能专家系统论

题目五子棋AI算法和网络通信的研究

学生姓名陈维梅

学号

系别商务学院

年级2009

专业计算机科学与技术

指导教师

职称讲师

完成日期

五子棋AI算法和网络通信的研究

摘要:

本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现两种不同对战模式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机对奕中AI算法研究方面。

游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。

关键字:五子棋、博奕AI算法、网络通信

Research the AIof Renju and the Communication

Summary:

This system will use Renju as research objects, passing to design a Renju game that can provide two kinds of dissimilarities to the play mode. to involve to of the related technique carry on the study of the first step, play more attention in the AI calculate way research aspect.

It provide two kinds of choice modes in the game:Person's machine

to the war and the everyone to war.The player passes to choose the different AI grade and computer in person's machine the rightness the war

a definitely superiority.Both parties can carry on play chess in the everyone the rightness the war, the regrets chess but want to pass the approval of the other party.Can also carry out on-line chat in the meantime.AI different grade with search the depth assurance differently.This system takes depth as 2, 3, 4 is an entry-level respectively, medium class, using the Socket realization to order in the war to.

Key word: Renju ,AI,networks

目录

第一章引言 (4)

1.1问题背景 (4)

1.2五子棋简介 (5)

第二章详细设计过程 (5)

2.1.概要介绍 (5)

2.1.1 本程序介绍 (5)

2.1.2 本程序优点 (5)

2.2用软件工程方法学指导开发过

程 (5)

2.2.1 问题定义 (6)

2.2.2 可行性研究 (7)

2.2.3 需求分析 (8)

2.2.4总体设计 (9)

2.2.5 详细设计 (10)

2.2.6 编码和单元测试 (10)

2.3用户界面 (10)

2.4系统解析 (11)

2.4.1 界面部分 (11)

2.4.1.1CFiveChessView的属性 (11)

2.4.1.2CFiveChessView的函数 (12)

2.4.2 通信部分 (14)

2.4.3 其他部分 (15)

2.4.3.1 CMatch---棋盘类 (16)

2.4.3.2 CMessg—消息类 (17)

2.4.3.3 CComputer—电脑类 (18)

2.5.人机对战中的AI算法 (18)

2.5.1 极大极小树 (19)

2.5.2深度优先搜索(DFS) (19)

2.5.3 剪枝方法 (20)

2.5.4 静态估值函数 (21)

2.5.5AI算法的分析和改进 (21)

2.5.5.1算法分析 (22)

2.5.5.2 算法改进 (24)

第三章运行测

试 (25)

3.1 网络部分 (25)

3.2 人机部分 (25)

第四章总结部分 (27)

4.1 系统总结 (29)

4.2 不足说明 (29)

4.3 致谢 (28)

参考文献 (29)

第一章引言

1.1 问题背景

计算机运算速度一直遵循着摩尔定律在飞速的发展,随着这些技术的快速发展,使得大规模的运算得以在很短的时间内实现。正是基于这些技术,近年来各式各样的棋类游戏软件也纷纷出现在了电脑荧屏上,使得那些喜爱下棋,又常常苦于没有对手的棋迷们能随时过足棋瘾。所以如果能设计一款兼有人工智能和网络联机的五子棋软件则对五子棋棋迷们来说无疑是个“福音”。在人机智能方面其中战胜过国际象棋世界冠军-卡斯帕罗

夫的“深蓝”便是最具说服力的代表;其它像围棋的“手淡”、象棋的“将族”等也以其优秀的人工智能深受棋迷喜爱;

本系统将重点放在人工智能方面,采用不同的策略将人工中的智能分为不同的等级。选择五子棋游戏作为本设计的课题,是因为该游戏的规则简单,所涉及的方向比较少。这样才能将问题的重点放在人工智能解决上,而非规则的解决,有更多的精力放在高效算法和通信过程的优化。希望能通过本次系统的设计,整合所学的知识,实现从理论到实践上的升华。1.2 五子棋简介

下面就五子棋的背景和规则做一些简单的介绍。

五子棋是起源于中国古代的传统黑白棋种之一。现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR”(Five in a Row的缩写),亦有“连五子”、“五子连”、“串珠”、“五目”、“五目碰”、“五格”等多种称谓。

五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛;它的棋文化源渊流长,具有东方的神秘和西方的直观;既有“场”的概念,亦有“点”的连接。它是中西文化的交流点,是古今哲理的结晶。

五子棋的规则如下:棋盘:采用同围棋盘一样的15 路或19 路线的棋盘,为了减小问题的规模,本系统将采用15 路线的棋盘。下法:两人分别执黑白两色棋子,轮流在棋盘上选择一个无子的交叉点落子。无子的交叉点又被称为空点。输赢判断:黑、白双方有一方的5个棋子在横、竖或斜方向上连接成一线即为该方赢。

第二章详细设计过程

2.1概要介绍

2.1.1本程序介绍

游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的等级和电脑一决高下,可以向后悔棋。在人人对战中双方通过选择一方作为服务器,通过弹出对话框设置本地应用程序监听端口,而另外一方则作为客户端,通过连接服务器选项,在弹出的对话框中设置要连接的服务器的IP地址和端口号。当双方都提示连接成功后,两方才可以进行下棋。如要悔棋则需要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。

2.1.2本程序特点

五子棋游戏程序由于规则简单操作简便等特点,自然就成为程序员对人工智能研究的首选对象。所以网络上关于这类的程序很多,但是由于主要都是采用搜索穷举技术作为解决方案,这将使得问题的规模变的很庞大如当搜索深度为3时,每走一步电脑在将最坏的情况下需要搜索的点将达到225*225*225=个。即使采用的剪枝技术,其某些点的响应的时间也是让人无法忍受的,如开局时,因为这个时候每个点都是空的,没有可以剪枝的点,必须遍历真个盘面,所以很耗时间,大约需要30多秒的时间,这个显然是不可接受的。为了程序设计和玩家的忍受时间的需要。不得不减小深度,所以绝大部分都采用深度为2的检索,很明显深度越低系统的智力也相对的降低,需要代价的。

本程序的一个主要特点是,采用了高效的优化方法,使得在相同的搜索规模中所花费的计算时间大幅度的减小。响应时间明显得到提高。即使

搜索深度达到4的时候,其响应时间在绝大部分的情况下还是可以接受的。

2.2用软件工程方法学指导开发过程

在小规模的程序开发中,很多人都不太注意用软件工程的方法学设计系统,包括我本人,在开发一些小功能程序时总是随心所欲的添加需求:有时为了类与类之间的通信需要,往类中添加不相关的变量,直接修改变量的属性或者声明一大堆的全局变量。虽然最后系统都能够”笨重”的运行起来,但这是明显违背程序设计方法学。可维护行,易修改性严重降低。后期如果需要添加某些功能的时候将变得十分的繁琐。可以想象在多个团队一起开发的大型系统中这种粗陋的开发方法根本是行不通的。所以要养成用正确的方法指导开发过程的习惯,虽然有时候看起来有点大题小做,但我觉的这是作为一名合格的软件开发工程师所必须掌握的技能。通过长期不断的积累才能增加我们参与大型项目开发的能力。

下面对软件工程作下简单的介绍:

软件工程一直以来都缺乏一个统一的定义,很多学者、组织机构都分别给出了自己的定义:

Boehm:运用现代科学技术知识来设计并构造计算机程序及为开发、运行和维护这些程序所必需的相关文件资料。

IEEE:软件工程是开发、运行、维护和修复软件的系统方法。

Fritz Bauer:建立并使用完善的工程化原则,以较经济的手段获得能在实际机器上有效运行的可靠软件的一系列方法。

目前比较认可的一种定义认为:软件工程是研究和应用如何以系统性的、规范化的、可定量的过程化方法去开发和维护软件,以及如何把经过时间考验而证明正确的管理技术和当前能够得到的最好的技术方法结合起来。

我个人对软件工程理解是,它一种工程上的方法学,用一种有步骤,有计划的正确有效方法指导开发过程。

软件工程的精髓可以用著名的软件工程专家B.Boehm的七条基本原理来概括。

(1)用分阶段的生存周期计划进行严格的管理。

(2)坚持进行阶段评审。

(3)实行严格的产品控制。

(4)采用现代程序设计技术。

(5)软件工程结果应能清楚地审查。

(6)开发小组的人员应该少而精。

(7)承认不断改进软件工程实践的必要性。

目前绝大部分的软件方法都可以从这七条基本推倒出来。B.Boehm 指出,遵循前六条基本原理,能够实现软件的工程化生产;按照第七条原理,不仅要积极主动地采纳新的软件技术,而且要注意不断总结经验。

下面扼要介绍软件生存周期在本次每个阶段的基本任务

2.2.1问题定义

问题定义的一个的关键问题是“要解决的问题是什么”,这个是这个阶段必须要明确要回答的问题。在没将问题定义好,试图准备下个阶段的任务。这明显是不成熟,甚至不可能的事。

选择操作

调用

图2.1 系统模型

本次系统设计中首先明确了需要解决的问题是五子棋AI算法和网络通信的研究,基本的要求是设计一款能够实现网络和单机对战的五子棋游戏,提供一些基本的操作如退出系统,向后悔棋等操作,重点是放在AI

算法和网络通信的研究。而并不是美工设计,也不是为了提供各种操作丰富的接口。主要是通过这种可视化的界面探讨AI,当然增加可玩性和美工会给系统润色不少。

上面只是很粗略的明确大概的方向,严格按照软件工程的方法这个阶段需要生产一份书面报告。需要通过对系统的实际用户访问调查,扼要地写出他对问题的理解,并在用户和使用部门负责人的会议上认真讨论这份书面报告,澄清含糊不精的地方,改正理解不正确的地方,最后得出一份双方都满意的文档。本系统的需求很少也很明显了。

2.2.2可行性研究

这个阶段要回答的关键问题:“对于上一个阶段所确定的问题是否可行?”为了回答这个问题,我们需要进行一次大大压缩和简化了的系统分析和设计的过程,也就是在较抽象的高层次上进行的分析和设计的过程。

可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。

可行性研究应该比较简短,这个阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,是否有可行的解决办法。可行性研究以后的那些阶段将需要投入要多的人力物力。及时中止不值得投资的工程项目,可以避免更大的浪费。

根据这些基本的概念,我在技术上主要是通过相关文档资料的查找后确定可行性,凭着大学期间打下厚实的专业科基础,特别是数据结构和算法,能够在这段时间内理解通透并应该有所改进,后来证明是对的。利用剩下时间也应该来说也比较充裕的。经济上暂不考虑。

下面主要从技术上进行分析:

工具:VC++是一款经久不衰的开发工具,它代表了基于

Windows的C++语言产品,完美地集成了传统的编程工具,也集成了Windows中特殊的工具箱,如MFC(Microsoft Foundation Classes)和Windows资源编辑器(App Studio)。另外还加入了几种新工具,如轮廓应用程序生成器(App Wizard)、C++类管理器(Class Wizard)和类浏览器(Class Browser),以及各种各样为开发Microsoft Windows下的CC++程序而设计的工具,MFC类库为我们提供了丰富的类资源。所以VC++是最好的选择。

本程序将采用VC++的单文档的视图框架,这样可以简化程序的开发。网络通信方面将从MFC封装socket的类CSocket实现点对点通信。

算法:在这图论搜索技术这方面,前人已有很成熟的算法。如粗糙的有深度优先算法(DFS)和广度优先算法(BFS)这两个基本的算法,关键需要解决的是能够设计出一种高效的剪枝函数,减小搜索问题的规模。目前博弈类游戏中的人工智能基本都采用极大极小值方法这对我来说是个挑战,而剪枝的则采用Alpha-Beta,通过丰富的文档资料初步了解到这些技术已经很成熟了。我有信心能解决好这个问题。

Socket:联机对战中的数据传输量很少,利用Socket编程是在好不过了,而且在这方面的掌握程度不存在有问题。

所以通过对以上关键问题的分析,可以很明确了该系统的可行性。这个阶段的任务告一段落了。可以着手下一个阶段的任务了。软件工程很强调文档驱动开发过程,只有完成了上个阶段的工作后,才能开始下一步骤,这是传统的瀑布开发方法。当然不同的开发模型,过程也会有所区别,大体上都遵循软件工程的这个步骤。这个阶段应该要产生一份《可行性分析报告》。

2.2.3 需求分析

这个阶段的任务仍然不是具体地解决问题,而是准确地确定“为了解决这个问题,目标系统需要做什么”,主要是确定目标系统必须具备哪些功能。

用户了解他们所面对的问题,知道必须做什么,但是通常不能完整准确地表达出他们的要求,更不知道怎样利用计算机解决他们的问题;软件开发人员知道怎样使用软件实现人们的要求,但是对特定用户的具体要求并不完全清楚。因此在需求分析阶段必须和用户密切配合,充分交流信息,以得出经过用户确认的系统逻辑模型。通常用数据流图、数据字典和简要的算法描述表示系统的逻辑模型。

在设计本系统时考虑到用户需要的是一个操作简便界面简单的游戏软件。同时要提供人机和人人这样的功能。特别是人机部分,要考虑到不同级别的用户。电脑智能不能太低需要有一定的智能下棋功能。

本系统用提供平常下棋的一些步骤操作。

网络联机:提供向服务器一方发出连接请求的操作,并从弹出的对话框中设置IP和端口号;服务器提供监听的操作同样在弹出的对话框中设置端口号。任何一方需要悔棋请求,则必须通过对方的确定后方可。连接成功后双方可以开始游戏,决定在界面中提供在线聊天功能。用户可以通过主界面的上的菜单操作执行响应的功能和请求,如向对方发处向后悔棋一步,重新开始,认输等,另一方在接到请求后决定接受或拒绝。

人机对战:选择和电脑对弈的等级操作,同样也可以执行网络联机的悔棋等功能,只是因为是人机所以无需通过确认。

2.2.4总体设计

这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”首先,应该考虑几种可能的解决方案。如,目标系统的一些主要功能是用计算机自动完成还是用人工完成;如果使用计算机,那么是使用批处理方式还是人机交互方式;信息存储使用传统的文件系统还是数据库……。通常至少应该考虑下述几类可能的方案:

低成本的解决方案。系统只能完成最必要的工作,不能多做一点额处的工作。本系统的最基本要求就是能够实现必要的操作,其他额外的一些工作在后面完成

中等成本的解决方案。这样的系统不仅能够很好地完成预定的任务,使用起来很方便,而且可能还具有用户没有具体指定的某些功能和特点。虽然用户没有提出这些具体要求,但是系统分析员根据自己的知识和经验断定,这些附加的能力在实践中将证明是很有价值的。

这个成本方案在完成上面的低成本方案后添加的。如增加保存棋局,美化界面,实现观看电脑与电脑之间的对战等功能。

高成本的“十全十美”的系统。这样的系统具有用户可能希望有的所有功能和特点。

结构设计的一条基本原理就是程序应该模块化,也就是一个大程序应该由许多规模适中的模块按合理的层次结构组织而成。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。

2.2结构图

2.2.5详细设计

这个阶段的具体内容我把放到模块分析的章节去分析。下面仅作个简要的概述。

总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设

计阶段的任务就是把解法具体化,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”

这个阶段的任务还不是编写程序,而是设计出程序的详细规格说明。这种规格说明的作用很类似于其他工程领域中工程师经常使用的工程蓝图,它们应该包含必要的细节,程序员可以根据它们写出实际的程序代码。

2.2.6编码和单元测试

这个阶段的关键任务是根据以上阶段分析的软件模型,编写各个功能模块。

要注意的是程序的扩张性和可读性。以便以后软件的升级修改。同时要仔细的测试每个功能编写好的功能模块。

这个内容也放到下面编译运行章节去。

2.3 用户界面

用户界面在整个系统的使用中起着很大的作用,它将直接影响到用户对软件的评价。界面是人机交互的平台,所以在设计时尽量往用户方考虑。提供操作简便和友好界面。

以下是系统使用的界面,感觉还有很多地方需要改进和完善。但是总体来说已经能够基本满足系统的需要。拥有较为良好的交互功能。

图2.3 用户界面

2.4 系统解析

下面结合操作对各个功能模块设计进行相应的解析。

2.4.1 界面部分

这部分我采用的是vc++提供的单文档视图框架,该框架为我们生成了Window应用程序最基本的界面无需自己动手编写复杂的菜单模块等代码,只要在基于这个框架的基础上对相应的功能进行补充和扩展。

2.4.1.1 CFiveChessView的属性

CView 类是该框架中一个很重要的类,它提供了大部分的交互功能,如菜单,鼠标左键等消息的的响应。下面对本系统中的CFiveChessView 类的几个重点内容做个介绍。

m_ListenSocket和m_ClientSocket变量,这两个类成员均是派生自CSocket类,前者定义为一个服务端的套接字(Socket)变量,它用于服务端负责监听,当它收到某个主机发来的连接请求时,将m_ClientSocket和远程主机端的套接字关联。这样双方可以进行通信了。

CMatch m_match 这是一个棋盘类的一个变量。关于这个类将在后面做详细的讲解,将棋盘单独抽象为一个类,并向外部提供棋盘的一些操作。这比较符合面向对象编程。

CComputer m_computer 这也是一个很重要的成员,它将人机对战中的电脑方抽象成一个类,该类提供不同的等级的下棋功能。根据当前棋盘的局势给出最佳的下棋点。该类也将在后面给出详细的介绍。

m_mode 这是用于标记当前系统的是属于哪种模式人机或者联机,当它是人机的状态时值为P_PK_C(枚举类型的值),同样当它是联

机状态就为P_PK_P。若当前没有选择的状态值就为NOCHOOSE,表示当前还为进行选择。

m_who 用于标记使用棋子的类型,1代表黑色,2代表白色。

m_turn 这是联机中用于标识当前是轮到哪方下棋了。

m_bWin标识本机方赢的状态。

m_bOver 标识游戏是否已经结束。

2.4.1.2 CFiveChessView的函数

以下的五个变量均为CBitmap类对象,m_lastwhitechess加载的是位图。m_whitechess加载的是位图,m_lastblackchess加载m_blackchess加载位图,m_black 加载位图。m_board加载的是棋盘位图。

下面对该视图类一些重要的成员函数做些介绍。

●DrawWhiteChess(int i,int j,CDC *pDC);

●DrawBlackChess(int i,int j,CDC *pDC);

这两个函数根据传递进来的参数,确定要在棋盘的哪个位置和画的类型,如当该点是最近下的一个棋子,则把它用m_lastblackchess或m_lastwhitechess加载的位图贴出来。否则使用m_whitechess或m_blackchess位图。

这两个函数是在OnDraw(CDC* pDC)函数中被调用的。这个函数在窗口初始化或者需要重绘的时候被调用的。系统会发出一个重绘消息,调用OnPaint(),在这个函数中又调用了OnDraw(),将整个界面画出来。

OnLButtonDown(UINT nFlags, CPoint point)是该类中一个非常重要的函数,用户的下棋的操作都是由这个函数完成的。当左键被点击的时,Window会产生一个左键消息放到该应用程序的消息队列中,而该应用系

统取出消息并通过消息映射确定调用的函数,最后由操作系统调用该函数。我们可以将其简化理解为用户点击了左键后,该函数就响应了该操作。

●该函数首先判读游戏是否已经结束,如果是那么会弹出对话框询问

用户是否要继续。

●如果没结束的话,并且当前的模式不是NOCHOOSE则根据鼠标

的坐标计算出该点对应的是棋盘的哪个位置,把它保存起来。若是

则提醒用户选择模式。

●然后判读当前的下棋模式,进入到响应的模块中,在模块中需要判

读该点是否是合法的,若不是则返回。

1) 人机模式:判读该点是否合法,如果是则更新该点(该点区域

重绘),并且记录下该点作为最新下棋点。接着判断该点是否

能行成五连子。如果不能,则调用m_computer 成员的响应

等级算法,给出电脑的棋子的坐标。同样需要判断该点能否行

成五连子,最后更新该点。

2) 联机模式:判读是否轮到己方下棋,若是则判断该点是否合法,

若是修改相应的状态变量,并且发送消息棋盘状态给对方。同

样判断是否行成了五连子。

下面再介绍一些菜单上的消息响应函数。

?void OnSetclient()------连接服务器

该函数用于响应菜单项游戏的子菜单下的连接服务器选项,响应后将弹出

如下的对话框,要求用户设置好需要连接的服务器端的IP和监听端口。

图2.4 连接服务器

?void OnSetserver()------开启服务器

该函数也是用于响应游戏菜单下的开启服务器选项,点击后也弹出如下要求设置的监听端口。

图2.5 开启服务器

?void OnPrimary()初级选项

?void OnSecondary();中级选项

?void OnSenior();高级选项

这三个函数响应用户要选择人机对战中电脑的等级,点击该菜单将m_computer的成员m_grade分别设置成1,2或3,并且模式变量m_mode被设置成P_PK_C.

void OnRollback();悔棋选项

悔棋选项分为两个部分:一种是人机对战状态中的悔棋,该模式下用户只需点击该选项,棋局将回退到上一个状态。另一种是;联机对战的模

人工智能在物联网中的应用毕业论文

毕业设计 设计(论文)题目:人工智能在物联网中的应用 专业班级:物联网141 学生姓名:周钟婷 指导教师:李生好 设计时间:2017.5.8——2017.6.9 重庆工程职业技术学院

重庆工程职业技术学院毕业设计(论文)任务书 任务下达日期:2017.5.8 设计(论文)题目:人工智能在物联网中的应用 设计(论文)主要内容和要求: 1.显示器件:引领TFT-LCD技术的创新和发展,致力于加快AMOLED、柔性显示、增强 现实、虚拟现实等新型显示器件及薄膜传感器件的进步。 2.智慧系统:以“物联网和人工智能”为主要方向,以用户为中心,基于在显示、人 工智能和传感技术优势,发展智能制造、智慧屏联、智慧车联、智慧能源四大物联网解决方案。 3.智慧健康服务:将显示技术、信息技术与医学、生命科技跨界结合,发展信息医学, 提供物联网智慧健康产品及服务。 教学团队主任签字:指导教师签字: 年月日年月日

重庆工程职业技术学院毕业设计(论文)指导教师评语评语: 成绩: 指导教师签名: 年月日

重庆工程职业技术学院毕业设计(论文)答辩记录

目录 摘要................................................... (1) 第一章目前人工智能技术的研究和发展状况......... . (2) 第二章显示器件事业技术应用 (2) 第三章智慧系统事业技术应用 (2) 3.1智能制造 (2) 3.2智慧屏联 (2) 3.3智慧能源 (2) 3.4智慧车联 (3) 第四章智慧健康服务事业技术应用.................... .. (3) 第五章目前人工智能发展中所面临的难题.......... . (3) 5.1计算机博弈的困难................... .. (3) 5.2机器翻译所面临的问题................... . (4) 5.3自动定理证明和GPS的局限.......... (4) 5.4模式识别的困惑 (5) 第六章人工智能的发展前景 (5) 6.1人工智能的发展趋势 (5) 6.2人工智能的发展潜力大 (5) 结束语 (6) 参考文献 (6)

基于c语言五子棋小游戏--本科生毕业设计

五子棋小游戏 一.需求分析 现在有越来越多的人使用电脑,而且五子棋的受众广泛但实体棋操作较为繁琐且平时较难实现,所以电脑版的五子棋游戏应运而生。大家对于这个小游戏的需求如下:首先,设计这个游戏最基本的就是实现玩家之间对战,玩家可以通过某些操作来实现对战功能;有时候可能由于时间等原因,玩家可能需要保存游戏,此时需要一个“保存”功能;有时候可能玩家由于失误会走错棋,此时就需要“悔棋”功能;有时候玩家可能觉得这局游戏玩的非常不好,这时候就需要“重新开始游戏”功能;玩家在玩过游戏之后有可能想保存游戏记录便于以后分析此时就需要“排行榜”功能;有些玩家在玩游戏时喜欢听音乐,这时候就需要在下棋时可以播放背景音乐的功能;最基本的通过输入坐标来实现落子的操作方式很繁琐而且很不方便,这时候就可以将落子机制改为更直观的光标移动模式。 二.设计思路 1.玩家对战功能:在玩家对战功能中,玩家可以通过按方向键来移动光标、按空格来实现落子,最终在横或竖或斜方向上达成五个相同颜色的棋子来获得胜利。 基本思路: (1)使用二维数组保存棋局。 (2)由于要使用光标,所以使用输出缓冲器。 (3)打印棋盘。 主要使用Print()函数来算出棋盘并将缓冲器内容输出。

其余为其中调用的辅助函数。chessPrint()是打印交点坐标的字符的函数;getCurse()是打印光标的函数;write()函数是用来向缓冲器里面写入字符串的函数;ln()函数是负责将缓冲器写 入位置提行的函数;Display()函数是将缓冲器中内容输出到屏幕的函数。 (4)下子,在后文有详细介绍。 (5)胜负平判断 调用Check()函数进行四个方向的检查,检查是否有五子连珠。

(完整版)五子棋人工智能课题毕业论文

人工智能专家系统论 文 题目五子棋AI算法和网络通信的研究 学生姓名陈维梅 学号 系别商务学院 年级2009 专业计算机科学与技术 指导教师 职称讲师 完成日期

五子棋AI算法和网络通信的研究 摘要: 本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现两种不同对战模式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机对奕中AI算法研究方面。 游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但要通过对方的同意。同时还可以实现在线聊天。AI的不同等级是以不同的搜索深度确定的。本系统以深度为2,3,4分别为初级,中级,高级。网络对战中则使用Socket实现点对点通信。 关键字:五子棋、博奕AI算法、网络通信 Research the AIof Renju and the Communication Summary: This system will use Renju as research objects, passing to design a Renju game that can provide two kinds of dissimilarities to the play mode. to involve to of the related technique carry on the study of the first step, play more attention in the AI calculate way research aspect. It provide two kinds of choice modes in the game:Person's machine to the war and the everyone to war.The player passes to choose the different AI grade and computer in person's machine the rightness the war

毕业论文人工智能技术在计算机辅助教学中的应用与实现

目录 摘要 (2) 关键词 (2) ABSTRACT (2) KEY WORDS (2) 前言 (2) 1 计算机辅助教学系统及其现状 (3) 1.1计算机辅助教学系统 (3) 1.2计算机辅助教学的现状 (3) 2 智能化计算机辅助教学系统(ICAI) (4) 3 结束语 (7) 参考文献 (7)

人工智能技术在计算机辅助教学中的应用与实现 学生姓名:学号: 计算机科学系计算机科学与技术专业 指导教师:职称:教授 摘要:介绍了计算机辅助教学系统及其现状,分析了现代教育技术与传统教育模式的各自特点,探讨了ICAI的实现原理及利用ICAI对教学的改进方案,并对智能计算机辅助教学系统进行了详细讨论,最后说明了将计算机技术、人工智能技术与网络技术应用于教学过程的必然性、必要性和有效性。 关键词:计算机辅助教学系统;人工智能;专家系统;推理机 Abstract:Introduced the computer aided teaching system and the present situation, have analyzed the modern education technology and the traditional education pattern respective characteristic, has discussed the ICAI realization principle and uses ICAI to the teaching improvement program, and has carried on the detailed discussion to the intelligence computer aided teaching system, finally explained the computer technology, the artificial intelligence technology and the networking applies in the teaching process inevitability, the necessity and the validity. Key Words:Computer aided teaching system; Artificial intelligence; Expert system; Inducing equipment 前言 随着现代科技的飞速发展,多媒体计算机在教育领域得到了广泛应用,并对教育、教学过程产生着深刻影响。为了使教学改革能与之相适应,需要引入先进的教学手段,而使用计算机辅助教学系统(Computer Aided Instruction, CAI)可以提供理想的教学环境,容易激发学习者的学习积极性和主动性,从而显著提高教学效果。多媒体技术的日益发展以及与其它领先技术的结合,必然促进CAI的进一步发展。 人工智能(Artificial Intelligence, AI)是20世纪50年代中期兴起的一门新兴边缘科学,它既是计算机科学的一个分支,又是计算机科学、控制论、信息论、语言学、神经生理学、心理学、数学、哲学等多种学科相互渗透而发展起来的综合性学科。人工智能又称为智能模拟,是用计算机系统模仿人类的感知、思维、推理等思维活动。它研究和应用的领域包括模式识别、自然语言理解与生成、专家系统、自动程序设计、定理证明、联想与思维的机理、数据智能检索等。例如,用计算机模拟人脑的部分功能进行学习、推理、联想和决策;模拟医生给病人诊病的医疗诊断专家系统;机械手与机器人的研究和应用等。

五子棋java设计文档

安阳工学院 JA V A课程综合项目报告 项目题目:五子棋 专业班级:12网工专升本 学生姓名:阮营营 学生学号:201203060042 指导教师姓名:许研 2012年12月 安阳工学院计算机学院制

目录 一、系统目标 (2) 二、系统设计思路 (2) 三、系统详细设计 (2) 四、系统实现 (9) 五、系统设计总结 (12) 六、参考文献 (12)

一、系统目标 1、主要是介绍开发五子棋的整个过程,体现流程设计与类设计的基本方法,示范了数组的使用,使用了分支结构与循环结构的流程控制 2、通过课程设计把课堂上讲的内容融会贯通,学会设计程序、开发应软件、开发系统软件等各项工作。 3、通过实习掌握语言的语法结构,理解类和对象的概念,准确的使用各种数据类型,对面向对象中的继承和多态的概念要理解、会使用,在程序中提高代码的重用性,使设计的程序结构清晰、易于维护。 二、系统设计思路 1、获取棋盘设计一个11╳11围棋棋盘,由两玩家交替进行对战,并可以实现以下功能。五子棋的规则为: 2、下棋方法两人分别执黑白两色棋子。轮流在棋盘上选择一个无子的交叉点落子,无子的交叉点又被称为空点。 3、输赢判断每次下完一颗棋子,就通过程序从横、竖、斜各个方向扫描棋盘,如果在某个方向中,有同种颜色的棋子达到五连子,则此颜色的玩家为赢。如果没有相同颜色的棋子达到五连子,则继续游戏。 三、系统详细设计 3.1程序流程图

3.2创建棋盘类,绘制棋盘的样式 main方法创建了ChessFrame类的一个实例对象,并启动屏幕显示显示该实例对象。 public static void main(String argc[]) { myframe f = new myframe(); } 构造五子棋的主窗体: class myframe extends Frame implements WindowListener { mypanel panel; myframe() { setLayout(null); panel = new mypanel(); add(panel); panel.setBounds(0, 23, 360, 360);

五子棋游戏的设计与实现毕业设计论文

毕业论文(设计)题目五子棋游戏的设计与实现

毕业设计(论文)原创性声明和使用授权说明 原创性声明 本人郑重承诺:所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。 作者签名:日期: 指导教师签名:日期: 使用授权说明 本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。 作者签名:日期:

学位论文原创性声明 本人郑重声明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律后果由本人承担。 作者签名:日期:年月日 学位论文版权使用授权书 本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。 涉密论文按学校规定处理。 作者签名:日期:年月日 导师签名:日期:年月日

(完整版)五子棋本科毕业设计

第一章绪论 1.1开发背景: 游戏软件是当今世界发展最迅速,最有影响力,最有潜力与活力的领域之一?游戏软件深受广大青年人喜爱,而且在发达国家中老年人也有大部分喜欢游戏的,因此游戏软件在很大程度上给予绝大部分人精神上的娱乐?第二次世界大战以后,电子计算机技术得到了突飞猛进的发展?先是由晶体管代替了笨重的真空管,后来出现了集成电路和大规模集成电路,使电子子计算机一代一代实现更新,同时软件技术也发展迅速?在美国,集中了许多计算机软件的设计人才,他们工作之余,时常喜爱编一种能与人斗智的“游戏”,以此来锻炼编程的能力?这种“游戏”花样繁多,但其特点都是利用计算机软件事先设计好的“分析”?“判断”能力反过来与人较量?由于不断修改更新,使计算机的“智力”水平与人难分高低?到了90年代,游戏软件已经为世界各国的人使用,BLACKISLAND和Blizzard.这两个强大的游戏制作组起到了巨大的带动作用,还有中国的洛河工作室在国内也起到了巨大作用,他们让很多很多人喜欢上了游戏软件,打开了这个市场。如今游戏软件产业已经受到了广泛的关注,它年轻有潜力而且吸引人,让人们日益丰富的生活需求得以满足。 五子棋游戏更是吸引着不同年龄段的人群,无论男女老少都可以玩,都喜欢玩,而当前微型计算机已经是在广大人群中流行着,用电脑来下五子棋更是一种时尚。五子棋相传起源于四千多年前的尧帝时期,比围棋的历史还要悠久,可能早在“尧造围棋”之前,民间就已有五子棋游戏。有关早期五子棋的文史资料与围棋有相似之处,因为古代五子棋的棋具与围棋是完全相同的。在上古的神话传说中有“女娲造人,伏羲做棋”一说,《增山海经》中记载:“休舆之山有石焉,名曰帝台之棋,五色而文状鹑卵。”李

基于Java的“网络五子棋”游戏的设计和实现(含源文件)

基于Java的“网络五子棋”游戏的设计和实现——网络版客户端 学生:xxx 指导教师:xx 内容摘要:目前,随着计算机网络的发展,以计算机技术和网络技术为核心的现代网络技术已经在现实生活和生产中得到了广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式,也为多数人所喜好。 本设计收集了关于JAVA基础的书籍,着重收录了关于SOCKET编程的内容,找到了五子棋概述和规则的资料,查阅了网络通信技术的相关论文,同时也参考了很多关于五子棋实现的程序资料以及关于JAVA开发工具的介绍的文档。在期间,我学习了多线程技术、双缓冲技术、数据传输技术、SOCKET编程技术,研究了网络通信原理、JAVA编写原理等一系列的原理。开发了网络五子棋网络通信代码,实现了网络聊天、数据传输、网络通信、界面组织如:棋盘、建立服务器、连接到服务器、系统设置、我要参赛等功能。通过对以上技术的学习和研究,利用SOCKET编程,能服务器与客户端之间的连接,利用多线程技术完成了服务器端与客户端之间的数据传输、网络通信,使得两个客户端能够同步的进行处理。在加载图片以及绘制棋盘方面,采用双缓冲技术消除屏幕的闪烁现象。达到了预期的效果。 关键词: 多线程 SOCKET 客户端网络通信

Design and realization of the web gobang game based on java——client module Abstract: At present, with the development of computer network, computer technology and network technology as the core of modern network technology has in real life and production has been widely used. Recreational type of network games consists of interesting, entertaining, interactivity and beneficial intelligence. It has become a way of entertainment to many people, and has been loved. Much of the information collected in this design,such as many books based on the JAVA, focus on the contents of SOCKET programming, Find information about the web gobang game, Access to the relevant papers, Reference to a lot of program information on achieving The web gobang game and introduction to JAVA development tools on the document. In the period, I learned a series of principles,For example Multi-threading technology, double-buffering technology, data transmission technology, SOCKET programming technique to study the principle of network communication, JAVA writing principles. Internet chat, data transmission, network communications, interfaces structure, such as: the board, establishing server, connecting server, option had been realized. I know these technologies through studying and researching, I using of SOCKET programming, server and client can be connecting, i using of multi-threading technology to complete the server side and client-side data transmission and the client can synchronize the two processtion. Pictures and drawing board loading, I using of double-buffering to eliminate screen flicker. Keywords:multi-threaded socket client network communication

计算机毕业论文题目大全

. 计算机毕业设计题目大全 在职员工,代做毕业设计项目 论文题目开发环境数据库基于https://www.sodocs.net/doc/473818286.html,实现的实验室网络管理系统无无 FTP客户端的设计与实现Eclipse Ipv6环境下FTP系统的设计与实现Eclipse J2EE 公交查询系统的设计与实现Eclipse J2EE 音像店租赁管理系统的设计与实现Eclipse J2ME手机游戏的开发-Beckham Goal Eclipse J2ME五子棋手机网络对战游戏的设计与实现Eclipse SQL Server JAVA ME无线网络移动端的俄罗斯方块游戏的实现Eclipse SQL Server JAVA SMART系统-系统框架设计与开发Eclipse SQL Server JAVA 信息查询发布系统 WML信息查询设计Eclipse SQL Server JAVA 班主任管理系统Eclipse SQL Server JAVA 办公自动化系统Eclipse SQL Server 基于JAVA聊天系统的设计与实现Eclipse 无 基于Struts和MySQL的BBS论坛Eclipse MySQL JAVA 本地监听与远程端口扫描Eclipse SQL Server JAVA 仓库管理系统源代码Eclipse SQL Server JAVA 打飞机游戏设计Eclipse SQL Server JAVA 电子通讯录(带系统托盘)Eclipse SQL Server JAVA 多线程与线程安全实践-基于Http协议的断点续传Eclipse SQL Server JAVA 个人理财Eclipse SQL Server JAVA 个人理财SQL Eclipse SQL Server JAVA 个人理财完整Eclipse SQL Server JAVA 机主留言在“全时通”系统上的实现Eclipse SQL Server Eclipse SQL Server JAVA 基于Apriori算法的关联规则挖掘系统的设计与实 现 JAVA 基于Cache的实验室资源管理系统的设计Eclipse SQL Server JAVA 基于J2EE酒店管理系统设计与实现Eclipse SQL Server

人工智能学年论文——对人工神经网络学习的探讨

人工智能课程论文 学院计算机与信息技术 专业计算机科学与技术 年级2010级计科一班 姓名 课题对人工神经网络学习的探讨

对人工神经网络学习的探讨 摘要: 随着智能技术研究和应用的不断深入,人工智能越来越受到社会的关注。在中国科协2008年举办的"十项引领未来的科学技术"网络评选中,"人工智能技术"名列第四。人工智能作为一项引领未来的科学技术,正在以其无限的潜力,影响着未来科学技术的发展,改变着人类的生产生活方式。 人工智能就是要用机器模拟、延伸和扩展人的智能。智能就像人类生命体的精髓一样,人工智能则是人造智能系统的精髓。今天,从智能理论到智能应用,从智能产品到智能产业,从个体智能到群体智能,从智能家居到智能社会,人工智能已无处不在,其新理论、新方法、新技术、新系统、新应用如雨后春笋般不断涌现。创新智能技术,深化智能应用是人工智能发展的根本。 人工神经网络是一种新的数学建模方式,它具有通过学习逼近任意非线性映射的能力,本文主要提出了一种基于动态BP神经网络的猜测方法。 关键字:人工智能;动态系统;反向传播;人工神经网络;BP神经网络 一、简介 作为动态系统辨识、建模和控制的一种新的、令人感兴趣的工具,人工神经网络(ANN )提供了一种普遍而且实用的方法从样例中学习值为实数、离散值或向量的函数。像反向传播(BACKPROPAGATION)这样的算法,使用梯度下降下来调节网络参数以最佳拟合由输入—输出对组成的训练集合。ANN学习对于训练数据中的错误健壮性很好,且已被成功的应用到很多领域,例如视觉场景分析、语音识别以及机器人控制等。 对人工神经网络的研究可以追溯到计算机科学的早期。然而,直到20世纪60年代晚期,人们才开始清楚单层的感知器网络的表现能力很有限,而且找不到训练多层网络的有效方法。在20世纪80年代中期ANN的研究经历了一次复兴,主要是因为训练多层网络的反向传播算法的发明。自从20世纪80年代,反向传播算法就成为应用最广泛的学习方法,而且人们也积极探索出了很多其他的ANN 方法。 二、人工神经网络学习的国内外研究状况

Java五子棋毕业设计论文

摘要 人工智能是一门正在迅速发展的新兴的,综合性很强的交叉科学。它与生物工程、空间技术一起被并列为二十一世界三大尖端技术。它的中心任务是研究如何使计算机去做那些过去只能靠人的智力才能做的工作。目前各发达国家都把人工智能作为重点项目,列入本国的高科技发展计划当中,投入巨大的人力和物力。 计算机人机对弈也是其中之一。作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。 五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,可以让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是我国发明的,研究它可以让更多的外国人了解五子棋,这有助于我国优秀文化的推广。 关键词:人工智能,计算人机对弈,五子棋,算法

目录 摘要 (Ⅰ) 目录 (Ⅲ) 第一章绪论 (1) 第二章需求分析 (2) 2.1 业务需求 (2) 2.2 性能需求 (2) 2.3 系统平台需求 (2) 第三章五子棋相关基础 (4) 3.1 五子棋解释 (4) 3.2 五子棋的基本规则 (4) 3.3 五子棋的常用术语 (5) 第四章开发工具、环境及其技术 (7) 4.1 Java简介 (7) 4.2 Java编程环境 (9) 第五章程序设计思路与实现 (10) 5.1 程序设计思路 (10) 5.2 程序设计 (13) 结论 (33) 参考文献.................................................................................................................... 致谢............................................................................................................................ 附录............................................................................................................................

【强烈推荐】五子棋人人对战_c++五子棋毕业论文报告

VC课程设计报告 学院:理学院 专业班级:信息与计算科学班 学生姓名:***** 学生学号:12345 指导教师:### 提交时间:2013年07 月02 日

成绩: 设计题目:五子棋人人对战

目录 第1章引言 .................................................................................................................................................第2章任务概述 ......................................................................................................................................... 2.1问题概述 ......................................................................................................................................... 2.1.1问题重述 .............................................................................................................................. 2.1.2设计目的 .............................................................................................................................. 2.2需求分析 ......................................................................................................................................... 2.2.1基本要求 .............................................................................................................................. 2.2.2游戏功能介绍 ......................................................................................................................第3章概要设计 ......................................................................................................................................... 3.1功能设计 ......................................................................................................................................... 3.2程序结构 ......................................................................................................................................... 3.3基本流程 .........................................................................................................................................第4章程序实现 ......................................................................................................................................... 4.1主要变量及函数的说明 ................................................................................................................. 4.1.1主要变量 .............................................................................................................................. 4.1.2主要函数 .............................................................................................................................. 4.2主要功能的实现 ............................................................................................................................. 4.2.1类声明 .................................................................................................................................. 4.2.2棋盘初始化 .......................................................................................................................... 4.2.3开始下棋 .............................................................................................................................. 4.2.4判断下棋合法 ...................................................................................................................... 4.2.4判断输赢 ..............................................................................................................................

JAVA五子棋程序设计课程设计

JAVA五子棋程序设计课程设计

计算机与信息工程系 《JAVA程序实训》设计 五子棋游戏 摘要: 计算机人机对弈作为人智能研究的一个重要分支,计算机博弈是检验人工水平的一个重要方面。它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。 五子棋人机对弈是计算机博弈中的一种。研究其计算机算法,能够让我们看到人工智能的稚形,也有助于我们人脑的开发。五子棋是中国创造的,研究它能够让更多的外国人了解五子棋,这有助于中国优秀文化的推广。 关键词:人工智能,计算人机对弈,五子棋,算法 , java 1.课程设计介绍 1.1课程设计目的 经过此次课程设计,巩固所学Java语言基本知识,增进Java语言编辑基本功,掌握JDK、NetBeans等开发工具的运用,拓宽常见类库的应用。使我们经过该教学环节与手段,把所学课程及相关知识加以融会贯通,全面掌握Java语言的编程思想及面向对象程序设计的方法,为今后从事实际工作打下坚实的基础。本次课程设计每人一组,自行设计并实现共功能模块。

1.2课程设计任务 实现五子棋游戏,要求:使用图形用户界面,实现人人对战,人机对战。能够判断输赢,有“开始”按钮,当出现棋盘后,按此按钮进入对战状态。当有胜利者(垂直、水平、对角线连续5子),显示对话框,提示谁(黑还是白)胜利了。若当棋盘满了还无胜利者,显示平局对话框。有“悔棋”按钮,玩家能够点击悔棋,回到上一步。 1.3课程设计论文编写要求 (1)要按照书稿的规格打印与写课程设计论文; (2)论文包括目录、设计思路、具体实现、运行调试与分析讨论、设计体会与小结、参考文献、附录(源代码)等; (3)课程设计论文装订按学校的统一要求完成。 2.系统设计 2.1需求分析 2.1.1性能需求 一款小游戏的确立是建立在各种各样的需求上面的,这种需求往往来自于玩家的实际需求,其中玩家的实际需求最为重要.面对游戏拥有不同知识和理解层面的玩家,游戏制作人对玩家需求的理解程度,在很大程度上决定了此类游戏开发的成败.因此如何更好地的了解,分析,明确玩家需求,而且能够准确,清晰以文档的形式表示给游戏制作人,保证开发过程按照满足玩家需求为目的正确开发方向进行,是每游戏游戏制作人需要面正确问题。 作为五子棋的设计需要考虑到的最基本的需求莫过于人机对战与人人对战功能的实现,当然还有下棋过程中的下棋悔棋功能以及判断游戏的胜负等方面的要求。当然最好是要考虑到界面的友好性,作为一个娱乐软件,还应

(完整版)五子棋游戏的设计与实现毕业设计

毕业论文(设 计) 题目五子棋游戏的设计与实 现 所在院(系)数学与计算机科学学 院

专业班级信息与计算科学1101班 指导教师拓守恒 完成地点陕西理工学院 2015年5 月18日

五子棋游戏的设计与实现 作者:王勇 (陕理工学院数学与计算机科学学院信息与计算科学专业1101班,陕西汉中 723000) 指导教师:拓守恒 [摘要]五子棋是起源于我国古代的黑白棋种之一,是一种简单的娱乐性较强的大众游戏,深受广大玩家的喜爱,但同时作为比赛,五子棋游戏还有着深奥的技巧。 本系统的实现采用了C语言的模块化的程序设计方式,用Visual C++ 6.0软件来实现程序的编译运行。实现黑白两方分别落子,通过棋盘上方的棋盘动态信息提示,轮流落子,本系统中游戏的每一个功能在程序中都是一个相对独立的模块,比如,棋盘模块,棋子模块,选择游戏模式模块,悔棋模块等等在程序中都是独立的,但它们之间通过逻辑关系的链接又构成了一个可以使游戏正常运行的程序。 为实现游戏的双人对战模式和人机对战模式,并使得游戏尽量的简单化,本系统需要达成以下目标:设计一个简洁的游戏初始界面;制定合法规则,使游戏能公正的进行,并且可以断定胜;支持人机对战模式,可以是电脑通过人工智能和合法规则选出最优落子位置;可以悔棋,在玩家落子落错位置时,可按下悔棋键进行悔棋。 [关键词]五子棋,游戏设计,C语言,双人对战,人机对战,人工智能

Designer and implementation of gobang game Author: wangyong (Grade11,Class 1, Major in Information and computing science, Mathematics and computer science Dept. Tutor: Tuo shouheng Abstract:Gobang is one of the black and white kind of originated in ancient China, is a simple and entertaining stronger mass games, loved by the majority of players, but at the same time as the game, gobang game with profound skills. The implementation of this system method, using Visual C + + 6.0 software to realize the program compiler running. Implementation of black and white two parties move later, respectively, by the board at the top of the dynamic message board, take turns to move later, this game in the system each function in the program is a relatively independent modules, such as, the board module, pawn module, select game mode module, back module and so on in the program are independent, but the link through the logical relationship between them and form a can make the normal operation of the game program. In order to realize the double mode and man-machine game mode, and make the game as far as possible the simplification, the system needs to achieve the following goals: design a simple game of initial interface;the legal rules, can make the game fair, and you can call;support the man-machine

智能机器人设计毕业论文

目录 第1章、绪论 (2) 1、1智能机器人技术发展的重要意义 (2) 1、2国内外机器人的发展史 (2) 1、2、1 国外机器人的发展历史 (2) 1、2、2 国内机器人的发展历史 (3) 1、3服务机器人的特点关键技术 (3) 1、4本论文的主要研究内容 (4) 1、5本章小结 (4) 第2章、物体检测与报警机器人的总体设计 (5) 2、1概述 (5) 2、2主要组成 (5) 2、2、1 头部旋转机构 (5) 2、2、2 主体部 (6) 2、2、3 电机 (6) 2、3主要技术参数 (7) 2、4、电机的选型 (7) 2、4、1 驱动机构的组成、 (7) 2、4、2 步进电机的选型比较 (8) 2、4、3 步进电机的选型计算 (9) 2、5蜗轮蜗杆传动的选型设计 (11) 2、6电机的效核.................................... 错误!未定义书签。 2、7轴的较核及联件的选型.......................... 错误!未定义书签。 2、7、1、蜗杆轴的较核、......................... 错误!未定义书签。 2、7、2、蜗杆轴上轴承的选型..................... 错误!未定义书签。 2、7、 3、蜗轮轴的较核、......................... 错误!未定义书签。 2、7、4、蜗轮轴上轴承的选型..................... 错误!未定义书签。 2、7、5、键的较核............................... 错误!未定义书签。 2、7、6、联轴器的选型........................... 错误!未定义书签。 2、8本章小结...................................... 错误!未定义书签。第3章、驱动机构及其控制方式........................ 错误!未定义书签。 3、1、概述........................................ 错误!未定义书签。 3、2步进电机及其控制系统.......................... 错误!未定义书签。 3、2、1 步进电机的工作特性、..................... 错误!未定义书签。 3、2、2 步进电机的开环控制系统................... 错误!未定义书签。 3、3本章小结...................................... 错误!未定义书签。结束语............................................... 错误!未定义书签。

相关主题