C语言小游戏程序设计

合集下载

c小游戏课程设计报告

c小游戏课程设计报告

c 小游戏课程设计报告一、课程目标知识目标:1. 学生能理解并掌握C语言的基本语法和编程结构。

2. 学生能运用C语言编写简单的计算机小游戏,如“猜数字”、“石头剪刀布”等。

3. 学生了解并能使用基本的输入输出函数,进行游戏交互。

4. 学生掌握基本的逻辑运算和条件判断,实现游戏逻辑。

技能目标:1. 学生能够独立进行简单的C语言编程,培养解决问题的能力。

2. 学生通过编写小游戏,提高逻辑思维和算法设计能力。

3. 学生能够运用所学知识,创新设计并实现自己的小游戏。

情感态度价值观目标:1. 学生对计算机编程产生兴趣,培养主动学习和探索的精神。

2. 学生在团队协作中,学会沟通、分享和合作,培养良好的团队精神。

3. 学生通过编程解决实际问题,增强自信心,培养克服困难的勇气。

课程性质:本课程以实践为主,结合理论讲解,使学生在动手实践中掌握C语言编程。

学生特点:六年级学生,具备一定的计算机操作能力,对新鲜事物充满好奇,喜欢动手实践。

教学要求:教师需关注学生的个体差异,提供个性化的指导,鼓励学生创新思考,注重培养学生的实际操作能力和团队协作能力。

通过课程学习,使学生达到预期学习成果,为后续编程学习奠定基础。

二、教学内容1. C语言基础知识:变量、数据类型、运算符、表达式和语句。

- 章节:教材第1章至第3章- 内容:变量定义与赋值,基本数据类型,算术运算符,关系运算符,逻辑运算符,简单的输入输出语句。

2. 控制结构:顺序结构、选择结构和循环结构。

- 章节:教材第4章至第6章- 内容:if语句,switch语句,for循环,while循环,do-while循环。

3. 函数:函数的定义、调用和声明。

- 章节:教材第7章- 内容:函数的基本概念,函数的定义,函数的调用,局部变量和全局变量。

4. 编写小游戏:猜数字、石头剪刀布等。

- 章节:教材实例及拓展- 内容:随机数生成,用户输入处理,逻辑判断,游戏循环设计。

5. 项目实践与团队协作:分组进行项目实践,设计并实现一个小游戏。

【C语言程序设计】—最近超火的小游戏—【数字炸弹】!

【C语言程序设计】—最近超火的小游戏—【数字炸弹】!

【C语⾔程序设计】—最近超⽕的⼩游戏—【数字炸弹】!✍准备⼯作和建议⼀、程序的原理在动⼿编程之前,得先跟⼤家说⼀下这个程序是⼲什么的。

我们可以称呼这个游戏为《数字炸弹》。

游戏的原理是这样:每⼀轮电脑从 1 到 100 中随机抽⼀个整数。

电脑请求你猜这个数字,因此你要输⼊⼀个 1 到 100 之间的整数。

电脑将你输⼊的数和它抽取的数进⾏⽐较,并告知你的数⽐它的数⼤了还是⼩了。

然后它会再次让你输⼊数字,并告诉你⽐较的结果。

⼀直到你猜到这个数为⽌,⼀轮结束。

游戏的⽬的,当然就是⽤最少的次数猜到这个“神秘”数字。

虽然没有绚丽的图形界⾯,但是或多或少,这都是你的第⼀个游戏了,应该值得骄傲。

下⾯演⽰了⼀轮的样式,你要编程来实现它:这个数字是什么?50猜⼩了!这个数字是什么?75猜⼩了!这个数字是什么?85猜⼤了!这个数字是什么?80猜⼤了!这个数字是什么?78猜⼩了!这个数字是什么?79太棒了,你猜到了这个神秘数字!!⼆、随机抽取⼀个数但⼤家要问了:“如何随机地抽取⼀个数呢?不知道怎么办啊,⾂妾做不到啊。

”诚然,我们还没学习如何来产⽣⼀个随机数。

