计算机学院本科毕业论文1

更新时间:2023-12-07 07:34:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

学校代码 10126 学号 00813033 分 类 号 TP311.1 密级

本科毕业论文(设计)

五子棋

学院、系 计算机学院 专业名称 计算机科学与技术 年 级 学生姓名 指导教师

2012年 5 月 14 日

abstract

As a puzzle game,gobang can develop the thinking ability and intelligence of players,which is interesting and absorbing。The version of this software,includes two kinds of patterns,standalone mode and network mode。The former uses a game-tree search algorithm,which can only predict a follow-up move after calculation。Moreover, the network mode needs to be brought online, in other words, first need a player in a computer start game as the server-side, then the other enter the servers ip to connect and join game in another computer as the client. Both modes support undo functions,and the network mode has draw and giving-up function。While network gaming one player send the coordinate message of pieces received by another,which calls functions to deal with message。Beyond that,the game has also background music and chat function。

1

内蒙古大学本科毕业论文(设计)

五子棋

摘要 五子棋是一种益智游戏,它能增强玩家的思维能力,提高智力,而且趣

味横生,引人入胜。该版本的五子棋设置了两类模式,单机模式和网络模式。游戏中根据网络连接标志来判断当前是网络对战还是人机对战。人机对战模式使用的是简单的博弈树搜索算法,即只向前搜索一步,仅能预测到下一步会发生什么情况。网络对战模式中一方先建立游戏,作为游戏的服务器端,对方输入服务器IP后加入游戏,作为客户端。两种模式都有悔棋功能,网络对战还有认输、和棋请求的功能。发送五子棋消息主要发送落子坐标,对方接受到消息后会调用相应的函数处理接收的消息。该游戏还设置了声音背景,当玩家落子时会有落子的声音,当玩家胜了或输了都会有背景声音。另外该游戏还设置了聊天功能,战绩统计等基本游戏功能,以方便对弈双方聊天和查看战绩记录。

关键词 人机对战,网络对战,算法,消息

2

内蒙古大学本科毕业论文(设计)

目录

第一章 绪论.............................................................................................................................. 3

1.1 五子棋介绍...................................................................................................................... 3

1.2 开发背景 ......................................................................................................................... 4 1.3 开发环境及运行环境........................................................................................................ 5

1.3.1 开发环境................................................................................................................ 5 1.3.2 运行环境................................................................................................................ 5

第二章 逻辑架构与设计 ............................................................................................................ 6

2.1 棋盘类............................................................................................................................. 7

2.1.1 棋盘类主要成员变量说明 ....................................................................................... 7

2.1.2 棋盘类主要成员函数说明 ....................................................................................... 8 2.2 游戏模式类...................................................................................................................... 9 2.2.1 游戏模式类主要成员变量说明 .............................................................................. 10 2.2.2 游戏模式类主要成员函数说明 .............................................................................. 10

第三章 消息机制..................................................................................................................... 13

3.1消息机制的架构.............................................................................................................. 13

3.2各种消息说明 ................................................................................................................. 13

3.2.1落子消息——MSG_PUTSTEP ............................................................................... 13

3.2.2 悔棋消息——MSG_BACK.................................................................................... 13 3.2.3同意悔棋消息——MSG_AGREEBACK.................................................................. 14 3.2.4拒绝悔棋消息——MSG_REFUSEBACK ................................................................ 14 3.2.5和棋消息——MSG_DRAW.................................................................................... 14 3.2.6同意和棋消息——MSG_AGREEDRAW ................................................................. 14 3.2.7拒绝和棋消息——MSG_REFUSEDRAW................................................................ 14 3.2.8认输消息——MSG_GIVEUP ................................................................................. 15 3.2.9聊天消息——MSG_CHAT ..................................................................................... 15 3.2.10对方信息消息——MSG_INFORMATION ............................................................. 15

第四章 人机对战主要算法 .......................................................................................................... 16

4.1 落子时是否构成五子连珠的算法 .................................................................................... 16 4.1.1 判断水平方向是否构成五子连珠 ......................................................................... 16

4.1.2判断竖直方向是否构成五子连珠.......................................................................... 17 4.1.3判断左下方向是否构成五子连珠.......................................................................... 17 4.1.4判断右下方向是否构成五子连珠.......................................................................... 18 4.2 计算机落子时的算法[6] ................................................................................................... 19

4.2.1 计算落子时的所有获胜可能性 ............................................................................ 19 4.2.2 落子后计算得分 ................................................................................................. 19

4.2.3 查找棋盘上的空位置 .......................................................................................... 20 4.2.4 为每一个可以落子的位置打分 ............................................................................ 21

4.2.5 防守策略 ............................................................................................................ 21 4.2.6 选取最佳落子 ..................................................................................................... 21

总结 ........................................................................................................................................... 23

3

内蒙古大学本科毕业论文(设计)

第一章 绪论

1.1 五子棋介绍

五子棋是起源于中国古代的传统黑白棋种之一。它不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。五子棋最先发展于日本,流行于欧美。它既有现代休闲的明显特征,又有古典哲学的高深学问;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛。

传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为15×15,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5 个或5个以上同色棋子连成不间断的一排者为胜。

目前五子棋游戏有两种模式,一种是网络五子棋游戏,一种是单机五子棋游戏。

网络五子棋编程有两种实现方式:一种是基于C/S(Client/Server 即C/S)模式;另一种是基于B/S(Brower/Server 即B/S)模式。C/S程序具有很好的交互性,功能很强大,但是客户端必须安装客户端软件,限制了其应用; B/S模式的程序要求客户端必须装有浏览器,但是浏览器在安全性、交互性与功能方面有一些限制。目前网络五子棋游戏大部分是在C/S模式下实现的,其功能不断的完善和加强,而且五子棋的博弈算法研究达到了智能化的程度,并能实现了客户端和服务器端的多线程交互性。随着网络协议这一关键性问题得到了解决和完善使网络游戏的设计和实现成为可能。对于众多的基层网络协议,Winsock(Windows Socket 即Winsock) 是五子棋游戏网络连接的首选接口。Winsock是网络编程接口,而不是协议。Winsock提供一个大家都很熟悉的接口,为实现网络五子棋的功能得到了简化[1]。单机版的五子棋游戏省去了网络传输这一复杂的过程,但是需要有力的算法支撑,算法的性能决定程序的性能,也能决定游戏的难易程度。五子棋是一个比较特殊的游戏,跟象棋类的游戏很不一样,它只需要判断有五子连珠就能决定胜负,因此在采用博弈树搜索模式时,只需要向前搜索一步,找出最优的位置,基本就能满足程序的需求。

本文来源:https://www.bwwdw.com/article/x97t.html

Top