智能五子棋程序设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

智能五子棋程序设计

【摘要】五子棋是一种两人对弈的纯策略型棋类游戏,应用C语言编写程序可以在计算机上实现二人对弈五子棋功能。二人对弈五子棋程序由图像生成、光标移动与落子、判断胜负和系统帮助等子程序构成;程序中应用了结构体、数组、全局变量、按键处理和图形编程等元素和语句。程序通过棋盘和棋子图像生成、二人移子与落子和判断胜负等功能的实现,在计算机上实现了二人五子棋对弈。

【关键词】C语言,五子棋,二人对弈,游戏

Abstract

Gobang is a traditional checker-type game in which the lining up of five pieces in a straight line scores victory. And C language can accomplish a 2-player gobang on computers. This 2-player gobang program contains 4 main sections, they are, graphics, movement and selection, victory judgment and helping system. Several elements and sentences of C programming language such as structural element, array, global variables, press processing and Graphics Programming are also applied in the program. With the accomplishment of the three main subprograms, namely, checker board and pieces construction, players’ step-selection and victory judgment, a whole program of gobang is established and gobang is available on computers.

[Key Words] c language,five in a Row,t he two players

目录

1. 课题设计的需求分析 (3)

1.1五子棋的背景 (3)

1.2程序功能介绍 (3)

1.3程序整体设计说明 (3)

1.3.1设计思路 (3)

1.3.2数据结构设计及用法说明 (4)

1.3.3程序结构(流程图) (5)

2. 课题设计的概要设计 (8)

2.1 各类头文件,变量及宏定义 (8)

2.2全局变量 (8)

2.3各模块的功能及程序说明 (9)

3. 用户手册 (9)

4. 功能测试及运行结果 (10)

5. 课题设计总结 (11)

6. 致谢12

参考文献12

附录14

1. 课题设计的需求分析

1.1五子棋的背景

传统五子棋的棋具与围棋相同,棋子分为黑白两色,棋盘为19×19,棋子放置于棋盘线交叉点上。两人对局,各执一色,轮流下一子,先将横、竖或斜线的5个或5个以上同色棋子连成不间断的一排者为胜。

因为传统五子棋在落子后不能移动或拿掉,所以也可以用纸和笔来进行游戏。

1.2程序功能介绍

程序主窗体设计简洁得体,布局合理,五子棋的基本功能齐全。菜单中的游戏能实现五子棋游戏开始、清盘,当玩家不想玩该局时,可以点击该项重新开始,而且该程序有很好的退出关闭功能。本程序是在一个方阵上通过两人对弈的形式,依次在棋盘上放置两种颜色的棋子——分别为黑白两色,哪一方先让五个棋子形成一条直线——横、竖和对角线3个方向,即为获胜,游戏初始运行界面应为如下[1]:

游戏操作规则:

1、按上下左右方向键移动棋子

2、按空格键确定落棋子

3、禁止在棋盘外按空格

1.3程序整体设计说明

1.3.1设计思路

1) 黑先、白后,从天元开始相互顺序落子。

2) 在天元白色的第一手资料为自己的布边,之后双方可任意儿子

3) 最先在棋盘横向、竖向、斜向形成连续的相同色五个棋子的一方为胜。

4) 黑棋禁手判负、白棋无禁手。黑手-包括“三防”四,三“,四个“长。””。黑方只能“四、三”胜。

5) 如分不出胜负,则定为平局。

6) 对局中中途退场均判为负。

7) 五连与禁手同时形成,先五为胜。

1) 长连:在一条直线或斜线上,连续下成五个以上的棋型

2) 活三:在直线或对角线,有三个子,必须捍卫,否则将成为“活四”龙头型成功。

三只有下面两种棋型结构:

3) 活四:指在一条直线或斜线上,由连续的四个字所构成的,无论对方怎样防守,只要再走一手棋将必定成为五连的棋型:

4) 四:在一条直线或斜线上,由四个同色子构成的,必须防守否则下一步立刻成为“五连”导致速胜的棋型。活四也是四之一。

1.3.2数据结构设计及用法说明

int gPlayOrder; /*指示当前行棋方*/

struct point gCursor; /*光标在棋盘上的位置*/

char gChessBoard[19][19];/*用于记录棋盘上各点的状态*/

break/*是落子键*/

else /*交换行棋方*/

1.3.3程序结构(流程图)

根据程序需求分析结果,可以得出main()函数流程图 如图1,Judgeplayer 流程图如图2,

图3[2]。

N

Y

N

Y

Y

N

图1 main()函数流程图

Charchoose[10]: Printf(“Enter the assig... Strcmp(choose,”... Printf(“Input applicati... Assignl->addres... Printf(“Too large appli... Print(head);

!strcmp(choose,...

Printf(“Success!!AD... Multiplex

结束 开始

相关文档
最新文档