中易网

c语言编写数字记忆游戏

答案:4  悬赏:60  
解决时间 2021-12-30 14:42
用C语言编写一个数字记忆游戏 满足以下条件:
1.输入要记忆的数字 位数
2.输入完成后 会出现3个 相应位数的数字
3.这3个数字 再1秒钟后消失
4.输入 文字 和符号时 提示程序错误
5.输入刚才出现 过的 3个数字
6.3次输入的 机会,数字输入正确则继续游戏,3次机会全错 则提示游戏是否继续
7.输入Q或者q时 程序结束
最佳答案
我写这类交互式的小程序代码一般都比较丰满,试试看吧XD:

#include <stdio.h>
#include <time.h>
#include <stdlib.h>

#define TIME 1
#define N 3

int ws;
int num[N];

void clear()
{
while(getchar() != '\n');
}

int weishu()
{
char c;
while(1) {
printf("请输入位数(结束Q/q):");

if(scanf("%d", &ws)) {
if(ws >= 1 && ws <= 5)
break;
}
else if((c = getchar()) == 'q' || c == 'C')
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 = 89;break;
case 3:a = 100, b = 899;break;
case 4:a = 1000, b = 8999;break;
case 5:a = 10000, b = 89999;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 = N;
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;
}
全部回答
终于写好了 写的比较粗糙 #include <stdio.h> #include <Stdlib.h> #include <windows.h> #include <time.h> const int arrsize=3; int main() { int seed,arr[arrsize],rem[arrsize],i,tag=0,wrong=0; char choice[2],answer; begin: printf("输入位数1-5 输入q/Q结束:"); scanf("%s",&choice); srand(time(NULL)); if(choice[0]=='q'||choice[0]=='Q') exit(0); fflush(stdin); seed=atoi(choice); if(seed>5||seed<1) { printf("输入错误\n");goto begin; } switch(seed) { case 1: for(i=0;i<3;i++) arr[i]=rand()%9+1; break; case 2: for(i=0;i<3;i++) arr[i]=rand()%99+1; break; case 3: for(i=0;i<3;i++) arr[i]=rand()%999+1; break; case 4: for(i=0;i<3;i++) arr[i]=rand()%9999+1; break; case 5: for(i=0;i<3;i++) arr[i]=rand()%99999+1; break; } printf("记忆数字如下\n"); for(i=0;i<3;i++) printf("%d ",arr[i]); Sleep(1000); system("cls"); printf("\n输入你要记忆的数字 按空格键分开\n"); for(i=0;i<3;i++) { scanf("%d",&rem[i]); if(rem[i]==arr[i]); else { tag=1;break; } } if(tag==0) printf("记忆正确\n"); else { printf("记忆错误\n");wrong++; } if(wrong>3) { printf("你已经错误超过3次了,继续游戏y/n"); answer=getchar(); if(answer=='n') exit(0); } goto begin; system("pause"); }

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
static char *question[]={"多出各一半","闭着口,却在笑","五口人说话",
"一来就有学生","学上段,会下段","挖西边,补东边"};
static char *answer[]={"岁","哈","语","尝","扑"};

static char *inspi[]={"差一点!你一定行的!","努力!请再试一次 !","差一点!你一定行的!","差一点!你一定行的!","差一点!你一定行的"};
int main()
{
char input[20]="";
int i=0,j=0;

for (i=0;i<7;)
{

while (true)
{
printf("%s:\n",question[i]);
scanf("%s",input);

if (strcmp(input,answer[i])==0)//字符串比较
{
if (i<6)
{
system("cls");//清屏,如果你的vc编译这句不过就去掉。。有的电脑用不了跟vc版本有关
printf("你太有才了!\n");
}
else
printf("恭喜你闯关成功!\n");

i++;
break;
}
else
{
system("cls");//清屏,如果你的vc编译这句不过就去掉。。有的电脑用不了跟vc版本有关
printf("%s\n",inspi[i]);
}
}



}

}

#include <stdio.h> #include <stdlib.h> #include <time.h> int main() { char ch; int i, m, r[3], u[3], c; clock_t t; srand((unsigned)time(NULL)); do { while(1) { printf("请输入要记忆数字的位数,结束程序请输入Q或q:"); fflush(stdin); ch = getchar(); if(ch == 'Q' || ch == 'q' || '1' <= ch && ch <= '5') break; else printf("输入错误!\n"); } if(ch == 'Q' || ch == 'q') break; ch -= '0'; m = 1; for(i = 1; i < ch; i++) m *= 10; for(i = 0; i < 3; i++) printf("%d ", r[i] = rand() % (m * 9) + m); t = clock(); while(clock() - t < CLOCKS_PER_SEC); for(i = 0; i < (ch + 1) * 3; i++) printf("\b"); for(i = 0; i < (ch + 1) * 3; i++) printf(" "); for(i = 0; i < (ch + 1) * 3; i++) printf("\b"); c = 0; do { for(i = 0; i < 3; i++) if(scanf("%d", &u[i]) != 1) { printf("程序出错!\n"); fflush(stdin); i = -1; } if(r[0] == u[0] && r[1] == u[1] && r[2] == u[2]) break; c++; } while(c < 3); if(c < 3) ch = 'y'; else { printf("是否继续游戏?"); fflush(stdin); ch = getchar(); } } while(ch == 'Y' || ch == 'y'); return 0; }
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
惱聒的意思是什么?惱聒的释义是什么啊?
FIAT博悦用几号油?
仓库用垫板价格贵不贵?
海贼王压缩包百度云
褊察的意思是什么啊?请解释下!
《最好的时光在路上》这本书怎么样?
徇通的意思是什么?徇通的释义是什么啊?
百度里面的“我的通知”怎么删除掉
撩虎的意思是什么啊?请解释下!
考訂的意思是什么?考訂的释义是什么啊?
请问伤残国家机关工作人员的护理费是由那个部
苹果平板放音乐的声音是不是比手机大
一沖性子的意思是什么?一沖性子的释义是什么
村戍的意思是什么啊?请解释下!
微商管家辅助功能已打开为什么老提示没打开
推荐资讯
1海里等于多少公里,1英里等于多少公里
犯盗窃判刑入狱2年如何保释
蜡笔张鑫的女友是谁啊
你认为中国要真正崛起成为世界大国,还需要在
芦子涧村委会地址有知道的么?有点事想过去!
我家楼下施工,每次三更半夜十二点以后开始,
庭院门十大品牌
见下ろすあなたはだれ? 这句日语确切的意译
已知指针ha和hb分别指向两个单链表的头结点,
丙申 丙申 壬戌 己酉 帮忙给分析一下八字日干
flash cs5 制作旗子飘动效果, 循环播放的时
猫咪桌游吧DIY地址在什么地方,我要处理点事
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?