VC网络跳棋设计与实现
以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
资料介绍:
摘要当今社会,计算机网络已经成为人们生活中不可缺少的一部分。人们从互联网上获取信息与朋友交流,甚至通过网络与千里之外的人一起游戏。本文主要介绍的是实现简单的网络跳棋程序。本次毕业设计主要完成的是网络跳棋中的图形界面和用户接口的设计,能够实现跳棋游戏中棋盘、棋子的绘制,鼠标执子和落子,下棋规则的定义,输赢的判断,网络传输命令的定义、发送、和接收等功能。并介绍了开发工具VC++的功能和使用。关键词:网络跳棋,图形界面,用户接口,VC++ 第1章引言1.1 题目背景随着因特网的迅速流行,越来越多的应用程序具备了在网络上与其它程序通信的能力。特别是电脑游戏,如果能通过网络使相隔千里的双方共同参与其中,则将给他们带来更大的乐趣。作为一名电脑和跳棋游戏的爱好者,经过仔细的研究实验,用VC++6.0编写了能在网上进行跳棋对弈的程序,该程序不仅为对弈双方提供下棋的平台,还实现了对局前的用户协商,和对局中的鼠标拾子、执子、落子、悔棋、认输、判断胜负等功能,在冥想苦思之余,还可以通过程序的聊天功能与对手交谈。1.2 课题要求网络跳棋是实现在网路上进行跳棋对弈的程序,基于网络的跳棋程序应完成如下功能:1.2.1跳棋元素的绘制和表示本次毕业设计要求完成的是网上跳棋程序,既然是一个棋类游戏,它就必须要有棋盘和棋子,设计这个程序,应该包含棋盘和棋子的绘制及表示。棋盘用于表示棋子可以落下的位置,不同颜色的棋子在棋盘上的位置表示游戏双方的走棋状态。1.2.2鼠标执子和落子可以实现在对弈过程中,通过利用鼠标左右键的单击双击等操作将要移动的棋子拾起,在移动过程中,对棋子的把持,选择好落子位置后,将所执的棋子放下等功能。1.2.3落子规则的定义和游戏胜负的判断通过编写合理的算法实现对落子规则和胜负规则的定义;落子规则用于判断所选的位置是否可以落子点,及是否可以连续跳子。胜负规则是作为判断游戏胜负的依据。1.2.4网络传输的接口的定义设计合理的数据结构,实现网络传输过程中所需的各种命令的定义和使用。这些命令用于响应一些基本的操作,如游戏过程中一方的移动棋子位置,一方悔棋、认输或网络掉线等信息。1.3系统设计目标按照毕业设计设计要求,本系统应该达到如下的设计目标:(1) 设计合理的数据结构实现棋盘、棋子的绘制和表示,通过棋子在棋盘上的位置能够很直观地表示当前游戏进行的状态;(2) 通过算法实现对下棋规则的定义,随时验测游戏玩家下棋是否犯规;(3) 随时对游戏双方的棋子分布进行把握,如一方帅先达到胜利条件时,能够极时做出判断。(4) 用户界面友好、性能稳定,美观大方而且比较人性化,向导功能强,易于操作;游戏支持人数:跳棋支持两人、四人或六人同时对弈。游戏的规则:以二人对弈为例,当轮到一方走棋时,他有两种方式移子:1、跳单步,即所执子落在紧挨着它的六个可落点上,如果这个点上已经有一个子了,则为不可落点。2、走连跳,连跳要求每次跳子都要隔一定数量的棋子,常见的有隔一子跳和隔两子跳。连跳的条件是第一步走棋和最后一步都应不是跳单步,每次连跳所隔子的个数应该一致。胜负的判断:在游戏过程中,如有一方帅先将自己颜色的棋子都移到了在游戏初始时对方棋子的所在位置,他就取得了游戏的胜利。有时为了比较胜负的程度,当一方已经胜利后,负的一方也要将棋走完,并记录他们相差的步数。如下图蓝方已经胜利:2.2 跳棋程序设计概要通过Visual C++6.0建立一个基于对话框的应用程序,将这个绘制了棋盘和棋子的对话框作为游戏的平台。通过鼠标单击、双击或移动操作实现拾子、移子、执子、落子。按先前定义好形式的字符串,作为网络传输和将要接收和执行的命令。2.2.1棋盘和棋子的数据结构棋盘的设计思想:跳棋的棋盘从表面上看是一个正六边形,棋盘中可落子的位置均匀地分布在这个六边形的内部。这不像军棋、象棋或是围棋棋盘那样方方正正,可方便地用一个数组结构来表示可以落子的点。因此,跳棋棋盘的设计有一定的难度。这里也同样利用了一个二维数组,并且应该设置一个变量来限定这个二维数组中的一些元素所表示的位置还是不可以落子的。当然,这里提到的可落子的位置是在程序中是可落子位置的逻辑位置,而不是落子位置的物理位置。确定了所有可落子的位置后,利用绘图函数,将这个棋盘绘制出来。棋子的设计思想:有了棋盘,没有可以操作的棋子,也不能进行正常的对弈。起初设计时,试想了以一个圆来表示棋子,填充以不同的颜色来区分不同游戏者的棋子。当需要实现棋子的移动时,则可以把棋子移动的原始位置用棋盘背景填充,而在棋子移到的目的位置绘画一个同样大小和同样颜色的圆。为了实现程序的美观性,这里采用了位图来表示棋子,通过对位图的操作来实现对棋子的操作。2.2.2鼠标对棋子操作的设计思想鼠标是有一个或多个键的定位设备。现在已经成为一个Windows中必不可少的一部分。我们知道Windows是以消息机制来驱动的,正如我们利用键盘键入文本,利用鼠标来点击文件夹图标,这个过程中我们的键盘、鼠标不停地向操作系统发送消息。Windows为鼠标定义了21种消息,其中常用的消息有: WM_LBUTTONDOWN、WM_LBUTTONDBLCLK、WM_RBUTTONDOWN,它们分别表示在鼠标左键按下、左键双击、右键按下时向系统发送的消息。利用WM_LBUTTONDOWN消息来实现拾子和落子,如果条件允许时,当左键按下,将鼠标按下位置处的棋子拾起。拾起后,再按左键将这个棋子放在棋盘上可以落子的位置; 利用WM_LBUTTONDBLCLK消息来放下一个棋子。如果符合规则,双击鼠标左键,可以直接将所执的棋子放在鼠标双击的位置,并且表示这一方移子结束;利用WM_RBUTTONDOWN消息来取消执子,当鼠标正拿着一个棋子时按下右键,将这个棋子放回原处,这样可以改去拾起其他的棋子。当然,在利用上述各种鼠标操作时,需要各种复杂的限定条件。2.2.3关于接口的概要设计由于这个跳棋程序要实现在网络上对弈,网络上的对弈双方往往存在一定的地理距离。这就需要考虑如何将一方的移子信息和其他操作信息正确展示给远在网络另一端的游戏玩家。这就需要这里所说的接口命令。接口命令反映了游戏玩家的操作,包括玩家移子、认输、悔棋和退出游戏。对这些接口命令的操作至少有三种:接口命令的定义,接口命令类型的区别,接口命令的传输和接收,接口命令的解释和执行。根据网络传输的需要,接口命令最后必须被格式化为字符串,这个字符串中包含了具体的并且严格的命令内容,并且这个字符串中应该包含命令的类型。在这里命令被定义为长度为16的字符串,具体如表2.2:
包含资料:
【买计算机毕业论文就到www.think58.com】 think58.com [资料来源:http://THINK58.com]
think58.com [来源:http://think58.com]
[版权所有:http://think58.com]
[来源:http://think58.com]
源程序+论文(15000字以上)+可执行程序+答辩稿ppt+开题报告+外文翻译
[资料来源:THINK58.com]
获取资料请您联系本站客服
think58
[来源:http://www.think58.com]
[资料来源:http://www.THINK58.com]