C语言课程设计设计报告

发布 2022-10-05 04:11:28 阅读 9884

六子棋的设计。

c语言程序设计目录。

一、 游戏功能。

二、 功能模块的描述。

1. main()主函数。

2. drawqp()函数//画棋盘函数。

3. playtoplay()函数//人人对战函数。

4. qpchange(x,y,t)函数//判断棋盘变化即游戏规则函数。

三、 源程序。

四、 调试结果。

五、 课程设计总结。

1.设计过程的体会与总结。

2.设计过程中遇到的困难和解决方法。

一、游戏功能。

1、设计目的。

此游戏为本人童年时常玩的一种小游戏,但是仅限于在地面上用小石子玩,因此预想借这次机会用c语言把这种游戏搬上电脑屏幕,以此来与大家一起分享我的童年乐趣,并希望以此来记录我童年的记忆。

2、游戏功能分析。

本游戏能实现双人对战,规则十分简单,当有一方一个棋子夹在对方两个棋子中时,会被对方吃掉,从而会减去一分,分数先达到12分的为胜利者。

3、游戏基本框架图。

退出说明:本游戏在最后分出胜负后按任意键可以退出游戏界面,在游戏中若想退出,可以按esc键进行退出。

二、功能模块的描述。

1、main主函数。

程序采用模块化设计,主函数是程序的入口。各模块独立,可分块调整,均由主函数控制。每个模块的功能由简单的函数构成。

直接利用输出函数printf输出字符串,在屏幕上显示几行游戏界界面提示,并显示一个提示——怎样进入游戏界面。将f1输入即可进入游戏的主界面,主函数根据这个相应的输入可调用相应的功能函数,操作简单。

2、drawqp()函数;//画棋盘函数。

本函数提供显示游戏初界面,能显示初始的游戏界面,进入这个界面以后玩家即可进行操作。

该函数包含了画棋格的函数,并且有一些小的修饰,比如说棋盘外框的边幅。还对棋盘上四个角上初始化了四颗棋子,这样更有利于游戏的公平性。

3、playtoplay();人人对战函数。

本函数主要以while循环来实现人人对战的功能,其中调用了设置棋子颜色函数、恢复棋格颜色函数、判断棋盘变化函数等。while循环如下:

4、qpchange();判断棋盘变化函数。

该函数主要判断了棋子在八个方向上的变化,下面以往右边为例进行说明。

落下的棋子在判断点的左边,比如说a01

三、源程序。

#include <>图形系统头文件*/

#define left 0x4b00 /*光标左键值*/

#define right 0x4d00 /*光标右键值*/

#define down 0x5000 /*光标下键值*/

#define up 0x4800 /*光标上键值*/

#define esc 0x011b /*esc键值*/

#define enter 0x1c0d /*回车键值*/

#define f1 0x3b00 /*f1键值*/

int a[8][8]=,key,score1,score2;/*具体分数以及按键与存放棋子的变量*/

char playone[3],playtwo[3];/两个人的得分转换成字符串输出*/

void playtoplay(void);/人人对战函数*/

void drawqp(void);/画棋盘函数*/

void setplaycolor(int x);/设置棋子第一次的颜色*/

void movecolor(int x,int y);/恢复原来棋盘状态*/

int qpchange(int x,int y,int z);/判断棋盘的变化*/

void doscore(void);/处理分数*/

void printscore(int n);/输出成绩*/

void playwin(void);/输出胜利者信息*/

***主函数。

void main(void)

int gd=detect,gr;

printf("welcome to the six pieces game!");

printf("it was in honor of my childhood and made by luzhaoyu!");

printf("the rule is player whose pieces reach 12 firstly will win the game.");

printf("now please press f1 to enter the game and enjoy yourselves!")

key=bioskey(0);/接收按键*/

if(key==f1)

setcolor(yellow);

settextstyle(0,0,3字体型号*/

outtextxy(180,15,"happy!")

setlinestyle(0,4,3画线类型和宽度*/

rectangle(97,97,423,423); 画矩形*/

setcolor(0);/取消圆周围的一圈东西*/

setfillstyle(solid_fill,15);/白色实体填充模式*/

fillellipse(500,220,15,15); 在显示得分的位置画棋*/

setfillstyle(solid_fill,8); 黑色实体填充模式*/

fillellipse(500,320,15,15);

a[0][0]=a[7][7]=1;/*初始两个黑棋*/

a[0][7]=a[7][0]=2;/*初始两个白棋*/

setfillstyle(solid_fill,white);

fillellipse(120,120,15,15);

fillellipse(120+7*40,120+7*40,15,15);

setfillstyle(solid_fill,8);

fillellipse(120,120+7*40,15,15);

fillellipse(120+7*40,120,15,15);

score1=score2=2; /有棋后改变分数*/

doscore();输出开始分数*/

***人人对战***

void playtoplay()

int x,y,t=1,i,j;

while(1)/*换棋手走棋*/

doscore();分数的改变*/

break;/*棋盘变化了,则轮对方走棋*/

else/*已经有棋子就继续按键*/

continue;

else /*四个方向按键的判断*/

if(key==left&&x>120)/*左方向键*/

movecolor(x,y);

fillellipse(x,y,15,15);

setplaycolor(t);

x-=40;

fillellipse(x,y,15,15);

c语言课程设计报告 课程设计报告

周口师范学院。课程设计报告。院 系 计算机科学与技术学院 班级。学生姓名学号。设计题目 职工工资管理系统。完成日期 年月日 课程设计任务书。设计题目 工资管理系统 教研室主任指导教师 年月日。摘要11设计内容 任务及具体要求2 1.1设计内容2 1.2设计任务及具体要求2 2概要设计3 2.1该系统...

c语言课程设计设计报告

c语言课程设计报告。姓名 学号 年月。目录 程序功能简介。题目分析。函数的调用关系图及主要算法。源程序及注释。测试流程。心得感想。程序一 简单数学问题。一 程序功能简介 实现多个简单数学问题的求解。二 题目分析。完成与菜单项对应的功能设计。1 void findnum 用穷举法找到被咬掉的数字 2 ...

c语言课程设计设计报告

1开设课程设计的目的及意义。高等职业教育的目标及侧重点不同于普通高等教育,其培养的学生在毕业后应能直接上岗,具有熟练的实践操作技能。教育部 关于以就业为导向深化高等职业教育改革的若干意见 中指出,高职教育应 坚持培养面向生产 建设 管理 服务第一线需要的 下得去 留得住 用得上 实践能力强 具有良好...