现在很多游戏都是通过VC++来开发的,VC++支持面向过程的程序设计,也支持基于对象的程序设计,又支持面向对象的程序设计[10]。基于对象就是基于类,与面向过程的程序不同,基于对象的程序是以类和对象为基础的,程序的操作是围绕对象进行的[11]。在此基础上利用了继承机制和多态性,就成为面向对象的程序设计。VC++中对象的类型称为类,类代表了某一批对象的共性和特征,类是对象的抽象,而对象是类的具体实例[12]。在类体中是类的成员列表,列出类中的全部成员。它是一种广义的数据类型,除了数据部分以外,还包括了对这些数据操作的函数[13]。类是所有面向对象语言的共同特征,因此类是VC++中十分重要的概念,是实现面向对象程序设计的基础,是VC++的灵魂[14]。
在本课程设计中,以Visual C++ 6.0为编程环境。Visual C++中除包括C++编译器外,还包括所有的库、例子和为创建Windows应用程序所需要的文档。Visual C++ 6.0秉承Visual C++以前版本的优异特性,为用户提供了一套良好的可视化开发环境:主要包括文本编辑器、资源编辑器、工程创建工具、Debugger调试器等等。用户可以在集成开发环境中创建工程、打开工程、建立、打开和编辑文件、编译、链接、运行、调试应用程序[15]。
1.3 本文的主要工作及章节安排
本课题研究的是用VC++语言来开发中国象棋的游戏软件,主要的工作有以下几个方面:界面的设计和规则的设计,在设计显示界面中为了使游戏在显示器上能像现实游戏一样的显示,采用二维数组来表示棋盘上所有的点。在棋盘界面的设计上,用了画图函数根据具体的棋盘画出了棋盘的形状。在设计各类棋子行走的规则及其吃子的规则中,需要设计一个大型的函数来标明不同棋子的走法和吃子的规则,特别说明“蹩马腿”和“塞象眼”的情况。又写了利用了DoSmg()函数来实现鼠标的点击。联网设计是使两台计算机能够通过中介来进行通信,交换他们发出的信息,并能在本机判断分析。通信主要是两台计算机之间的通信,服务端是用来建立连接和处理各种请求的,关键要接收客户端的信息并判断。
论文的内容安排如下:在第二章中介绍了本文的主要内容和象棋的基本规则,在这一章中给出了软件的具体框架和要实现的总体功能。在第三章开始介绍了具体的操作,这一章是本论文的重点章节,其中给出了每一个棋子的行动规则流程图,还给出了胜负的判断方法,通过这一章的设计基本可以实现一个单机版的象棋软件。在第四章介绍了怎么使鼠标系统的加入,定义了一个函数使系统能够区分鼠标的移动和鼠标的点击,并且还要通过该函数来捕捉鼠标点击的位置。在第五章中介绍了怎么加入联网的设计,通过应用函数体Socket()来连接两台电脑,使其能够传输数据,使软件可以联网运行。论文网
2 象棋软件的功能及整体框架设计
2.1 中国象棋游戏的游戏规则
首先介绍中国象棋的游戏规则:
棋盘和棋子:象棋是棋子共三十二个,分为红黑两组,各十六个,由对弈双方各执一组,兵种是一样的,分为七种。
红方:帅、仕、相、车、马、炮、兵
黑方:将、士、象、车、马、炮、卒
其中帅与将、仕与士、相与象、兵与卒的作用完全相同,仅仅是为了区分红棋和黑棋。
棋子活动的场所,叫做"棋盘",在长方形的平面上,绘有九条平行的竖线和十条平行的横线相交组成,共九十个交叉点,棋子就摆在这些交叉点上。中间第五、第六两横线之间未画竖线的空白地带,称为"河界",整个棋盘就以"河界"分为相等的两部分;两方将帅坐镇、画"米"字方格的地方,叫做"九宫"。