猜数字游戏c语言知识点
创始人
2024-11-30 09:25:23
0

一、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();

}

}

}

}

满意请采纳。

二、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语言猜数字游戏编程思路

分析:

先产生一个随机数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;

相关内容

热门资讯

cf游戏安全知识答题全部正确答... 一、cf生化大赏答案大全2023cf生化奖励活动的答案是什么?2023年最新答题活动已经开始。玩家可...
猜歌猜知识的游戏规则 一、猜歌名游戏规则有哪些1、本轮游戏共需20人参加,分成两组,每组十人。2、当主持人放出音乐后,猜到...
超级玛丽三代游戏知识讲解 一、网络单机游戏超级玛丽,为什么通关时必须要摘下旗子我相信小时候大家都有玩过或者是听过这款非常经典的...
dnf腾讯游戏安全知识答题答案 一、2021腾讯游戏安全知识答题答案A、都是一起玩游戏的,借给他玩玩呗B、账号密码,不要告知其他人。...
设计一款游戏需要什么知识 一、游戏设计需要什么基础游戏设计需要的基础:1、知识基础:游戏设计原理、用户体验设计程序与方法、二维...
三年级测量知识的游戏题目 一、三年级测量周长的三种方法三年级测量周长的三种方法包括直接测量、使用长度单位和利用比例关系。1、直...
奇怪的冷知识游戏下载中文 一、你知道哪些关于游戏中的奇怪冷知识许多网友们在玩游戏的时候都会总结一些游戏当中的冷知识,将这些知识...
能源利用的理论知识游戏 一、飞船太空采集能源的游戏下载地址:类型:安卓游戏-冒险解谜版本:v0.1大小:61.41M语言:中...
能科普知识的小游戏下载 一、让你爱不释手的益智类小游戏有哪些游戏市场现如今可谓竞争激烈,每一款游戏也是极尽自己的能力,想打造...
扩大知识面游戏有哪些类型 一、工作之余,有哪些能够很好地拓展知识面的手机小游戏在现在这个游戏横生的时代,游戏从一开始简单的单机...