该游戏可以由程序随机产生一个N位数字,或由用户输入一个N位数字,作为待猜测数字(各位数字不重复出现)。玩游戏者开始猜测后,可以有M次机会输入数字来匹配上面的待猜测数字。用户每输入一次,系统给出本次猜测结果:A表示位置正确且数字正确,B表示数字正确而位置不正确。比如:2A1B,表示2位位置正确且数字正确,1位数字正确但是位置不正确。
某次猜中后,游戏结束。若M次机会用完,游戏也结束。菜单格式如图。
2.基本功能
1)产生待猜测数据,随机生成,或由用户输入。需要判断合法性:N位数字不重复出现。
2)提供最多M次机会猜测,每次反馈猜测结果。成功立即结束猜测返回主菜单。
3)游戏开始前输入用户名,初次使用进行用户注册。游戏成功与否都能返回主菜单。
4)查看结果:查看某一个用户的历史猜测结果,最少猜测次数,成功率;
5)参数M,N可以自由设置
3.拓展功能:
记录不同的游戏用户的猜测结果,设置猜测排行榜,设置游戏难度等等其它自定义拓展功能。
#include<stdio.h>
#include<stdlib.h>
#include<time.h>
void main()
{
int ret = 0;
int i = 0;
int rnd = 0;
int cnt=0;
srand((unsigned int)time(NULL));
ret = rand()%89999+10000;
printf("Ganestart!\n");
while(1)
{
printf("请输入一个数:");
scanf("%d",&rnd);
cnt++;
if(rnd>ret){
printf("太大了! \n");
}else if(rnd<ret){
printf("太小了! \n");
}else{
printf("炸弹爆炸,嘭! \n");
break;
}
}
printf("共猜了%d次",cnt);
return 0;
}
参考一下:https://blog.csdn.net/Lsxlsxls/article/details/80054382
如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <time.h>
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<i;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);
}
}
}