基于VC的五子棋游戏软件的设计与开发
摘 要
人工智能是近年来很活跃的研究领域之一,计算机博弈是人工智能研究的一个重要分支,它的研究为人工智能带来了很多重要的方法和理论,产生了广泛的社会影响和学术影响。五子棋本身就是一款益智休闲游戏,规则简单。五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助于修身养性。
本系统就以五子棋游戏作为研究课题,对五子棋的算法与规则做了研究,阐述了如何在 Microsoft Visual C++ 下用 API 函数来开发Windows下的游戏并给出了具体的实现。本系统以五子棋为例实现的主要功能有棋盘、棋子的输出、人机对下等。本系统还有和棋、再来一盘、帮助等辅助功能。
关键字:五子棋;Microsoft Visual C++; API函数
目 录
1 引言... 1
2 开发工具和应用平台... 1
2.1 Microsoft Visual C++ 的介绍... 1
2.2 Windows 编程的特点... 2
3 系统需求分析... 4
3.1 系统需求... 4
3.2 功能需求... 4
3.3 系统运行环境... 4
4 五子棋算法分析... 5
4.1 五子棋的发展... 5
4.2 五子棋的规则... 6
4.3 具体算法分析... 7
4.3.1 棋盘局势状态表示... 7
4.3.2棋盘中下棋的顺序表示... 7
4.3.3具体算法... 7
5 系统流程... 9
6 系统功能实现... 10
6.1 窗口设计... 10
6.2 棋盘设计... 11
6.3 按钮功能的实现... 12
6.4 胜负判断... 13
7 系统测试与分析... 14
7.1 运行结果... 14
7.2 问题的发现与解决... 17
结 论... 17
参考文献... 17
致 谢... 19
声 明... 20
附 录... 21
1.1 Windows 编程的特点
所有的 Windows 程序都具有类似的结构和相同的“外观”,所以用户不用花很多的时间来学习新程序的用法。具有这种一致的用户界面是使用 Windows 内部子模序来创建的。所有的菜单、对话框、滚动条等都具有同样的键盘的鼠标接口,Windows 自己处理这项工作,而不是交给应用程序完成。Windows 编程有以下几个特点:
(1)事件驱动的程序设计
(2)消息循环与输入
(3)图形输出
(4)用户界面对象
(5)资源共享
编写一个典型的Windows应用程序,一般需要:
(1)C, CPP源程序文件
(2)H,HPP头文件
(3)资源文件
包含了应用程序所使用的全部资源定义,通常以 .RC 为后缀名。资源是应用程序所能够使用的一类预定义工具中的一个对象,包括:字符串资源、加速键表、对话框、菜单、位图、光标、工具条、图标、版本信息和用户自定义资源等。
Windows 消息机制:Windows 是一个消息驱动的操作系统。一个消息由一个消息名称(UINT 类型)和两个参数(WPARAM,LPARAM)构成。当用户进行了输入或者是窗口的状态发生改变时,系统会发送消息到某一个窗口。例如,当鼠标左键单击之后会有 WM_LBUTTONDOWN 消息发送。用户也可以定义自己的消息名称,也可以利用自定义消息来发送通知和传送数据。一个消息必须由一个窗口接收。在窗口的消息处理函数中可以对消息进行分析,对自己感兴趣的消息进行处理。如果希望在窗口中进行图形输出就必须对 WM_PAINT 进行处理。为了应付那些没有被响应的消息,Windows 为窗口编写了默认的窗口消息处理函数,窗口过程将负责处理那些程序中没有处理的消息。正因为有了这个默认窗口过程,程序员才可以利用 Windows 的窗口进行开发而不必过多关注窗口各种消息的处理。提到消息就必须说到窗口句柄,系统通过窗口句柄在整个操作系统中唯一标识一个窗口。发送消息时必须指定一个窗口句柄表明该消息由那个窗口接收。而每个窗口都会有自己的窗口消息处理函数,用户的输入会被正确的处理。在 Windows 操作系统中维护着一个或者多个消息队列,所有产生的消息都会被放入到队列中。系统在队列中每次取出一条消息,根据消息的接收句柄而将该消息发送给拥有该窗口的消息循环。每一个运行的程序都有自己的消息循环,在循环中得到属于自己的消息并根据接收窗口的句柄调用相应的窗口过程。