让亲爱的电脑兄来做这个是不简单的:它很会做运算,但是要它随机选择⼀个数,它还不知道怎么做呢。

事实上,为了“尝试”得到⼀个随机数,我们不得不让电脑来做⼀些复杂的运算。

好吧,归根结底还是做运算。

我们有两个解决⽅案:✎请⽤户通过 scanf 函数输⼊这个神秘数字,那么就需要两个玩家咯。

⼀个选数字,⼀个猜数字。

✎孤注⼀掷地让电脑来为我们⾃动产⽣⼀个随机数。

好处是:只需要⼀个玩家,可以⾃娱⾃乐。

缺点是:需要学习该怎么做...我们来学习⽤第⼆种⽅案编写这个游戏,当然你也可以之后⾃⼰编写第⼀种⽅案的代码。

为了⽣成⼀个随机数,我们要⽤到 rand() 函数(rand 是英语 random 的缩写,表⽰“随机的”)。

顾名思义,这个函数能为我们⽣成随机数。

但是我们还想要这个随机数是在 1 到 100 的整数范围内(如果没有限定范围,那会很复杂)。

C语言课程设计报告-游戏2048

C语言课程设计报告-游戏2048

东华理工大学C语言课程设计报告学院:国际教育学院学院专业:电子信息工程班级:1420606学号:************姓名:***一、课程设计题目:游戏2048二、课程设计要求:a)使用C语言编写2048这款游戏b)能够正常运行,拥有游戏界面。

c)能正常进行游戏从开始到结束。

d)用户操作方便三、设计思路:a)游戏介绍:i.2048是一款简单的数字类游戏,界面是一个4*4的方形格子。

每个格子里可以为空或者有一个2^n的数值。

ii.用户可以输入4种指令,分别是:上下左右,游戏会根据用户的指定的方向,将格子中的数值向对应方向进行移动,直至移动到最边上的格子或者有其他数值占用,如果碰到等大数值,将会进行合并。

此外,成功移动后,会在一个空格子随机生成一个2或者4 iii.游戏目标是合成2048这个数值或者更大的数值。

b)实现思路:i.可以使用二维数组来保存4*4格子中的数值ii.指令,可以通过输入字符函数,读取用户在键盘上的方向键,进行判断执行对应的代码。

iii.游戏界面,可以使用简单的特殊制表符,来实现,并通过清屏函数来进行反复同位置打印界面。

iv.需要判断游戏结束的函数,以及记录游戏分数和步骤的变量v.当游戏结束时,能够询问用户是否重新开始。

vi.随机生成一个新数,可以调用随机函数,使用时间做种子。

c)实现难点:i.打印游戏界面,要实现灵活能根据棋盘数组里面的数据灵活打印。

ii.执行操作时,数值的移动和合并。

四、流程图五、C语言源代码// 游戏2048.c#include "windows.h"#include "time.h"#include "stdio.h"#include "conio.h"#include "string.h"//宏定义常量方向键值//const int LEFT = 75, UP = 72, RIGHT = 77, DOWN = 80;#define LEFT 75#define UP 72#define RIGHT 77#define DOWN 80const char error_str[] = "您上次输入的指令无法识别,请重新输入。

2048小游戏C语言编程设计

