注册 登录
编程论坛 C语言论坛

求教c一个猜数小游戏

mldqs 发布于 2019-11-19 13:56, 1605 次点击
设计并实现一个猜数字游戏系统。系统记录用户名及玩游戏的过程,退出系统时显示相关信息,如:
张三,你玩了5局猜数字游戏,3赢2负。

【游戏规则】
① 计算机随机生成四位数字(每位0-9,且互不相同);
② 提示用户输入4个不重复数字;
③ 当用户输入的数字位置与数值都正确时,以表示;
④ 当用户输入的数字正确,但位置不正确时,以表示;
⑤ 若用户猜8次仍未猜中,则游戏结束。
仅以一例来说明规则:假定谜底是0359,而用户猜的是0245,则显示反馈“1A1B”,因为’0’的数字和位置均正确,故显示为1A,而’5’的数字正确,位置不正确,故显示为1B。

【基本要求】
系统具有如下功能:
谜底由计算机随机生成,且必须四位数字各不相同。例如:不可能生成1383这样的谜底,因为数字’3’重复了两次。
与用户的交互界面为字符式菜单。游戏程序通常都是交互式的,几乎没有非交互式的游戏程序。这是当然的,因为它需要读取游戏玩家的输入并作出反馈。
对于非法输入的情形能给出错误消息,一旦发现一个错误后,允许终止程序。

【测试用例】
假定计算机生成的谜底为1358,而用户的各次输入如下(以下划线标出):
第1次猜测:1426
反馈:1A0B
第2次猜测:3426
反馈:0A1B
第3次猜测:1530
反馈:1A2B
第4次猜测:1573
反馈:1A2B
第5次猜测:1538
反馈:2A2B
第6次猜测:1358
哈!猜对了,你好棒!
反之,若猜8次仍未中,则公布谜底。
3 回复
#2
吹水佬2019-11-19 14:49
1、顺序随机取4个不重复字符('0'~'9'),a[i]
2、顺序输入4个字符,有重复或非('0'~'9')无效,b[i]
3、如果a[i]==b[i],++A。如果a[i]==b[i+n],++B。
#3
mldqs2019-11-19 15:10
回复 2楼 吹水佬
如果不用数组呢,谢谢
#4
吹水佬2019-11-19 15:34
以下是引用mldqs在2019-11-19 15:10:45的发言:

如果不用数组呢,谢谢

用一块内存,这样说应该可以。
1