跪求会C语言的大佬,给重生游戏大佬设计一个主界面的程序

下载学院APP
缓存视频离线看
从C语言程序设计到SDL游戏开发视频教程
适用人群:
介绍C语言的基本应用场景。C语言的基本概念HelloWorld程序的写法
编辑,编译,连接,运行通过命令行来编译程序,运行程序
VS2005的安装介绍良好的编程风格通过IDE完成Hello如何在VS2005中新建项目,编译连接,运行项目。
算法的特征二进制,八进制,十六进制转换数据类型介绍
通过VS查看变量内存变化整型的内存存储字符型变量内存存储浮点型内存存储
输入输出作业讲解数据类型复习
数据类型声明说明符数据输入输出函数使用
printf输出格式
scanf的输入格式
输入输出作业讲解
C语言的语法左值和右值的概念C语言中的算数运算符,逻辑运算符
三目运算符逗号运算符位运算符表达式总结表达式练习
隐式转换显示转换
内存溢出的发生情况运算符表达式的运算
认识顺序结构,分支结构,循环结构流程图的画法C语言中的顺序语句的讲解分支语句的讲解
swtich语句 &
for循环语句的讲解 &
break语句的讲解
dowhile循环二重循环循环练习
dowhile循环二重循环循环练习
指针的含义指针的声明及定义
C语言中的二重指针C语言中的三重指针const指针的使用
空指针通用指针指针的运算
数组的声明一维数组的定义
数组最大值数组排序数组逆序数组元素管理
数组加循环
二维数组的存储二维数组练习
二维数组与指针字符数组讲解字符数组练习
数组指针指针数组
为什么使用函数内置函数的调用
函数声明定义参数传递
函数调用C语言中的值传递,地址传递
函数的调用递归函数的讲解递归函数练习
变量的作用域变量的生命周期static变量
typedef的使用五大区域的特性
结构体引入结构体定义结构体变量赋值结构体数组结构体成员使用
宏定义宏函数
链表的增删改查
字符处理函数的使用文件操作
在VS中配置SDL环境分析推箱子游戏
暂时还没有学习资料~
好于0%的课程
课程与描述相符 5 非常满意
老师的讲解表达 5 非常满意
老师的答疑服务 5 非常满意
你可能还感兴趣的课程
河北师大软件学院Java教研室主任,&尚o达学&金牌讲师,图书作者
217770人学习过
7日学霸榜 有217770人与你一起学习
综合评价在4颗星及以上最高可获得35分奖励
课程与描述相符
老师的讲解表达
老师的答疑服务您所在位置: &
&nbsp&&nbsp&nbsp&&nbsp
C语言程序设计猜数字游戏课程设计.doc 31页
本文档一共被下载:
次 ,您可全文免费在线阅读后下载本文档。
下载提示
1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。
2.该文档所得收入(下载+内容+预览三)归上传者、原创者。
3.登录后可充值,立即自动返金币,充值渠道很便利
你可能关注的文档:
··········
课 程 设 计 报 告
C语言程序设计
猜 数 字 游 戏
湖南工程学院
课 程 设 计 任 务 书
C语言程序设计
猜 数 字 游 戏
自 动 化 1081 班
任务书下达日期
任务完成日期
猜数字游戏
一、问题描述:
该游戏可以由程序随机产生或由用户输入四个0到9之间的数字,且不重复。玩游戏者通过游戏提示输入八次来匹配上面所输入的数字。A表示位置正确且数字正确,B表示数字正确而位置不正确。
二、功能要求:
1、本游戏显示这样的菜单:
(1) 随机产生数据
(2) 用户输入数据
(3) 退出游戏
2、游戏成功与否都能返回主菜单
三、算法提示:
1、 数据结构:数组
2、 用简单的程序设计方法
四、测试数据:
测试数据:
第一次输入: 1234
第二次输入:
第三次输入:
第四次输入:
第五次输入:
第六次输入:
第七次输入:
游戏成功!!!
五、其它:
对该系统有兴趣的同学可以在实现系统基本功能后,完善系统的其它功能,如:破记录功能,若你所的次数小于纪录保持者,则为破纪录 6
第一节 项目背景 6
第二节 本课题所做的工作 6
第三章 程序设计 8
第一节 程序的功能 8
第二节 输入输出的要求 8
第三节 程序模块 8
第一条 模块组成 8
第二条 层次结构 9
第三条 模块调用 10
第四章 分析 11
第一条 模块解释与功能 11
第五章 调试 15
第一节 菜单测试 15
第二节 游戏测试 16
第一条 在自定义中 16
第二条 在随机游戏中 17
第六章 总结 19
第七章 附录 20
第一节 附录A
第二节 附录B
参考文献 30
课程设计评分表 31
C语言是一种优秀的程序设计语言,其功能丰富,表达能力强,程序执行效率高,可移植性好;C语言既有高级计算机程序设计语言的特点,同时又具有部分汇编语言的特点,因而C语言具有较强的系统处理能力。通过C语言函数结构可以方便的实现程序的模块化;在C语言的基础上发展起来的面向对象程序设计语言如C++,java,c#等于C语言有许多的共同特征,掌握C语言对学习进而应用这些面向对象的程序设计语言有极大的帮助。因为其独特的语言机制在计算机科学领域中得到了广泛的应用。目前,大部分工科专业的计算机程序语言都是C语言,主要学习面向过程的程序设计方法。
C语言课程设计是综合性比较强的一门设计课程,它考察了学生对C语言的掌握及运用情况。有助于提高学生的分析,理解及动手实践能力。是计算机的基础课程。本题目运用了结构体变量的定义及初始化,for,do-while循环,if,switch-case语句,文件打开,文件保存及其复合使用。
本课题所做的工作
本课题设计一个猜数字游戏,用户根据自己的爱好与兴趣进行随机游戏与自定义游戏,如果用户想自定义一个数字来猜,可以由用户自己进行输入,如果想挑战高难度,用户可以猜测由电脑产生的一个随机数,具体工作有:系统自动产生一个随机数或用户自己定义一个随机数,制作游戏主菜单,制作游戏继续菜单,设计游戏程序,设计友好的界面提示与帮助。
本课程设计分为六个章节,每个章节为课题展开,重程序的需求分析,程序总体设计,程序设计等逐步向读者介绍,说明本课题。还提供了源程序供读者参考。
本程序为猜数字游戏,用户可以根据自己的爱好与兴趣进行随机游戏与自定义游戏,如果用户想自定义一个数字来猜,可以由用户自己进行输入,如果想
正在加载中,请稍后...c语言程序设计 游戏设计_百度知道
c语言程序设计 游戏设计
猜数游戏(cs.c)
1.功能要求:计算机产生随机数,猜中即胜,猜不中,提示是大了还是小了,继续猜,直至猜到,给出所用时间和评语。
2.设置出来的界面是这样的:
*********************
欢迎来到猜字游戏
*********************
我有更好的答案
没有写那个游戏帮助,你自己写一下吧,看一下效果:
采纳率:44%
来自团队:
#include&stdio.h&#include&stdlib.h&#include&time.h&int input,select0 = 10;int data1,data,score=50;void init(){
printf(&**************************************\n&);
欢迎来到猜数字游戏
printf(&**************************************\n&);}void game_init(){
printf(&[1]--开始游戏\n&);
printf(&[2]--游戏帮助\n&);
printf(&[3]--难度选择\n&);
printf(&[4]--查看得分\n&);
printf(&[5]--退出游戏\n&);}void game_start(){
srand((unsigned)time(NULL));
data1 = rand()%select0;
printf(&请输入一个数字\n&);
scanf(&%d&,&data);
if(data == data1)
printf(&猜对了,分数加1\n&);
if(data & data1)
printf(&太大了,分数减1,请重新输入!\n&);
else if(data & data1)
printf(&太小了,分数减1,请重新输入!\n&);
}}void game_help(){}void game_select(){
printf(&难度选择,请输入一个整数,这个数的数值越大,难度越高!\n&);
scanf(&%d&,&select0);}void game_score(){
printf(&当前分数为:%d\n&,score);}game(){
scanf(&%d&,&input);
switch(input)
case 1:game_start();
case 2:game_help();
case 3:game_select();
case 4:game_score();
case 5:exit(0);
default:printf(&没有该选项!\n&);
}}int main(){
game_init();
return 0;}自己作了一点修改,我是在linux环境下编译的,可以运行成功!还存在bug,不过只要提示输入,不会出现!
为您推荐:
其他类似问题
您可能关注的内容
c语言程序设计的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。C语言设计游戏是用什么软件的!_百度知道
C语言设计游戏是用什么软件的!
我有更好的答案
一般用dev C++的图形模式 就可以开发C环境下的小型游戏如果是大型的3D 建议用Java去写比如拿 贪吃蛇做一个例子
#define N 200/*定义全局常量*/ #define m 25 #include &graphics.h& #include &math.h& #include &stdlib.h& #include &dos.h& #define LEFT 0x4b00 #define RIGHT 0x4d00 #define DOWN 0x5000 #define UP 0x4800 #define Esc 0x011b int i,j,key,k; struct Food/*构造食物结构体*/ {
} struct Goods/*构造宝贝结构体*/ {
} struct Block/*构造障碍物结构体*/ { int x[m]; int y[m];
} struct Snake{/*构造蛇结构体*/ int x[N]; int y[N];
} struct Game/*构建游戏级别参数体*/ {
} /*定义函数*/ void init(void);/*定义图形驱动*/ void close(void);/*定义关闭函数*/ void drawk(void);/*定义界面函数*/ void gameover(void);/*定义游戏结束函数*/ void gameplay(void);/*定义游戏主函数*/ void prscore(void);/*定义得分函数*/ void main(void){/*主函数体,调用以下四个函数*/ init(); setbkcolor(7); drawk(); gameplay(); close(); } void init(void){/*构建图形驱动函数*/ int gd=DETECT, initgraph(&gd,&gm,&&); cleardevice(); } void drawk(void){/*构建游戏界面函数*/ /*setbkcolor(LIGHTGREEN);*/ char str3[50]; setfillstyle(SOLID_FILL,BLUE);/*条型边框,显示版本信息*/ bar3d(48,9,610,38,1,45); setcolor(YELLOW);/*版本信息*/ sprintf(str3,&Version:5.01,Powerwing Studio&); outtextxy(330,20,str3); setfillstyle(LTSLASH_FILL,YELLOW);/*设定墙边的填充形式*/ bar3d(48,48,58,462,0,0);/*设定墙边*/ bar3d(48,39,611,48,0,0); bar3d(48,452,611,462,0,0); bar3d(602,39,611,462,0,0); } void gameplay(void){/*构建游戏主函数*/ /*初始化游戏角色*/ randomize();/*随机数发生器*/ goods.yes=1; block.yes=1; food.yes=1;/*场景中需建立新的食物*/ snake.life=1;/*初始化蛇生命值*/ snake.direction=1;/*蛇起始的移动方向定义为向右*/ snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标初始化*/ snake.x[1]=110;snake.y[1]=100; snake.node=2;/*蛇初始化节数,共两节只有蛇头*/ /*初始化障碍物的数组*/ block.x[0]=170;block.y[0]=270;/*level 1*/ block.x[1]=410;block.y[1]=310; block.x[2]=300;block.y[2]=200; block.x[3]=320;block.y[3]=420; block.x[4]=250;block.y[4]=350; block.x[5]=220;block.y[5]=320;/*level 2*/ block.x[6]=310;block.y[6]=410; block.x[7]=400;block.y[7]=500; block.x[8]=230;block.y[8]=230; block.x[9]=280;block.y[9]=280; block.x[10]=170;block.y[10]=280;/*level 3*/ block.x[11]=420;block.y[11]=310; block.x[12]=310;block.y[12]=200; block.x[13]=320;block.y[13]=400; block.x[14]=250;block.y[14]=260;/*level 4*/ block.x[15]=220;block.y[15]=330; block.x[16]=130;block.y[16]=410; block.x[17]=310;block.y[17]=510; block.x[18]=230;block.y[18]=340; block.x[19]=280;block.y[19]=380; block.x[20]=270;block.y[20]=170;/*level 5*/ block.x[21]=410;block.y[21]=450; block.x[22]=190;block.y[22]=200; block.x[23]=150;block.y[23]=320; block.x[24]=270;block.y[24]=350; block.x[25]=340;block.y[25]=320; game.score=0; game.speed=50000; game.level=1; prscore();/*得分初始化*/ while(1){/*判断为真可以按Esc退出循环结束游戏*/ while(!kbhit()){/*无按键按下时,蛇自己移动身体*/ if(game.level==1){/*画出障碍物*/ for(j=0;j&5;j++){ setcolor(5);/**/ rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10); block.yes=0; } } if(game.level==2){/*画出障碍物*/ for(j=0;j&9;j++){ setcolor(5);/**/ rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10); block.yes=0; } } if(game.level==3){/*画出障碍物*/ for(j=0;j&14;j++){ setcolor(5);/**/ rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10); block.yes=0; } } if(game.level==4){/*画出障碍物*/ for(j=0;j&19;j++){ setcolor(5);/**/ rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10); block.yes=0; } } if(game.level==5){/*画出障碍物*/ for(j=0;j&25;j++){ setcolor(5);/**/ rectangle(block.x[j],block.y[j],block.x[j]+10,block.y[j]-10); block.yes=0; } } if(food.yes==1){/*需要画出新的食物*/ food.x=rand()%400+60;/*获得间隔60的随机数食物坐标值*/ food.y=rand()%350+60; while(food.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/ food.x++; while(food.y%10!=0) food.y++; food.yes=0;/*新的食物已经产生*/ } if(goods.yes==1){/*需要画出新的宝物*/ goods.x=rand()%380+60;/*获得间隔60的随机数宝贝坐标值*/ goods.y=rand()%320+80; while(goods.x%10!=0)/*判断坐标值是否满足被10整除,否,自动增加*/ goods.x++; while(goods.y%10!=0) goods.y++; goods.yes=0;/*新的宝贝已经产生*/ } if(goods.yes==0){/*新宝贝产生,应显示出来*/ setcolor(0);/*擦除*/ rectangle(goods.x,goods.y,goods.x+10,goods.y-10); delay(50);/*延时*/ setcolor(YELLOW); goods.x=goods.x+random(10)-random(20);/*随机数增量*/ goods.y=goods.y+random(10)-random(20); while(goods.x%10!=0)/*判断变化后的坐标值是否满足被10整除,否,自动增加*/ goods.x++; while(goods.y%10!=0) goods.y++; rectangle(goods.x,goods.y,goods.x+10,goods.y-10);/*重画出宝贝*/ if(goods.x&65||goods.x&585||goods.y&65|goods.y&445){/*判定宝贝是否越界*/ setcolor(0);/*擦除越界的宝贝*/ rectangle(goods.x,goods.y,goods.x+10,goods.y-10); goods.yes=1;/*越界后重新生成宝贝*/ } } if(food.yes==0){/*新食物产生,应显示出来*/ setcolor(GREEN); setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/ rectangle(food.x,food.y,food.x+10,food.y-10); } for(i=snake.node-1;i&0;i--){/*取得需重画的蛇的节数*/ snake.x[i]=snake.x[i-1];/*最后一节的坐标值等于倒数第二节的坐标值*/ snake.y[i]=snake.y[i-1]; } switch(snake.direction){/*判断蛇头的移动方向*/ case 1:snake.x[0]+=10;/*向右*/ case 2:snake.x[0]-=10;/*向左*/ case 3:snake.y[0]-=10;/*向上*/ case 4:snake.y[0]+=10;/*向下*/ } for(i=3;i&snake.i++){/*超过4节后,判断蛇自身碰撞*/ if(snake.x[i]==snake.x[0]&&snake.y[i]==snake.y[0]){/*即自身的任一节坐标值与蛇头坐标相等*/ for(i=1;i&snake.node-1;i++){/*擦除自己碰撞后位置蛇的身子*/ setcolor(0); rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } snake.life-=1;/*生命值减少一*/ snake.node-=5; prscore();/*输出结果*/ if(snake.life==0){/*判断生命值是否为0*/ gameover();/*游戏结束*/ /*退出内循环*/ } } } if(snake.x[0]&55||snake.x[0]&595||snake.y[0]&55||snake.y[0]&455){/*判断蛇是否与墙体碰撞*/ for(i=1;i&snake.node-1;i++){/*擦除撞墙后位置蛇的身子*/ setcolor(0); rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/ snake.x[1]=110;snake.y[1]=100; snake.direction=1;/*蛇起始的移动方向定义为向右*/ snake.life-=1;/*生命值减少一*/ snake.node-=5;/*相应节数减少5节*/ prscore(); if(snake.life==0){ gameover();
} } /*判断蛇与障碍物碰撞,食物是否与障碍物重叠*/ if(game.level==1){/*判断级别,并设定相应的障碍物数量,即数组个数*/ k=5; } else if(game.level==2){ k=9; } else if(game.level==3){ k=14; } else if(game.level==4){ k=19; } else if(game.level==5){ k=25; } for(j=0;j&k;j++){ if(snake.x[0]==block.x[j]&&snake.y[0]==block.y[j]){ for(i=1;i&snake.node-1;i++){/*擦除撞墙后位置蛇的身子*/ setcolor(0); rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } if(food.x==block.x[j]&&block.y[j]==food.y){/*防止障碍物与食物重叠*/ setcolor(0);/*设定食物的颜色为背景色,即擦除*/ rectangle(food.x,food.y,food.x+10,food.y-10); food.yes=1;/*食物重新生成*/ } snake.x[0]=100;snake.y[0]=100;/*蛇头的位置坐标重新初始化*/ snake.x[1]=110;snake.y[1]=100; snake.direction=1;/*蛇起始的移动方向定义为向右*/ snake.life-=1; snake.node-=5; prscore(); if(snake.life==0){ gameover();
} } } if(snake.x[0]==food.x&&snake.y[0]==food.y){/*判断蛇是否吃到食物*/ setcolor(0);/*设定食物的颜色为背景色,即擦除*/ rectangle(food.x,food.y,food.x+10,food.y-10); snake.x[snake.node]=-20;/*新的一节放在不可见的位置*/ snake.y[snake.node]=-20; snake.node++;/*蛇身增加一节*/ if(snake.node&2){/*当节数每增加5节生命值增加一*/ snake.life=1+fabs((snake.node-2)/5); } food.yes=1;/*场景需要增加食物*/ game.score+=20;/*加分*/ prscore();/*输出得分*/ } if(snake.x[0]==goods.x&&snake.y[0]==goods.y){/*判定蛇是否得到宝贝*/ setcolor(0);/*设定宝贝的颜色为背景色,即擦除*/ rectangle(goods.x,goods.y,goods.x+10,goods.y-10); goods.yes=1;/*场景需要增加新的宝贝*/ game.score+=100;/*得到宝贝后加100分*/ prscore();/*输出得分*/ } if(game.score&500){/*设定游戏速度和难度级别*/ game.speed=50000; game.level=1;} else if(game.score&=500&&game.score&1000){ game.level=2; game.speed=40000;} else if(game.score&=1000&&game.score&1500){ game.level=3; game.speed=30000;} else if(game.score&=1500&&game.score&2000){ game.level=4; game.speed=20000; } else if(game.score&=5000){ game.level=5; game.speed=10000;} setcolor(4);/*画出移动的蛇*/ setlinestyle(SOLID_LINE,0,THICK_WIDTH);/*设定当前线型*/ for(i=0;i&snake.i++) rectangle(snake.x[i],snake.y[i],snake.x[i]+10,snake.y[i]-10); delay(game.speed); setcolor(0);/*用背景色擦去最后一节*/ rectangle(snake.x[snake.node-1],snake.y[snake.node-1], snake.x[snake.node-1]+10,snake.y[snake.node-1]-10); } /*endwhile(! kbhit) */ if(snake.life==0)/*判断循环结束条件:蛇死或者检测到Esc按键*/
key=bioskey(0);/*判断按键*/ if(key==Esc)
/*判断蛇头接收到的用户按键响应的移动方向*/ else if(key==UP&&snake.direction!=4) snake.direction=3; else if(key==RIGHT&&snake.direction!=2) snake.direction=1; else if(key==LEFT&&snake.direction!=1) snake.direction=2; else if(key==DOWN&&snake.direction!=3) snake.direction=4; }/*endwhile(1)*/ } void gameover(void){/*游戏结束处理*/ cleardevice();/*清屏*/ prscore();/*输出得分*/ setcolor(RED);/*打印出“Game Over”字样*/ settextstyle(0,0,4); outtextxy(200,200,&Game Over!&); getch(); } void prscore(void){/*定义分数输出函数*/ char str1[10]; char str2[10]; char str4[20]; setfillstyle(SOLID_FILL,BLUE);/*用于清除旧的显示信息*/ bar(49,10,320,37); setcolor(WHITE); settextstyle(0,0,1); sprintf(str1,&score:%d&,game.score);/*输出得分*/ outtextxy(55,20,str1); sprintf(str2,&level:%d&,game.level);/*输出级别*/ outtextxy(250,20,str2); sprintf(str4,&life:%d&,snake.life);/*输出级别*/ outtextxy(150,20,str4); } void close(void){/*定义关闭函数,退出图形模式*/ getch(); closegraph(); }
为您推荐:
其他类似问题
您可能关注的内容
c语言的相关知识
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。求大神们帮我用C语言编一个扫雷游戏程序 1图形用户界面 2类似windows附件的扫雷 其他的见补充急需拜托了_百度知道
求大神们帮我用C语言编一个扫雷游戏程序 1图形用户界面 2类似windows附件的扫雷 其他的见补充急需拜托了
我有更好的答案
上谷歌或者bing搜索 c program
Minesweeper,出来一大堆,比如
采纳率:70%
来自团队:
这个东西我写过,不过是用qt写的,自己写太麻烦了
这个写起来麻烦,,,,怎么感谢
百度上有吧
我找过,运行不了,试过改,但是改的不对,还是不行
为您推荐:
其他类似问题
换一换
回答问题,赢新手礼包
个人、企业类
违法有害信息,请在下方选择后提交
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。

我要回帖

更多关于 重生游戏大佬 的文章

 

随机推荐