C语言课程设计.docx

上传人:b****6 文档编号:6553194 上传时间:2023-01-07 格式:DOCX 页数:12 大小:123.70KB
下载 相关 举报
C语言课程设计.docx_第1页
第1页 / 共12页
C语言课程设计.docx_第2页
第2页 / 共12页
C语言课程设计.docx_第3页
第3页 / 共12页
C语言课程设计.docx_第4页
第4页 / 共12页
C语言课程设计.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言课程设计.docx

《C语言课程设计.docx》由会员分享,可在线阅读,更多相关《C语言课程设计.docx(12页珍藏版)》请在冰豆网上搜索。

C语言课程设计.docx

C语言课程设计

课程设计成绩评价表

指导老师评阅成绩表

学习与工作态度(30%)

选题的价值与意义(10%)

文献综述(10%)

研究水平与设计能力(20%)

课程设计说明说(论文)撰写质量(20%)

学术水平与创新(10%)

总分

指导老师签名:

年月日

课程设计答辩记录及评价表

学生

讲述情况

教师主要

提问记录

学生回答

问题情况

答辩评分

评分项目

分值

评价参考标准

评分

总分

及格

选题的价值与意义

10

9

8

7

6

4

文献综述

10

9

8

7

6

4

研究水平与设计能力

20

19

17

15

13

10

课程设计说明书(论文)撰写质量

20

19

17

15

13

10

学术水平与创新

10

9

8

7

6

4

答辩效果

30

28

25

22

19

15

是否同意论文(设计)通过答辩

□同意□不同意

答辩小组成员签名

答辩小组组长签名:

年月日

课程设计成绩评定表

成绩汇总

评分项目

评分

比例

分数

课程设计总分

指导老师评分

50%

答辩小组评分

50%

封面

成都信息工程学院

课程设计

题目:

五子棋游戏的设计与实现

 

作者姓名:

班级:

学号:

指导教师:

日期:

作者签名:

五子棋游戏的设计与实现

摘要

此五子棋游戏并不是想以往的人机对弈的玩法,它主要是模拟的真人玩法,是两人亲自对弈。

该游戏主要是利用Win-TC编译器来编译的,该项游戏编程中利用了头文件,库函数,各种实用函数,宏定义等方式来编译的。

而且对其整体的设计思路还进行了具体的分析。

同时还进行了游戏展示。

关键词:

C语言;五子棋;游戏;函数;头文件;

目录

1.引言

该项课程设计中利用了头文件,库函数,各种实用函数,宏定义等方式来编译的。

而且对其整体的设计思路还进行了具体的分析。

同时还进行了游戏展示。

1.1课程设计的目的

本程序旨在进一步训练自己的游戏开发技巧,能够掌握C语言图像模式下的编程。

本程序涉及很多图形函数,包括坐标定位,颜色设置(背景色和文本颜色设置)、线条颜色、填充颜色;直线风格、文本风格、填充风格;画线、画图、画矩形函数;图形系统的初始化和关闭;图形屏幕和文字屏幕的清除;从键盘获得取键值等等。

通过该程序的训练,使自己能对C语言有一个更深刻的了解,掌握五子棋会游戏开发的基本原理,从而为以后的程序开发奠定基础。

1.2课程设计的要求

本课程设计中要用到以下知识点:

a.在画图,定义数组大小,以及定义光标移动键时要用到:

宏定义,for循环等。

b.在判断下棋位置时要用到:

switch选择结构

c.贯穿整个游戏设计时用到:

画图函数,Done下棋函数,欢迎界面等函数。

1.3功能描述

本程序用C语言实现了五子棋游戏,能进行基本的五子棋操作。

程序能实现界面的初始化功能、下棋功能、胜负判断功能和帮助功能。

初始化功能。

程序初始化屏幕和棋盘,默认Player1先行。

实现下棋操作。

程序能实现下棋操作,在下棋过程中可以随时退出。

判断胜负。

程序对下棋的结果进行判断,分出胜负,并显示获胜信息。

显示帮助信息。

程序能提示玩家轮到哪方下棋了。

2.开发环境

该项游戏使用的开发工具是Win-TC

2.1Win-TC的基本介绍

Win-TC是一个TC2Windows平台开发工具。

该软件以TC2为内核,提供Windows平台的开发界面。

支持Windows平台下的功能,例如剪切,复制,粘贴等功能。

3.游戏总体设计

3.1功能模块设计

3.1.1系统模块图

本程序包括4个子模块,分别是初始化模块、功能控制模块、下棋操作模块和帮助模块,如图3.1.1所示。

各个模块的功能描述如下。

a.初始化模块。

该模块主要是用于初始化屏幕信息,包括显示欢迎信息、操作方法和初始化棋盘。

