写python程序生成不重复的4个数。人每次输入一个猜测。程序输出2个数字,第一个是数对位置也对的个数,第二个数是数对但位置不对的个数。8次之内猜出来,打印你赢了,否则打印你输了
时间: 2024-10-06 22:05:31 浏览: 28
要编写这样一个Python程序,你可以使用`random`模块来生成四个随机不重复的整数,然后通过用户输入来检查他们的猜测。下面是实现这个功能的一个示例:
```python
import random
def generate_numbers():
numbers = [i for i in range(1, 10) if i not in (5, 6)] # 为了避免5和6直接给出提示,我们先排除这两个数字
random.shuffle(numbers)
return numbers[:4] # 返回前四个随机数
def check_guess(guessed_numbers, correct_numbers):
count = 0
wrong_positions_count = 0
for guessed, correct in zip(guessed_numbers, correct_numbers):
if guessed == correct:
count += 1
else:
wrong_positions_count += 1
return count, wrong_positions_count
correct_numbers = generate_numbers()
guesses_taken = 0
while guesses_taken < 8:
print("请输入四个整数(用逗号分隔):")
user_guess = input().split(',')
# 检查用户是否输入了四个数字
if len(user_guess) != 4:
print("无效的输入,请尝试四次数字!")
continue
guessed_numbers = [int(num) for num in user_guess]
if all(0 <= num <= 9 and num not in guessed_numbers for num in correct_numbers):
print("输入的数字中有重复,请重新输入!")
continue
count, wrong_positions_count = check_guess(guessed_numbers, correct_numbers)
guesses_taken += 1
if count == 4:
print(f"恭喜你在{guesses_taken}次内猜出正确的数字!你赢了!")
break
elif wrong_positions_count == 0:
print(f"你猜对了位置,但在其他地方错了! ({count}/{4})")
else:
print(f"你猜的位置有误({wrong_positions_count}/{4}), 正确的是:{correct_numbers}")
if guesses_taken == 8:
print("很遗憾,你没有在规定的次数内猜出正确的数字。你输了!")
```
在这个程序中,我们首先生成四个不重复的随机数作为目标。然后,在循环中让用户输入四个数字,如果不符合要求就提示并继续下一轮。每次比较用户的猜测和正确答案,计算匹配位置的数量和错误位置的数量,并在达到8次猜测限制后判断胜负。
阅读全文