c语言猜数字游戏知识点
创始人
2024-10-23 02:37:50
0

一、c语言猜数字游戏编程思路

分析:

先产生一个随机数N。

然后输入数I,如果A大于N,则提示大于信息。

如果I小于N,则提示小于信息。

直到I==N,则输出成功信息。

这是我用C语言写的。

环境:

WIN-C

,TORBO

C,如果是C++环境把倒数第二排getch();删掉!

已经调试成功:

main()

{

int

i=0,n;

srand(time(0));

n=rand()%100+1;

while(i!=n)

{printf("please

input

a

number:\n");

scanf("%d",&i);

if(i>n)printf("this

number

is

too

big!\n");

if(i

number

is

too

smaller!\n");

}

if(i==n)

printf("PASS!%3d",n);

getch();

}

提示:

srand(time(0));

n=rand()%100+1;

是用来生成一个1~100以内的随机数,如果你改,把100改成50或者200。如(n=rand()%50+1;

二、c语言题 猜数字游戏

#include

#include

#include

#include

#include

void c_input(char*str)

{

int i,j;

input:for(i=0;i<4;i++)

{

str[i]=getch();

putchar(str[i]);

}

putchar('\n');

for(i=0;i<4;i++)

{

if(str[i]<'0'||str[i]>'9')

{

printf("无效输入,请重新输入:");

goto input;

}

for(j=0;j

{

if(str[i]==str[j])

{

printf("无效输入,请重新输入:");

goto input;

}

}

}

}

void c_game(const char*temp)

{

int i,j,ci;

char in[4];

char out[5]="0A0B";

for(ci=0;ci<8;ci++)

{

printf("第%d次输入:",ci+1);

c_input(in);

for(i=0;i<4;i++)

{

if(in[i]==temp[i])

{

out[0]++;

}

else

{

for(j=0;j<4;j++)

{

if(in[i]==temp[j])

{

out[2]++;

}

}

}

}

printf("%s\n",out);

if(strcmp(out,"4A0B")==0)

{

printf("游戏成功,按下任意键返回主菜单。。");

getch();

return;

}

out[0]='0';

out[2]='0';

}

printf("游戏失败,按下任意键返回主菜单。。");

getch();

}

void c_rand()

{

int i,j;

char data[]="0123456789";

char temp[4];

system("cls");

printf("**随机模式**\n\n");

for(i=0;i<4;i++)

{

j=rand()%(10-i);

temp[i]=data[j];

data[j]=data[10-i-1];

}

c_game(temp);

}

void c_printf()

{

char temp[4];

system("cls");

printf("**用户输入模式**\n\n");

printf("请输入测试数据:");

c_input(temp);

system("cls");

printf("**用户输入模式**\n\n");

c_game(temp);

}

void main()

{

srand(time(NULL));

while(1)

{

system("cls");

printf("(1)随机产生数据\n");

printf("(2)用户输入数据\n");

printf("(3)退出游戏\n");

printf("choice:");

switch(getch())

{

case'1':c_rand();break;

case'2':c_printf();break;

case'3':exit(1);

}

}

}

在VC6下编译通过,但因为没有用C++特征,也可在其它C的编译器上试试

三、c语言:猜数字游戏代码

加了得分榜,没写排序,没时间了。自己加一下就OK

#include

#include

#include

#include//以上的是要用到的头文件

int score=0;

void SELECT(int);

void Guess(int,int);

void Select();

void letsgo();

void NB(int);//以上的是函数原型

struct PLAYER

{

char name[10];

int plscore;

};

void save()

{ printf("您的得分是%i",score);

PLAYER player;

printf("请输入姓名:");

scanf("%s",player.name);

player.plscore=score;

FILE*fp;

if((fp=fopen("record.txt","ab"))==NULL)

{

printf("不能打开文件!");

exit(0);

}

fwrite(&player,sizeof(PLAYER),1,fp);

printf("记录保存完毕!");

fclose(fp);

}

void print()

{

printf("分数榜:");

FILE*fp;

if((fp=fopen("record.txt","rb"))==NULL)

{

printf("不能打开文件!");

exit(0);

}

PLAYER player;

while(fread(&player,sizeof(PLAYER),1,fp)==1)

{

printf("\n姓名:%s\n",player.name);

printf("分数:%i\n",player.plscore);

}

fclose(fp);

}

void main()

{

char end;

printf("\t\t欢迎光临!!\n\t在这里我将来测试你的运气!\n");

printf("请你猜下数字,但机会就只有三次!!\n");

printf("\n 1、开始游戏^__^\n 2、我是倒霉鬼,我不玩\n 3、查看分数榜");

printf("请选择1或2\n");

Select();

printf("\n按任意键退出");

fflush(stdin);

end=getchar();

if(score>0)

save();

printf("Thanks For Playing\2 886\n");

}

void Select()

{

int s;

static int lihai=0;

fflush(stdin);

scanf("%d",&s);

switch(s)

{

case 1:

letsgo();break;

case 2:

printf("唉,你不想玩,我就不逼你咯\n");exit(0);

case 3:print();

break;

default:

lihai++;

if(lihai==3||lihai==5)

{

NB(lihai);

break;

}

printf("你输入的是什么啊!重新输入< 1或 2>\n");

Select();

}

}

void letsgo()

{

int select;

printf("请你选择猜数字的难度\n");

printf("1、简单->猜测 0到 9的数字\n");

printf("2、一般->猜测 0到 99的数字\n");

printf("3、困难->猜测 0到 999的数字\n");

printf("<请不要乱选!!>\n");

scanf("%d",&select);

switch(select)

{

case 1:SELECT(10);break;

case 2:SELECT(100);break;

case 3:SELECT(1000);break;

case 4:print();

default:

{

printf("请不要乱选!!\n");

letsgo();

}

}

}

void NB(int l)

{

char a[20];

static int jihui=0;

printf("\n老大!我服了你,%d次都输入错误。\n",l);

printf("\n<可能你在捣乱~~>\n");

printf("(如果不想结束,请输入[sorry]<中括号内的>否则结束游戏)\n");

fflush(stdin);

gets(a);

if(strcmp(a,"sorry")==0||strcmp(a,"SORRY")==0)

{

jihui++;

if(jihui==2)

{

printf("\n死性不改。道歉也没有用了!\n");

goto end;

}

printf("好吧。给你次机会<请输入 1或 2>\n");

Select();

}

end:

printf("");

}

void SELECT(int n)

{

int num;

srand((unsigned)time(NULL));

num=rand()%n;

if(n==10)

{

n=3;

printf("\n你有%d次猜测的机会\n",n);

}

if(n==100)

{

n=5;

printf("\n你有%d次猜测的机会\n",n);

}

if(n==1000)

{

n=7;

printf("\n你有%d次猜测的机会\n",n);

}

Guess(num,n);

}

void Guess(int num,int n)

{

int search,k,o;

static int i=1;

char ans;

if(n==3)

k=10;

if(n==5)

k=100;

if(n==7)

k=1000;

o=(num-k/1)%k;

if(o<0)

o=0;

printf("\n请猜这个数是多少(在<%d>到<%d>):",o,(k/5+num)%k);

fflush(stdin);

scanf("%d",&search);

if(num>search)

printf("\n小了\n");

if(num

printf("\n大了\n");

if(num==search)

{

printf("\n恭喜您了!你在第%d次猜对了\n",i);

score+=10;

printf("是否继续:\n");

fflush(stdin);

ans=getchar();

if(ans=='y'||ans=='Y')

{

i=1;

letsgo();

}

}

else

{

i++;

if(i<=n)

Guess(num,n);

else

{

printf("\n你的%d次机会已经没有了!!,答案是%d\n",i-1,num);

printf("是否继续:\n");

fflush(stdin);

ans=getchar();

if(ans=='y'||ans=='Y')

{

i=1;

letsgo();

}

}

}

}

满意请采纳。

相关内容

热门资讯

百科知识游戏卡片制作方法 一、游戏常识英语1.【百科知识问题(英文好的来)1 1.Which of the following...
百科知识答题游戏 知乎 一、我们为什么热衷于知识竞赛“你确定吗?”最近风靡的知识竞赛类游戏,是否让你想起当年的开心辞典、幸运...
安全知识幼儿园玩游戏 一、幼儿入园安全小常识1.幼儿园健康安全小常识有哪些 1、教育幼儿不要随身携带玩具及锐利的器具来园,...
爱玩游戏必备知识有哪些 一、成年人都爱玩那些类型的游戏呢‍今年的春节假期是独特的。在疫情的影响下,相信会有不少人...
爱猜性知识游戏攻略2 一、仙剑奇侠传二攻略仙剑2事件全流程(不想太依赖攻略或打算进行同人创作的朋友看进来^-^)[小虎十四...
dnf腾讯游戏安全知识答题答案 一、2021腾讯游戏安全知识答题答案A、都是一起玩游戏的,借给他玩玩呗B、账号密码,不要告知其他人。...
安全知识竞赛活动小游戏 一、关于知识的竞赛的名称1.国语知识小竞赛 2.微博知识小竞赛国语知识小竞赛 1.知识竞赛口号有哪些...
cf游戏安全知识答题全部正确答... 一、cf生化大赏答案大全2023cf生化奖励活动的答案是什么?2023年最新答题活动已经开始。玩家可...
3d游戏的技术知识 一、3d技术原理是什么3D技术:是靠人两眼的视觉差产生的。人的两眼之间一般会有8厘米左右的距离。要让...
cf一些基本知识有哪些游戏 一、CF介绍一下所有的游戏模式爆破模式:进攻方需要使用C4炸弹摧毁目标物,而防守方则要阻止目标物被摧...