求一猜数字游戏的思路??

一点思路……加点代码……本人在线求解……谢谢……
2025-01-19 11:17:29
推荐回答(4个)
回答1:

我知道你的痛苦,我是过来人,那给你参考参考我之前做的代码吧:#include
#include
#include
#include /*getch()等函数*/
#define TIME 3
#define N 3
int ws;
int num[N];
int initmsg()
{
int a;
printf(" O(∩_∩)O~ \n");
printf(" 数字记忆小游戏 \n");
printf("★★★★★★★★★★★★★★★★★★★ \n");
printf("★ 制作者: ★\n");
printf("★ 1: 开始 ★ \n");
printf("★ 2: 游戏说明 ★\n");
printf("★ 3: 退出 ★\n" );
printf("★★★★★★★★★★★★★★★★★★★\n");
printf(" O(∩_∩)O~ \n");
printf("\n 你的选择:");
scanf("%d",&a);
return a;
}
void gamemsg()
{
printf("1.输入要记忆的数字位数\n");
printf("2.输入完成后会出现3个相应位数的数字\n");
printf("3.这3个数字再3秒钟后消失\n");
printf("4.输入文字和符号时提示程序错误\n");
printf("5.输入刚才出现过的3个数字\n");
printf("6.3次输入的机会数字输入正确则继续游戏,3次机会全错 则提示游戏是否继续\n");
printf("7.输入Q或者q时 程序结束\n");
printf("按任一建继续");
getch();/*直接从键盘获取键值*/}
void clear()/*当没有换行时等待,输入换行时结束此函数的执行,是一个在时间上的缓冲函数*/
{
while(getchar() != '\n');/*当你遇到回车符后退出while循环,否则就无限循环下去*/
}
int weishu()
{
int mark;
char c;
while(1)
{
regetmark: mark= initmsg();
switch(mark)/*switch语句又称为开关语句,从多种供选择的情况中选择满足条件的一种情况执行的简便而又直观的多分支结构*/
{
case 1: goto start;
case 2: gamemsg(); system("cls");;goto regetmark;
case 3: exit(0);
}
start:printf("请输入位数(结束Q/q):");
if(scanf("%d", &ws))
{
if(ws >= 1 && ws <= 5)
break;/*是退出小循环*/
}
else if((c = getchar()) == 'q' || c == 'Q')
return 0;
else
printf("输入错误!请重试.\n");
clear();
}
clear();
return 1;
}
int play()
{
int i, a, b, n;
int in[N];
switch(ws)
{
case 1:a = 0, b = 10;break;
case 2:a = 10, b = 90;break;
case 3:a = 100, b =900;break;
case 4:a = 1000, b = 9000;break;
case 5:a = 10000, b = 90000;break;
}
n = 0;
for(i = 0; i < N; ++i)
n += printf("%d ", num[i] = rand()%b+a);
clock_t now = clock();
while((clock() - now) / CLOCKS_PER_SEC < TIME);
i = n;
while(i--)
putchar('\b');
printf("%*c", n, ' ');
i = n;
while(i--)
putchar('\b');
b = 3;
while(b)
{
printf("请输入:");
for(i = 0; i < N && scanf("%d", &in[i]); ++i);
if(i < N)
{
printf("输入有误!请重试.\n");
clear();
continue;
}
if(b > 0)
{
for(i = 0; i < N; ++i)
if(in[i] != num[i])
{
if(b > 1)
printf("输入错误, 你还有%d次机会:\n", b-1);
break;
}
if(i == N)
return 1;
}
b--;
}
return 0;
}
int main()
{
srand(time(0));
while(weishu())
{
if(!play())
{
clear();
printf("3次机会已用完, 是否重来?(y继续):");
if(getchar() != 'y') break;
else
clear();
}
else
printf("恭喜你!记忆正确.\n");
}
printf("Bye!");
start:return 0;
}

回答2:

1.先生成一个随机数2.系统提示请输入一个数字猜测;3.判断此数字是否与生成的随机数相等,若相等提示猜对了,若小了,提示猜小了,若大了,提示猜大了,4.进行循环,一直到提供可以猜测的次数为止(假设猜10次),当猜了10次还没有才对,提示你失败了,结束程序

回答3:

#include #define NXN 123 /*要猜的数值*/ int main(){ int a = 1; int N; while(a){ printf("你猜的数值:"); if(1 == scanf("%d", N){ if(NXN > N){ printf("继续猜,小了:"); continue; } else if(NXN < N){ printf("继续猜,大了:"); continue; } else if(NXN == N) a = 0; } else printf("请正确输入:"); } printf("对了,拜拜!"); return 0;}

回答4:

什么猜数字? 你定一个数字让别人猜?