优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

VC毕业设计_基于VC的五子棋游戏软件的设计与开发

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
1引言

目前网络上有很多五子棋子游戏,玩法简单,娱乐性也很高。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。通过对五子棋的设计与开发,了解和掌握游戏开发的原理与方法。让电脑像人脑一样思考,一直是人工智能发展的最终目标。作为一门边缘学科,它有诸多的研究领域,博弈即为其中之一。博弈的参加者可以是个人、集体、某种生物或机器,他们都力图用自己的“智力”去击败对手。博弈为人工智能提供了一个极好的试验场所,人工智能中的许多概念和方法都是从博弈程序中提炼出来的,人工智能中大多以下棋为例来研究博弈规律。本文以五子棋为入口,设计了一个五子棋人机对弈系统,以实现人和计算机的博弈,最终的目的是为了建立一个有具体规则的五子棋平台。 内容来自think58 [来源:http://think58.com]

人机对弈程序的要点,至少应具备以下4个部分:(1) 状态表示:某种在机器中表示棋局的方法,能够让程序知道博弈的状态。(2) 走法产生:产生合法走法的规则,以使博弈公正地进行,并可判断对手是否乱走。(3)搜索技术:从所有合法的走法中选择最佳的走法技术。(4) 对弈界面。

[来源:http://think58.com]

本系统主要研究使用Microsoft Visual C++ 以Windows 窗体程序对五子棋游戏进行开发与设计,让大家了解用Microsoft Visual C++ 开发WINDOWS 小游戏的过程。 copyright think58 [资料来源:www.THINK58.com]

2开发工具和应用平台2.1Microsoft Visual C++的介绍

C 语言是一种高效率的计算机程序设计语言,而Visual C++ 则是在它的基础上开发出的一套功能强大的程序设计工具。对于游戏程序,Visual C++ 可以说是最佳的开发工具。第一,Visual C++ 具有优异的运行速度。第二,Visual C++ 可以直接访问内存。

[来源:http://think58.com]

Visual C++ 自诞生以来,一直是Windows环境下最主要的应用开发系统之一。Visual C++ 不仅是C++ 语言的集成开发环境,而且与Win32 紧密相连,所以,利用Visual C++ 开发系统可以完成各种各样的应用程序的开发,从底层软件直到上层直接面向用户的软件。而且,Visual C++ 强大的调试功能也为大型复杂软件的开发提供了有效的排错手段。 think58好,好think58 [资料来源:http://www.THINK58.com]

Visual C++ 是一个很好的可视化编程工具,使用 Visual C++ 环境来开发基于Windows 的应用程序大大缩短了开发时间,而且它的界面更友好,便于程序员操作。开发环境是程序员同 Visual C++ 的交互界面,通过它程序员可以访问C++ 源代码编辑器、资源编辑器,使用内部调试器,还可以创建项目文件。

think58.com

[资料来源:www.THINK58.com]

[版权所有:http://think58.com]

所谓API 就是应用程序编程接口(Application Programming Interface), Windows API 是Windows 系统和Windows 应用程序间的标准程序接口。API 为应用程序提供系统的各种特殊函数及数据结构定义,Windows 应用程序可以利用上千个标准API 函数调用系统功能。在Visual C++中使用Windows API 是相当容易的, 只要在项目中设定所要使用的函数库并引用正确的头文件,就可以使用Windows API 中的函数与数据类型。

本文来自think58 [资料来源:http://www.THINK58.com]

[资料来源:http://www.THINK58.com]

根据Windows API 函数完成的功能,可将其分为三类。 [来源:http://think58.com]

(1)窗口管理函数:实现窗口函数的创建、移动和修改功能。 本文来自think58

[版权所有:http://think58.com]

(2)图形设备函数(GDI):实现与设备无关的图形操作功能。 [资料来源:http://think58.com]

(3)系统服务函数:实现与操作系统有关的多种功能。 copyright think58

[资料来源:http://www.THINK58.com]

用Windows API 函数来编写应用程序的顺序结构为:调用WinMain 函数开始执行→定义窗口类→初始化窗口类→窗口的实例化→通过消息循环获取消息并将消息发送给消息处理函数做出相应的操作。 think58好,好think58 [资料来源:http://think58.com]

2.2Windows 编程的特点

所有的Windows 程序都具有类似的结构和相同的“外观”,所以用户不用花很多的时间来学习新程序的用法。具有这种一致的用户界面是使用Windows 内部子模序来创建的。所有的菜单、对话框、滚动条等都具有同样的键盘的鼠标接口,Windows 自己处理这项工作,而不是交给应用程序完成。Windows 编程有以下几个特点: copyright think58 [资料来源:THINK58.com]

(1)事件驱动的程序设计

[版权所有:http://think58.com]

(2)消息循环与输入 [版权所有:http://think58.com]

(3)图形输出 think58好,好think58

[资料来源:http://think58.com]

(4)用户界面对象 本文来自think58

[资料来源:http://www.THINK58.com]

(5)资源共享

think58

[资料来源:http://THINK58.com]

[资料来源:www.THINK58.com]

编写一个典型的Windows应用程序,一般需要: 本文来自think58

[版权所有:http://think58.com]

(1)C, CPP源程序文件

内容来自think58 [资料来源:http://think58.com]

[来源:http://www.think58.com]

(2)H,HPP头文件

[来源:http://www.think58.com]

(3)资源文件 内容来自think58

[资料来源:http://www.THINK58.com]

包含了应用程序所使用的全部资源定义,通常以 .RC 为后缀名。资源是应用程序所能够使用的一类预定义工具中的一个对象,包括:字符串资源、加速键表、对话框、菜单、位图、光标、工具条、图标、版本信息和用户自定义资源等。 [版权所有:http://think58.com]

Windows 消息机制:Windows 是一个消息驱动的操作系统。一个消息由一个消息名称(UINT 类型)和两个参数(WPARAM,LPARAM)构成。当用户进行了输入或者是窗口的状态发生改变时,系统会发送消息到某一个窗口。例如,当鼠标左键单击之后会有WM_LBUTTONDOWN 消息发送。用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。一个消息必须由一个窗口接收。在窗口的消息处理函数中可以对消息进行分析,对自己感兴趣的消息进行处理。如果希望在窗口中进行图形输出就必须对WM_PAINT 进行处理。为了应付那些没有被响应的消息,Windows 为窗口编写了默认的窗口消息处理函数,窗口过程将负责处理那些程序中没有处理的消息。正因为有了这个默认窗口过程,程序员才可以利用Windows 的窗口进行开发而不必过多关注窗口各种消息的处理。提到消息就必须说到窗口句柄,系统通过窗口句柄在整个操作系统中唯一标识一个窗口。发送消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口消息处理函数,用户的输入会被正确的处理。在Windows 操作系统中维护着一个或者多个消息队列,所有产生的消息都会被放入到队列中。系统在队列中每次取出一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。 think58好,好think58 [来源:http://www.think58.com]

窗口函数定义了应用程序对接收到的不同消息的响应,其中包括了应用程序对各种可能接收到的消息的处理过程,是消息处理分支控制语句的集合。通常窗口函数由一个或多个switch 语句组成。每条case 语句对应一种消息,当应用程序接收到一个消息时,相应的case 语句被激活并执行相应的响应程序模块。 本文来自think58 [资料来源:http://think58.com]

窗口函数是应用程序处理接收到的消息的函数。其中包含了应用程序对各种可能接收到的消息的处理过程。 think58.com [资料来源:http://THINK58.com]

在本系统中一共用到了 WM_PAINT、WM_LBUTTONDOWN、WM_LBUTTONUP、WM_DESTROY四种消息: 本文来自think58 [资料来源:www.THINK58.com]

LRESULT CALLBACK WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) 本文来自think58

[来源:http://think58.com]

switch(iMessage)                         

copyright think58

[资料来源:THINK58.com]

[来源:http://think58.com]

       {

think58

[资料来源:http://THINK58.com]

[来源:http://www.think58.com]

       case WM_PAINT: 本文来自think58 [资料来源:http://THINK58.com]

       …… …… think58好,好think58

[版权所有:http://think58.com]

       break; think58好,好think58 [资料来源:http://THINK58.com]

       case WM_LBUTTONDOWN: think58.com [资料来源:http://www.THINK58.com]

       …… ……

[资料来源:http://think58.com]

       case 、WM_LBUTTONUP: copyright think58

[资料来源:http://THINK58.com]

       …… ……

copyright think58 [版权所有:http://think58.com]

[资料来源:http://think58.com]

case WM_DESTROY: think58好,好think58

[资料来源:http://www.THINK58.com]

…… ……

think58.com [版权所有:http://think58.com]

[资料来源:http://think58.com]

default:                 think58好,好think58

[版权所有:http://think58.com]

       return(DefWindowProc(hWnd,iMessage,wParam,lParam)); think58

[资料来源:http://THINK58.com]

} [来源:http://www.think58.com]

WM_LBUTTONDOWN 是在玩家在鼠标单击左键后产生的,这时通过 GetCursorPos(&pt) 函数来判断鼠标是否处在落棋的合法点(包括按钮上),如果是合法的落棋点,就返回棋子状态数据等参数,这时 WM_PAINT 函数在收到这些消息后就开始按照得到的参数来重绘棋盘,用户在松开鼠标后又产生 WM_LBUTTONUP 消息,电脑在通过选择最佳落棋点之后,又返回给 WM_PAINT,这样就产生了消息循环,直到接收到 WM_QUIT 消息才退出程序, PostQuitMessage 函数的作用就是向应用程序发出 WM_QUIT 消息,请求退出。DefWindowProc 函数是系统默认的处理过程,以保证所有发送到该窗口的消息均得以处理。 内容来自think58

[版权所有:http://think58.com]