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