b.功能控制模块。

该模块是各个功能函数的集合,主要是被其他模块调用,包括画棋子、胜负判断和行棋转换等功能;

c.下棋操作模块。

该模块用于执行下棋操作。

d.帮助模块。

该模块主要用于显示帮助信息,提示轮到哪方下棋。

图3.1.1系统功能图

3.2流程图分析

3.2.1.任务执行流程图

游戏初始化是Player1先行。

当Player1行棋后,程序判断Player1是否获胜,如果获胜则显示获胜信息,否则交换行棋;交换行棋后,Player2行棋,当Player2行棋后,程序判断Player2是否获胜,如果获胜,则显示获胜信息,否则交换行棋。

程序以一方获胜或者按Esc键作为结束标志。

任务执行流程图如图3.2.1所示。

 

3.2.2.下棋函数(Done()函数)流程图

下棋操作函数(Done()函数)是本程序的核心部分,它调用功能模块中的函数来实现各种操作。

首先获取key值(UP、DOWN、LEFT、RIGHT、SPACE、ESC),如果获取的key值为ESC,则退出程序;如果key值为UP、DOWN、LEFT或RIGHT,表示移动棋子,程序首先在移动方向上判断棋子下一步是否超出边界,如果超出边界则什么也不用做(表示当前位置已经处于棋盘边界了),否则根据status[i][j]值来执行操作(如果status[i][j]为0,则画棋子显示运行轨迹;如果status[i][j]为flag值,则表示(i,j)位置已有棋子了);如果key值为SPACE,表示落子操作,则在落子后,判断当前行棋方是否获胜,如果获胜则显示获胜信息,否则交换行棋方。

Done()函数的流程图如图3.2.2所示。

3.3数据结构设计

本程序没有自定义结构体,只定义了一些全局变量和数组。

另外,该程序还涉及坐标位置的偏移,这方面的内容也在此说明。

3.3.1.定义数组

定义了数组status[N][N],该数组存储整型类型的值,最多可以存储到status[19][19](实际上棋盘只画了18*18个位置)。

数组status存储给定坐标(实际是反映映射位置的状态值)的状态值。

状态值有3个,分别是0、1和2.0表示给定坐标映射的位置没有棋子,1表示给定坐标映射的位置是Player1的棋子,2表示给定坐标映射的位置是Player2的棋子。

3.3.2.全局变量

step_x和step_y

这两个变量时整型类型的,表示行走时棋子处的坐标,分别表示x和y的坐标。

key

该变量是整型类型的,表示按下的键盘的键值,本程序中可以获取的值有0x4b00(LEFT)、0x4d00(RIGHT)、0x5000(DOWN)、0x4800(UP)、0x011b(ESC)和0x3920(SPACE)。

flag

该变量也是整型类型的,用以表示是哪个玩家。

flag为1是表示Player1,为2时则表示Player2.

3.3.3.坐标位置偏移

坐标位置偏移主要是用于函数DrawBoard()和函数DrawCircle()中。

这里定义了OFFEST_x(大小是4)、OFFSET_y(大小是3)和OFFSET(大小是20)3个偏移量,分别表示x、y坐标偏移和放大倍数。

3.4核心代码的分析

该程序中的精髓是main()函数

voidmain()

{

voidDrawBoard();/*画棋盘*/

voidDrawCircle(intx,inty,intcolor);/*画棋子*/

voidAlternation();

voidJudgePlayer(intx,inty);/*判断行棋方*/

voidDone();/*控制下棋的函数*/

intResultCheck(intx,inty);

voidWelcome();/*表示欢迎信息的函数*/

voidShowMessage();

intgdriver;

intgmode;

clrscr();

Welcome();

gdriver=DETECT;

gmode=0;

initgraph(&gdriver,&gmode,"");

player=1;

DrawBoard();

ShowMessage();

do

{

step_x=0;

step_y=0;

JudgePlayer(step_x-1,step_y-1);

do

{

while(bioskey

(1)==0);

key=bioskey(0);

Done();

}

while(key!

=SPACE&&key!

=ESC);

}

while(key!

=ESC);

closegraph();

}

4.程序实现

4.1程序结果的展示

4.1.1.欢迎界面

4.1.2游戏开始界面

4.1.3.行棋时的界面

4.1.4.胜利界面

结论

经过合理的设计与分析,和多次的调试此程序可以正常的运行。

并且达到了预期的效果。

通过此次的游戏设计,对五子棋游戏的设计有了更深的了解,对一些编程语言有了更好的掌握。

参考文献

[1]谭浩强C语言程序设计(第三版)清华大学出版社

[2]谭浩强C程序设计题解与上机指导清华大学出版社

[3]王岳斌等C程序设计案例教程清华大学出版社

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1