windows平台的网络五子棋对战游戏的开发与实现(源码)

五子棋是一款起源于中国的棋类游戏,是这个世界上历史最悠久的棋类游戏之一。本课题主要以局域网对战功能的实现为主要研究领域,附带完成一个简单的人机对战功能,主要涉及Socket网络编程以及博弈树算法的研究以及实现。本游戏分别有两种游戏模式局域网双人对战模式与人机对战模式。本次毕业设计所开发的五子棋对战游戏应用于局域网上,采用客户端/服务器结构,简称为C/S结构,一般采用C/S结构的程序都会具有良好的交互性。这个五子棋游戏运用网络套接字Socket 通过传输层提供相应的服务。运用C++语言来完成这个游戏。这个五子棋对战游戏能够实现游戏双方在局域网中的游戏对战,并且拥有和棋、认输这两个功能,而且能在游戏的时候互相发送聊天信息,每一个玩家的落子操作,都能够同步显示在另一个玩家的游戏界面上。关键词 C++,C/S模式, Socket网络编程,五子棋游戏
目 录
1 绪论 1
1.1 引言 1
1.2 五子棋介绍 1
1.3 本课题研究内容 1
1.4 本论文组织结构 1
2 系统开发环境与主要技术介绍 2
2.1 开发与运行环境 2
2.2 c++语言 2
2.3 开发工具vc++6.0 3
2.4 MFC微软基础类库 3
2.5 网络Socket编程 3
2.6 博弈树算法 4
3 需求分析 5
3.1 需求概述 5
3.2 可行性分析 5
4 概要设计 6
4.1 五子棋特点与规则 6
4.2 选择游戏模式 6
4.2 双人对战模式 7
4.3 人机对战模式 7
4.4 棋盘类 7
5 详细设计 7
5.1 绘制棋盘 7
5.2 绘制棋子 7
5.3 判断输赢 8
5.4 消息机制 11
5.5 局域网对战 16
5.6 人机对战 18
5.7 清空棋盘 20
6 系统测试 21 *好棒文|www.hbsrm.com +Q: #351916072# 

6.1 测试准则 21
6.2 可用性测试 21
6.3 性能测试 22
6.4 测试结果 26
结论 27
致谢 28
参考文献 29
1 绪论
1.1 引言
棋牌文化在中国已有几百年的历史,大街小巷、饭前茶后,不亦乐乎的棋牌游戏切磋对弈。对于众多的棋牌游戏,玩家不会有年龄方面的限制,老少皆宜。随着时代的变迁,棋牌游戏的新玩法也层出不穷,而这些众多的棋牌类游戏大大丰富了人们的休闲娱乐生活。
随着时代的变迁与计算机技术的迅速发展,棋牌文化并没有遭到时代变迁的残忍淘汰,而是被搬上了计算机当中,进而推动棋牌文化成为更加全民化的一项娱乐游戏,任何年龄段的人对于这种棋牌类的游戏都可以轻松的上手。
现在游戏产业已经成为一个新型的盈利产业,与此同时由于棋牌流传广泛,这使它成为在中国网络游戏市场中最赚钱的网络游戏之一。
1.2 五子棋介绍
五子棋作为一款起源于中国的传统棋类游戏,是一种进行对弈的策略型棋类游戏。它主要流行于中国与汉字文化圈的国家以及欧美的一些地区,是历史悠久的棋类游戏之一。
五子棋的游戏规则一般是由对战双方分别使用黑白双色的不同棋子,在棋盘直线与横线的交叉点上进行落子下棋。输赢的判断规则是,进行对战的双方,谁先形成5个同色棋子连续构成一条线的就是胜利者。
五子棋这款游戏十分容易上手,并且双方在游戏对战的同时还能感到趣味横生。它不仅有助于锻炼游戏双方的思维能力,同时还富含深奥的哲理,对于修身养性有很大的帮助。如今的五子棋游戏已经在很多游戏平台有所展现。
1.3 本课题研究内容
本课题主要以网络对战功能的实现为主要研究领域,附带完成一个简单的人机对战功能,主要涉及网络编程以及博弈树算法的研究以及实现。本游戏分别有两种游戏模式:双人对战模式与人机对战模式。
1.4 本论文组织结构
第一章:本章节是全篇的绪论,总体介绍这次五子棋游戏课题研究的基本背景情况,简单介绍了五子棋游戏,对课题研究的内容作了一个基本的概要阐述,并且介绍列出论文基本章节组织结构。
第二章:本章节主要介绍系统的开发环境与开发的工具与语言。论述用来实现本网络五子棋对战系的具体编程语言和编程工具,并介绍需要用的重点技术内容网络套接字编程技术与博弈树算法。
第三章:本章节是需求分析,与可行性的分析。重点讨论游戏需要实现的基本功能以及能否去实现。
第四章:第四章是概要设计,主要阐述五子棋游戏的特点,以及本五子棋游戏项目所需要达到的两个游戏模式人机对战与双人网络对战的基本目标。
第五章:第五章是详细设计。重点阐述游戏项目的核心内容及其实现方法,以及相关的截图信息。
第六章:第六章是系统测试。重点在于测试所做的这个五子棋游戏在具体应用时的性能如何。
2 系统开发环境和技术
2.1 开发环境
编程的语言:C++
运行的操作系统:Windows7
开发工具:Visual C++ 6.0
2.2 c++语言
C ++是一种面向对象的语言,它被设计为静态类型,与C语言一样,是一种高效多用途编程语言。旨在为多种编程风格(编程,数据抽象,面向对象编程,通用编程)提供直接和广泛的支持[1]。这种设计为以C ++编程的程序员提供了更多选择,即使这也可能会导致程序员错误[2]。C ++尽可能与C语言相兼容,以提供从C到C ++的顺利过渡。避免平台定义或非通用功能。不使用会导致额外开销的功能。这个目的是为了消除对复杂编程环境的需求[3]。
C++作为一门面向对象的语言,它具有封装,继承,多态这三个基本特征[4]。
封装:就是把客观事物封装成抽象的“类”,并且这个“类”只让可信的“类”或对象使用自己的数据[5]。即对不可信的进行信息隐藏该公开的内容就公开化,该私有的就隐藏掉,主要是由public,private实现。其作用是便于分工和分模块,防止不必要的扩展。
继承:就是可以让某个类型的对象获得另一个类型的对象的属性的方法。这相当于是一种传承,它可以把父类型中的数据传承到子类型当中,子类除了传承了父类的数据之外,还可以对父类型进行相应的扩展。继承支持按级分类的概念。子类能够使用现有父类的所有功能,可以对这些功能进行扩展,并且不需要修改原来的父类。通过继承创建的新类称为“子类”或者“派生类”,而被继承的类称之为“基类”、“父类”。继承的过程,就是从一般到特殊的过程。

版权保护: 本文由 hbsrm.com编辑,转载请保留链接: www.hbsrm.com/jsj/jsjkxyjs/1142.html

好棒文