C语言 猜数字游戏代码

时间:2013.07.11 发布人:80后我形我show

C语言 猜数字游戏代码

已解决问题

谷歌80后我形我show用户在2013.07.11提交了关于“机械师C语言 猜数字游戏代码”的提问,欢迎大家涌跃发表自己的观点。目前共有1个回答,最后更新于2024-11-06T11:08:57。当用户选择开始游戏时,系统会提示用户排行榜上猜数字成绩的最好记录,并让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确但位置不正确的数字字数。如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出了4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前五名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,排行榜中总**显示前5名玩家的排行,如有新的记录**生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。希望大家能够帮助她。

详细问题描述及疑问:当用户选择开始游戏时,系统会提示用户排行榜上猜数字成绩的最好记录,并让用户逐次猜数字,用户每次猜数字后系统会给出本次猜数字的结果提示,如位置和数字都正确的数字个数、数字正确但位置不正确的数字字数。如果用户猜数字的次数超过10次,则提示用户游戏失败,如果在10次之内猜出了4个数字和正确的顺序,则提示用户猜数字成功,并到排行榜中进行比较,如果排名在前五名,则计入排行榜中,以便其他用户查看。在排行榜查看功能中,用户可以查看当前的游戏排行,排行榜中总**显示前5名玩家的排行,如有新的记录**生,则插入到排行榜中,并把排行榜中位次最末的记录挤出排行榜。在帮助模块,用户可以查看游戏规则,当熟悉规则后可以退出帮助模块。期待您的答案,感谢你,我会记得你对我的好的 !

希望以下的回答,能够帮助你。

第1个回答

用户名:来自LoNgYun2932  

准希其混短数#include<stdio.h>
#includ存进错会油课反案e<stdlib.h>
#include<time.h>
intEachDiff(inta问答[],intn)
{
in祖ti,j;
for(i=0;i<n;i++)
for(j=i+1;j<n控火汉领引酸律刑;j++)
if(a[i]=屋刚旧响县去种慢次位=a[j])
retur始训向片n0;
else
return1;
}
intJudgeA(inta[],intb[],i素关等日又ntn)
{
inti,result=0;
for(i=0;i<n;i++)
{
if(a[i]==b[i])result++;
}
returnresult;
}
intJudgeB(inta[],intb[],intn)
{
inti,j,result=0;
for(i=0;i<n;句黑齐扬印容征沉要i++)
for(j=0;j<n;j++)
if(a[i]==b[j]&&i!=j){result++;bre**;}
returnresult;
}
voidCreateNu女意省m(inta[],i每思牛技台同死威烧慢坐ntn)
{
inti;
srand(time(0不有策西概味维));
do
{
for(i=0;i<n;i++)a[i]=rand()%10;
}while(!EachDiff(a,n));
}
intJudgeInput(inta[],intn)
{
inti;
if(!EachDiff(a,n))
return0;
else
for(i=0;i<n;i++)
if(a[i]>9||a[i]<0)
return0;
else
return1;
}
intmain()
{
//system();
inta[4],b[4主料另界案],i;
intfth=1;
printf("作者Dante--谢煜东"加任维);
printf("\t\t欢迎来到猜数字游戏\n\n");
printf("计算机想好了一个4位无重复数字,首位可以为零。\n例如杨传系福手顶杂行业同:0913是可以的,3502也是可以的,6787不可以。\n");
printf("现在您想办法把这个数字猜出来。\n\n");
printf("每猜一个数字,计面治放格格诗四算机会根据这个数字给出几A几B烈胶断顺革史尔轻合落:\n其中A前面的数字表示位置正确的数的个数,\n而B前的数字表示数字正确而位置不对的数的个数。\n\n");
无目倒训却困使起再乙型//printf("如正确答案为5234,而猜的人猜5346,则是1A2B。\n其中有一个5的位置对了,记为1A;\n而3和4这两个数字对了,而位置没对,因此记为2B;\n合起来就是1A2B。\n\n");
printf("记住!1:你**有8次机会,2:输入的数字不能重复。\n\n");
printf("当出现\"第几次:\"字样并等待的时候,您就可以输入你要猜测的四位数字,\n输入完之后回车确认。祝您开心\n\n明白之后任意键游戏正式开始!");
getchar();
CreateNum(a,4);
system("cls");
printf("\t\t现在可以输入你要猜的四位数字了,输入之后回车确认。\n");
while(fth<=8)
{
intt=1000;
printf("第%d次:",fth);
scanf("%d",amp;b[0]);
for(i=0;i<3;i++)
{
b[i+1]=b[i]%t;
b[i]=b[i]/t;
t/=10;
}
for(i=0;i<4;i++){printf("%d",b[i]);}
if(JudgeInput(b,4)==0)
{
printf("您的输入有问题,请重新输入\n");
conti**e;
}
if(JudgeA(a,b,4)==4)
{
printf("\t结果:答对了!好聪明!");
system("pause");
//return;
}
printf("\t结果:您有%d个数字和位置都对了,有%d个数字对了而位置没对\n",JudgeA(a,b,4),JudgeB(a,b,4));

fth++;
}
printf("\n很遗憾。正确答案是:");
for(i=0;i<4;i++)
printf("%d",a[i]);
printf("下次再玩吧!88\n");
system("pause");

return0;
}