设计一个猜数字游戏,系统随机生成一个0000-9999范围内的整数(数字有重复的去除),用户每次输入1个4位整数,程序返回xAyB,其中A表示单个数字和位置都对,B表示单个数字对但位置不对,x、y分别是A、B两种情况的次数。用户可以根据反馈一直猜,直到全对为止(返回:4A0B) python
时间: 2023-12-01 20:03:38 浏览: 196
好的,以下是猜数字游戏的代码:
```python
import random
# 随机生成一个没有重复数字的四位数
def generate_number():
digits = list(range(10))
random.shuffle(digits)
if digits[0] == 0:
digits[0], digits[1] = digits[1], digits[0]
return digits[:4]
# 判断用户输入和随机数的匹配情况
def check_guess(guess, answer):
a = b = 0
for i in range(4):
if guess[i] == answer[i]:
a += 1
elif guess[i] in answer:
b += 1
return (a, b)
# 主程序
def game():
answer = generate_number()
print('欢迎来玩猜数字游戏!')
while True:
guess = input('请输入一个四位数(不能有重复数字):')
guess_digits = [int(d) for d in guess]
if len(guess_digits) != 4 or len(set(guess_digits)) != 4:
print('输入错误,请重新输入。')
continue
a, b = check_guess(guess_digits, answer)
print(f'{a}A{b}B')
if a == 4:
print('恭喜你,猜对了!')
break
game()
```
每次运行时,系统会随机生成一个四位数,然后用户输入一个四位数进行猜测,系统会返回该次猜测与随机数的匹配情况,直到用户猜中为止。
阅读全文