基于VC的五子棋游戏的设计与实现(附答辩记录)
基于VC的五子棋游戏的设计与实现(附答辩记录)(包含选题审批表,任务书,开题报告,中期检查报告,毕业论文12300字,程序)
摘 要:以计算机技术和网络技术为核心的现代网络技术已在现实生活和生产中得以广泛的使用,休闲类网络游戏集趣味性,娱乐性,互动性和益智性于一体,已经成为多数人群的休闲方式。本五子棋游戏用C++实现,本系统将利用五子棋游戏作为研究对象,通过设计出一个能够实现两种不同对战模式的五子棋游戏。并对所涉及到的相关技术进行初步的探讨,将重点放在人机对奕中AI算法研究方面。游戏中提供两种选择模式:人机对战和人人对战。在人机对战中玩家通过选择不同的AI等级和电脑一决高下。在人人对战中双方可以进行下棋,悔棋但要通过对方的同意。
关键词:MATLAB;时间序列;异常检测;数据分析
The Design and Implementation of Gobang game Based on VC
Abstract: Be extensive use of computer and network technology as the core of modern network technology in real life and production, casual game set interesting, entertaining, interactive and educational one, has become the leisure of the majority of the crowd manner. The proposed games in C++ implementation, the system will use backgammon game as the object of study, through design to achieve the games in two different Versus mode. And technology related to the preliminary discussion will focus on human-computer Chess AI algorithms research. Two selection modes: Battle of man-machine and everyone to play against in the game. In human-computer play against players by selecting a different level of AI and computer a showdown. Everyone Battle chess, undo, but through each other's consent. [来源:http://www.doc163.com]
Key words: MATLAB; time series; anomaly detection; data analysis
五子棋介绍
五子棋是一种两人对弈的纯策略型棋类游戏,现代五子棋日文称之为“连珠”,英译为“Renju”,英文称之为“Gobang”或“FIR” [1]。
应用C语言编写程序可以再计算机上实现二人对弈五子棋功能。二人对弈五子棋由图像生成、光标移动与落子、判断胜负和系统帮助等子程序构成;
五子棋游戏容易上手,老少皆宜,而且趣味横生,引人入胜;它不仅能使人娱乐,也能够开发人的智力,而且富含哲理,有助于修身养性。
五子棋既有现代休闲的明显特征“短、平、快”,又有古典哲学的高深学问“阴阳易理”;它既有简单易学的特性,为人民群众所喜闻乐见,又有深奥的技巧和高水平的国际性比赛[2];
本文主要讲的是用C语言开发语言编写的一个五子棋游戏,游戏程序实现人机对弈和人人对弈,自动智能计算最佳落子位置,实现对战双方顺利进行博弈。
研究方案(研究目的、内容、方法、预期成果、条件保障等)(宋体五号,行间距单倍行距)
研究目的:现如今,计算机硬件功能不断提高,系统软件不断完善,人工智能已广泛应用于各个相关领域,并发挥愈来愈大的作用。人工智能逐渐发展成为高端的技术派别通过五子棋的游戏算法的研究有助于理解程序结构,增强逻辑思维能力,在人工智能逐渐发展壮大的今天来说,动手实现这样一个复杂的人工智能五子棋游戏对以后的发展有很大的好处。
研究内容:人工智能算法分析、五子棋棋盘设计、五子棋棋子设计、人机对战胜负判断。
研究方法:用C++应用程序开发。先实现网络部分,实现基本的棋盘和棋子的类,添加判断胜负条件,电脑AI也在该基础上添加。电脑AI和胜负条件,胜负条件运算量有固定的模式。
预期成果:在人工智能的基础上实现了一个小型的五子棋游戏软件,其功能表现为人机对战,电脑表现出一定的智能,能判输赢,并能做出禁手等判别。
条件保障:首先必须对C语言有一定了解,并熟悉VC6.0的使用。研究了一些国内的五子棋算法,参考了一些游戏设计算法,详细比较各种算法的优缺点,而且参考了现代五子棋比赛的各种规则和技巧。
[来源:http://Doc163.com]
目 录
摘要 1
[来源:http://Doc163.com]
关键词 1
1 前言 2
1.1 五子棋介绍 2
1.2 开发背景 2
1.3 开发环境及运行环境 2
1.3.1 开发环境 2
1.3.2 运行环境 2
1.4 Visual C++6.0介绍 3
2 需求分析 3
2.1 问题定义 3
2.2 可行性研究 3
2.3 总体设计 5
3 软件构架 6
3.1 棋盘类 7
3.2 游戏模式类 7
4 棋盘类的设计 7
4.1 主要成员变量说明 7
4.1.1 网络连接标志 7
4.1.2 棋盘等待标志 7
4.1.3 网络套接字 8
4.1.4 棋盘数据 8
4.1.5 游戏模式指针 8
4.2 主要成员函数说明 8
4.2.1 套接字的回调处理 8
4.2.2 清空棋盘 8
4.2.3 绘制棋子 8
4.2.4 左键消息 8
4.2.5 绘制棋盘 9
4.2.6 对方落子完毕 9
4.2.7 设置游戏模式 9
4.2.8 胜负的判断 9
5 游戏模式类的设计 9
5.1 主要成员变量说明 10
5.1.1 棋盘指针 10
5.1.2 落子步骤 10
5.2 主要成员函数说明 11
5.2.1 悔棋操作 11
5.2.2 初始化操作 11
5.2.3 接收来自对方的消息 11
5.2.4 发送落子消息 11
5.2.5 胜利后的处理 11
6 消息机制的设计 11
6.1 消息机制的架构 12
6.2 各种消息说明 12
6.2.1 落子消息 13 [版权所有:http://DOC163.com]
6.2.2 悔棋消息 13
6.2.3 同意悔棋消息 13
6.2.4 拒绝悔棋消息 13
6.2.5 和棋消息 14
6.2.6 同意和棋消息 14
6.2.7 拒绝和棋消息 14
6.2.8 认输消息 15
6.2.9 聊天消息 15
6.2.10 对方信息消息 15
6.2.11 再次开局消息 15
6.2.12 同意再次开局消息 16
7 主要算法 16
7.1 判断胜负 16
7.2 人机对弈算法 19
7.2.1 获胜组合 19
7.2.2 落子后处理 19
7.2.3 查找棋盘空位 20
7.2.4 落子打分 21
7.2.5 防守策略 22
7.2.6 选取最佳落子 24
8 结束语 24
参考文献 25
致谢 26