用python计算机随机生成一个每一位都不重复的四位数,每位数是从0到9(包括0和9)的随机整数, 给你8次机会来猜这个数,每猜一次,计算机就要根据比对结果给出几A几B, 其中A前面的数字表示位置正确的数的个数,而B前的数字表示数字正确而位置不对的数的个数。 例如:正确答案为 5234,而猜的人猜 5346,则是 1A2B,其中有一个5的位置对了,记为1A, 而3和4这两个数字对了,而位置没对,因此记为 2B,合起来就是 1A2B。 接着你再根据出题者的几A几B继续猜,直到在8次机会内猜中(即 4A0B)为止。
时间: 2024-02-24 09:55:40 浏览: 139
好的,下面是一个简单的实现,供您参考。
```python
import random
# 生成不重复的四位数
def generate_number():
number = random.sample(range(10), 4)
return ''.join(map(str, number))
# 比较两个数的位置和数字,并返回A和B的数量
def compare_numbers(answer, guess):
a, b = 0, 0
for i in range(4):
if answer[i] == guess[i]:
a += 1
elif answer.find(guess[i]) >= 0:
b += 1
return a, b
# 主程序
def main():
answer = generate_number() # 生成随机数
print('开始猜数游戏!')
for i in range(8):
guess = input('请输入一个四位数(每个数字不重复):')
if len(guess) != 4 or not guess.isdigit() or len(set(guess)) != 4:
print('输入不合法,请重新输入!')
continue
a, b = compare_numbers(answer, guess)
print(f'{a}A{b}B')
if a == 4:
print('恭喜你猜中了!')
return
print(f'很遗憾,你没有在8次机会内猜中。正确答案是:{answer}')
if __name__ == '__main__':
main()
```
注意,这只是一个简单的实现,还有很多可以改进的地方,比如可以增加输入检查和错误提示、增加更多的游戏提示和互动等等。希望能对您有所帮助。
阅读全文