2048小游戏C语言编程设计
for (b = i + 1; b < 4; b++) {
if (*(p + b) != 0) if (*(p + i) == *(p + b)) { score = score + (*(p + i)) + (*(p + b)); *(p + i) = *(p + i) + *(p + b); if (*(p + i) == 2048) gamew = 1; *(p + b) = 0; i = b + i; ++ifappear; break; } else { i = b; break; }
++ifappear; e++; } } } if (ifappear != 0) ++move; break; case 'd':
case 'D': case 77:
ifappear = 0; for (j = 0; j < 4; j++) {
for (i = 0; i < 4; i++) {
b[i] = num[j][i]; num[j][i] = 0; } add(b); e = 3; for (g = 3; g >=0; g--) { if (b[g] != 0) {
void menu(); system("cls"); printf("\t\t*****************************************\t\t\n"); printf("\t\t*****************************************\n"); printf("\t\t******************游戏规则***************\n"); printf("\t\t*****************************************\n"); printf("\t\t*****************************************\t\t\n"); printf("玩家可以选择上、下、左、右或 W、A、S、D 去移动滑块\n"); printf("玩家选择的方向上若有相同的数字则合并\n"); printf("合并所得的所有新生成数字相加即为该步的有效得分\n"); printf("玩家选择的方向行或列前方有空格则出现位移\n"); printf("每移动一步,空位随机出现一个 2 或 4\n"); printf("棋盘被数字填满,无法进行有效移动,判负,游戏结束\n"); printf("棋盘上出现 2048,获胜,游戏结束\n"); printf("按上下左右去移动滑块\n"); printf("请按任意键返回主菜单...\n"); getch(); system("cls"); main(); } void gamefaile() { int i, j; system("cls"); printf("\t\t*****************************************\t\t\n"); printf("\t\t*****************************************\n"); printf("\t\t******************you fail***************\n"); printf("\t\t*****************************************\n"); printf("\t\t*****************************************\t\t\n"); printf("\t\t\t---------------------\n\t\t\t"); for (j = 0; j<4; j++) {

c语言贪吃蛇小游戏程序课程设计

c语言贪吃蛇小游戏程序课程设计

学生课程设计报告一、课程设计内容贪吃蛇小游戏程序设计(贪吃蛇游戏是一个经典小游戏,一条蛇在封闭围墙里,围墙里随机出现一个食物,通过按键盘四个光标键控制蛇向上下左右四个方向移动,蛇头撞倒食物,则食物被吃掉,蛇身体长一节,同时记10分,接着又出现食物,等待蛇来吃,如果蛇在移动中身体交叉蛇头撞倒自己身体则游戏结束。

)二、技术路线使用VC++6.0作为开发环境,采用控制台的形式完成整个游戏的开发,没有用到MFC。

加入了pcc32.h的头文件及库文件,用于对控制台打印效果的控制。

同时也加入了PlaySound()函数,实现了对菜单选择,游戏开始,游戏结束的音效控制。

游戏栏和输出栏的同时打印,数据的更新打印效果,没有采用双线程的方法实现。

接收用户键盘输入信息,实现游戏暂停,重新开始,菜单选择和进入菜单。

三、设计与实现1.游戏基本功能:游戏有开始菜单界面,并有开始游戏,游戏帮助,关于游戏,退出游戏四个选项游戏初始化后,一条蛇在密闭的围墙内,在围墙内随机出现一个食物,通过按键盘上的四个方向键控制蛇移动,蛇在移动过程中撞到墙壁将不会死亡,而是穿过围墙继续行进,但是如果蛇身体交叉蛇头撞到自己的身体,则游戏结束。

同时,游戏过程中可暂停游戏,并有积分系统,且积分每满一定值,蛇的运行速度也会逐步增加。

2.函数定义和声明(1)头文件#include<iostream>#include<windows.h>#include<conio.h>#include<time.h>#include<stdlib.h>#include "mmsystem.h" #pragma comment (lib,"winmm.lib")#include"pcc32.h"#pragma comment(lib, "pcc32_vc6.lib") using namespace std; #define UP 72//定义上下左右常量#define DOWN 80#define LEFT 75#define RIGHT 77#define ESC 27#define SPACE 32//空格#define ENTER 13//回车(2)函数声明void GamePrint();//游戏开始画面函数void Gameinit();//游戏初始化函数void Sweep_Screem();//清屏函数void Gotoxy(int , int); //光标移动函数void Hid_Cursor();//光标隐藏函数void Snake_Move();//蛇运动函数int Create_Food();//食物产生函数void Pwall();//画墙函数void Key();//键盘操作和处理函数void Hit_Wall();//判断是否撞墙void Eat_Itself();//判断是否咬到自己void Whether_Eat();//判断蛇是否吃到食物void GameRun();//游戏运行函数void SurFace();//开始菜单界面void GameOver(); //游戏结束判断函数void Pause();//游戏暂停函数void MyCount1();//统计边栏,用来做提示void MyCount2();//统计边栏,用来做一些统计void Menu( int );//开始界面void Inti_Data();//初始化数据(3)变量声明int X, Y;//食物坐标int Map[79][24]={{0}};//地图尺寸,其实有食物记为1int over = 0;//用来标记游戏结束int score = 0;//记录分数int speed = 130;//记录速度int ColoArray[15]={15,1,2,3,4,5,6,7,8,9,10,11,12,13,14} ;//自己定义的用来控制颜色的数组int length = 3;//初始化蛇的长度为3int Key_Menu;//开始菜单界面用的零时按键3.主函数int main()int main() //主函数{START:Inti_Data();fixConsoleSize(18,15);Hid_Cursor();SurFace();PlaySound(TEXT("m22.wav"), NULL, SND_FILENAME | SND_ASYNC );fixConsoleSize(105,25);GamePrint();Gameinit();GameRun();while(over) //如果游戏结束了,是否重新开始。

c小游戏课程设计

c小游戏课程设计

c 小游戏课程设计一、课程目标知识目标:1. 让学生掌握C语言的基本语法和结构,能运用数据类型、变量、运算符等编写简单的程序;2. 使学生了解游戏设计的基本原理,理解游戏循环、用户交互、角色控制等概念;3. 培养学生运用C语言实现简单二维图形绘制和动画效果的能力。

技能目标:1. 培养学生独立编写、调试和运行C语言程序的能力;2. 培养学生运用C语言进行游戏设计和开发的基本技能,能完成一个简单的二维小游戏;3. 提高学生解决问题的能力,使其在遇到程序错误时,能够分析问题、查找原因并修正。

情感态度价值观目标:1. 激发学生对编程和游戏开发的兴趣,培养其主动学习和探究的精神;2. 培养学生的团队合作意识,使其在项目开发过程中,学会沟通、协作和分享;3. 引导学生认识到编程在现实生活中的应用价值,激发其创新意识和实践能力。

课程性质分析:本课程为实践性较强的学科拓展课程,结合C语言和游戏设计,旨在提高学生的编程能力和创新思维。

学生特点分析:学生处于中学阶段,具有一定的逻辑思维能力和计算机操作基础,对游戏有浓厚兴趣,但可能对编程知识掌握不足。

教学要求:1. 理论与实践相结合,注重学生的实际操作能力;2. 由浅入深,循序渐进,使学生在学习过程中逐步提高;3. 关注学生的个体差异,因材施教,提高学生的学习效果。

二、教学内容1. C语言基础:- 数据类型、变量和常量- 运算符、表达式和语句- 控制结构(顺序、选择、循环)- 函数的定义和调用- 数组的使用2. 游戏设计原理:- 游戏循环结构- 用户输入处理- 游戏状态管理- 角色控制与碰撞检测3. 图形绘制与动画:- 二维图形绘制- 动画原理与实现- 帧率控制4. 实践项目:开发一个简单二维小游戏- 游戏需求分析- 游戏设计(游戏界面、角色、场景等)- 编码实现- 测试与优化教学内容安排与进度:第一周:C语言基础(1-4章节)第二周:控制结构、函数与数组(5-8章节)第三周:游戏设计原理(1-3知识点)第四周:图形绘制与动画(4-6知识点)第五周:实践项目(1-4步骤)教材章节关联:《C语言程序设计》第1-8章,涉及C语言基础知识和控制结构;《计算机图形学基础》第1-3章,涉及二维图形绘制和动画原理;《游戏设计基础》第1-3章,涉及游戏设计原理和实践项目指导。

一种C语言小游戏程序设计

一种C语言小游戏程序设计

一种C语言小游戏程序设计游戏名称:猜数字游戏规则:1.程序生成一个1到100之间的随机数。

2.玩家每次可以输入一个1到100之间的整数作为猜测。

3.程序会根据玩家的猜测给出反馈。

-如果猜测的数字等于程序生成的随机数,提示玩家猜对了并结束游戏。

-如果猜测的数字大于程序生成的随机数,提示玩家猜测的数字过大。

-如果猜测的数字小于程序生成的随机数,提示玩家猜测的数字过小。

-玩家可以继续猜测直到猜对为止。

4.游戏结束后,程序会统计玩家猜测次数,并告诉玩家答案。

程序代码:```c#include <stdio.h>#include <stdlib.h>int mai//生成随机数种子//生成1到100之间的随机数int answer = rand( % 100 + 1;int guess;int count = 0;printf("欢迎参加猜数字游戏!\n");doprintf("请输入一个1到100之间的整数:"); scanf("%d", &guess);count++;if (guess > answer)printf("猜测的数字过大!\n");} else if (guess < answer)printf("猜测的数字过小!\n");} elseprintf("恭喜你猜对了!答案是:%d\n", answer); break;}} while (1);printf("你猜测了%d次。

\n", count);return 0;```游戏说明:以上代码实现了一个简单的猜数字游戏,玩家需要通过输入不同的数字来猜测程序生成的随机数,直到猜对为止。

首先,程序生成了一个1到100之间的随机数作为答案,然后通过一个循环来接收玩家的猜测,并根据猜测结果给出相应的提示。

c语言课程设计 综合型小游戏

c语言课程设计 综合型小游戏

#include<stdio.h>#include<stdlib.h>#include<time.h>int money1=10000,money2=10000,money=10000;int main(){void game1(int put);void game2(int put);int put,game,i;printf("单人模式请输入1,双人模式请输入2.\n");scanf("%d",&put);if(put==1)printf("你的本钱有一万元,你的任务是翻一倍,达到两万元则游戏胜利\n");if(put==2)printf("最后金钱多者为胜者\n");system("pause");system("cls");for(i=0;i<=1000;i++){printf("请选择游戏:1.思维风暴2.猜数字3.退出\n");scanf("%d",&game);if(game==1){game1(put);}if(game==2){game2(put);}if(game==3){break;}}if(put==1){if(money>=20000)printf("恭喜你通关了\n");if(money>=10000&&money<20000)printf("很遗憾未能通关,不过至少没亏本了\n");}if(put==2){if(money1>money2)printf("恭喜玩家一,你实在太强势了\n");if(money1<money2)printf("恭喜玩家二,简直是虐菜啊\n");if(money1==money2)printf("二位简直势均力敌啊,真是好基友\n");}system("pause");}void game1(int put){int JudgeA(int a[4],int b[4]),JudgeB(int a[4],int b[4]);int a[4],b[4];int c,i,j,m,n,k,l,under,under1,under2;printf("游戏规则:系统将随机产生一个四位不重复数字,你输入猜想的数字后\n");printf("系统将判断你猜对的数字个数和正确位置数,系统将以-A-B的形式提示,其中A 前面的数字表示位置正确的数的个数");printf("而B前的数字表示数字正确而位置不对的数的个数,如正确答案为5234,而猜的人猜5346,则是1A2B.\n **记住你只有八次机会**\n");system("pause");system("cls");if(put==1){for(l=0;l<100;l++){printf("请压底,最高为五千\n");for(m=0;m<=20;m++){scanf("%d",&under);if(under>5000||under<=0){printf("超过上限,请重新输入\n");continue;}elsebreak;}printf("请输入四位数\n");srand(time(NULL));do{a[0]=rand()%10;//产生首位随机数,对10取模得0~9的数字}while(a[0]==0);//若首位为零则重新选择for(i = 1;i < 4; i++){do{a[i]=rand()%10;//产生其它几位随机数for(j = 0; j < i; j++){if(a[i]==a[j])//若与前几位相同则跳出,重置a[i]{k=0;break;}elsek=1;//若不同,则该位有效,置标记k为1}}while(k!=1);}k=a[0];for(i=1;i<4;i++){k=k*10+a[i];}for(n=0;n<=8;n++){if(n==8){printf("you are lost,the number is %d\n",k);money=money-under*2;break;}scanf("%d",&b[0]);b[3]=b[0]%10;b[2]=(b[0]%100-b[3])/10;b[1]=b[0]%1000/100;b[0]=b[0]/1000;printf("%dA%dB\n",JudgeA(a,b),JudgeB(a,b));if(JudgeA(a,b)==4){printf("you win\n");printf("the number is %d\n",k);money=money+under*2;break;}elsecontinue;}printf("your money:%d\n重玩请输入1,返回请输入2\n",money); scanf("%d",&c);if(c==1)continue;if(c==2)break;}}if(put==2){printf("请play1压底,最高为五千\n");scanf("%d",&under1);printf("请play2压底\n");scanf("%d",&under2);for(m=0;m<=10;m++){if(under1>5000||under2>5000){printf("超过上限,请重新输入\n");continue;}elsebreak;}printf("play1's turn\n");printf("请输入四位数\n");srand(time(NULL));do{a[0]=rand()%10;}while(a[0]==0);for(i = 1;i < 4; i++){do{a[i]=rand()%10;for(j = 0; j < i; j++){if(a[i]==a[j]){k=0;break;}elsek=1;}}while(k!=1);}k=a[0];for(i=1;i<4;i++){k=k*10+a[i];}for(n=0;n<=8;n++){if(n==8){printf("you are lost,the number is %d\n",k);money1=money1-under1*2;break;}scanf("%d",&b[0]);b[3]=b[0]%10;b[2]=(b[0]%100-b[3])/10;b[1]=b[0]%1000/100;b[0]=b[0]/1000;printf("%dA%dB\n",JudgeA(a,b),JudgeB(a,b));if(JudgeA(a,b)==4){printf("you win\n");printf("the number is %d\n",k);money1=money1+under1*2;break;}elsecontinue;}printf("play1's money:%d\n",money1);system("pause");printf("play2's turn\n");printf("请输入四位数\n");srand(time(NULL));do{a[0]=rand()%10;}while(a[0]==0);for(i = 1;i < 4; i++){do{a[i]=rand()%10;for(j = 0; j < i; j++){if(a[i]==a[j]){k=0;break;}elsek=1;}}while(k!=1);}k=a[0];for(i=1;i<4;i++){k=k*10+a[i];}for(n=0;n<=8;n++){if(n==8){printf("you are lost,the number is %d\n",k);money2=money2-under2*2;break;}scanf("%d",&b[0]);b[3]=b[0]%10;b[2]=(b[0]%100-b[3])/10;b[1]=b[0]%1000/100;b[0]=b[0]/1000;printf("%dA%dB\n",JudgeA(a,b),JudgeB(a,b));if(JudgeA(a,b)==4){printf("you win\n");printf("the number is %d\n",k);money2=money2+under2*2;break;}elsecontinue;}printf("play2's money:%d\n",money2);}}int JudgeA(int a[4],int b[4]){int i,result1=0;for(i=0;i<4;i++){if(b[i]==a[i]) result1++;}return result1;}int JudgeB(int a[4],int b[4]){int i,j,result=0;for(i=0;i<4;i++){for(j=0;j<4;j++){if(a[i]==b[j]&&i!=j)result++;}}return result;}void game2(int put){int i,j,k,l,a,num,down,down1,down2,random;int nu[6];int *p;p=nu;system("pause");system("cls");printf("游戏规则:单人模式为猜数,双人模式为比大小\n");if(put==1){for(i=0;i<=100;i++){for(k=0;k<=100;k++){printf("请下注,最高为500\n");scanf("%d",&down);if(down>0&&down<=500)break;else{printf("超过上线,请重新下注\n");continue;}}printf("请输入所猜数\n");for(j=0;j<100;j++){scanf("%d",&num);if(num>0&&num<=6)break;else{printf("错误,请重新输入\n");continue;}}for(l=0;l<100;l++){srand((unsigned)(time(NULL)));random = rand()%6+1;if(random>0&&random<=6)break;}printf("正确数为%d,继续玩请输入1,返回菜单输入2\n",random);if(num==random){printf("***********************YOUWIN************************\n");money=money+down*2;}else{printf("***********************YOULOST***********************\n");money=money-down*2;}printf("你的金钱为%d\n",money);scanf("%d",&a);if(a==1)continue;if(a==2)break;}}if(put==2){for(i=0;i<100;i++){printf("游戏规则:玩家分别得到三次随机数字,总和大者胜利\n");printf("请下注,最高为一千\n");scanf("%d",&down);system("pause");for(j=1;j<=6;j++){if(j%2==1){srand((unsigned)(time(NULL)));p[j-1] = rand()%6+1;printf("玩家一第%d次得数为%d\n",j/2+1,p[j-1]);}else{srand((unsigned)(time(NULL)));p[j-1] = rand()%6+1;printf("玩家二第%d次得数为%d\n",j/2,p[j-1]);}system("pause");}printf("玩家一总得数为%d\n玩家二总得数为%d\n",p[0]+p[2]+p[4],p[1]+p[3]+p[5]);if(p[0]+p[2]+p[4]>p[1]+p[3]+p[5]){printf("玩家一获胜\n");money1=money1+down*2;money2=money2-down*2;}if(p[0]+p[2]+p[4]<p[1]+p[3]+p[5]){printf("玩家二获胜\n");money1=money1-down*2;money2=money2+down*2;}if(p[0]+p[2]+p[4]==p[1]+p[3]+p[5]){printf("恭喜\n");money1=money1+down*2;money2=money2+down*2;}printf("玩家一金钱为%d\n玩家二金钱为%d\n重玩输入1,返回输入2\n",money1,money2);scanf("%d",&a);if(a==1)continue;if(a==2)break;}}}。

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

程序设计实验
大作业
学院:
班级:
学号:
指导老师:
姓名:
实验项目名称:猜数字游戏成绩:
一、实验要求
根据所学知识编写一个小游戏--猜数字游戏
二、实验目的
为了加深对编程课程的基本知识的理解和掌握,并且掌握编程和程序调试的技巧通过程序的设计训练和提高学生的基本技能,掌握字符串的表示方法和字符串函数的功能、编程软件操作的基本知识、键盘上特殊键的获取以及图形方式下光标的显示,提高编程兴趣与编程水平,学会如何正确的书写程序设计说明文档,提高解决实际问题的能力,巩固语法规则的理解和掌握,学会通过源程序写出流程图,提高自学以及查阅资料的能力。

三、功能模块分析
1.系统能够随机产生一个1到1000的数字
2.比较输入数字与随机产生数字的大小
3.选择是否继续游戏
四、修改处
1.将输出内容由英文变为汉字
2.改变背景及输出字体的颜色
3将随机产生的数值范围由1-100变为1-1000
四、设计思路
# include<stdio.h>
# include<stdlib.h>
# include<time.h>
main()
{ void textbackground(int color);
system("color fc");
int a,b;
char c;
srand(time(NULL));
a=1+(rand()%1000);
printf("这有一个数字从1到1000.\n你能猜出它吗?\n输入你猜的数字.\n");
scanf("%d",&b);
while(b!=-1)
{
if(b==a)
{
printf("恭喜你猜对了!\n你喜欢再玩一遍吗?(y or n)?");
scanf("%c",&c);
scanf("%c",&c);
switch(c){
case 'y':
printf("这有一个数字.\n你能猜出它吗?\n输入你猜的数字.\n");
scanf("%d",&b);
break;
case 'n':
break;
}
}
while(b<a)
{
printf("低了,再试一次.");
scanf("%d",&b);
}
while(b>a)
{
printf("高了,再试一次.");
scanf("%d",&b);
}
}
}
未修改前截图
更改后截图
四、体会心得
通过本次试验我见识到了C语言的重要性和我在程序设计方面的不足,让我了解到要把书本知识转换为可以实际操作的东西是需要扎实的理论基础和严谨的逻辑思维的,同时我也发现了平时很多没有注意到的问题,弥补了我C 语言方面的不足,在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过实践的学习,我认识到学好计算机要重视实践操作。

相关文档
最新文档