使用python且不使用自定义函数,基于以下规则写出代码猜数字游戏。 游戏规则: 1. 程序随机生成一个四位数的整数,每个数字都不相同。 2. 玩家每次输入一个四位数,程序会根据以下规则给出反馈: - 如果玩家输入的数字和程序生成的数字完全相同,则提示玩家猜对了,游戏结束。 - 如果玩家输入的数字和程序生成的数字有一个或多个数字相同,并且这些数字的位置也相同,则提示玩家猜中了几个数字,并让玩家继续猜。 - 如果玩家输入的数字和程序生成的数字有一个或多个数字相同,但这些数字的位置不相同,则提示玩家猜中了几个数字,但位置不对,并让玩家继续猜。 3. 玩家可以猜测多次,直到猜中为止。
时间: 2023-06-25 13:03:52 浏览: 88
以下是基于规则写出的Python代码:
```python
import random
# 生成一个四位数的整数,每个数字都不相同
def generate_number():
numbers = list(range(10))
random.shuffle(numbers)
return ''.join(str(i) for i in numbers[:4])
# 判断两个数字是否完全相同
def is_same(number1, number2):
return number1 == number2
# 判断两个数字中有多少个数字相同并且位置相同
def count_same_position(number1, number2):
count = 0
for i in range(4):
if number1[i] == number2[i]:
count += 1
return count
# 判断两个数字中有多少个数字相同但位置不同
def count_same_number(number1, number2):
count = 0
for i in range(4):
if number1[i] in number2 and number1[i] != number2[i]:
count += 1
return count
# 主函数,控制游戏流程
def main():
answer = generate_number()
print('猜数字游戏开始!')
while True:
guess = input('请输入一个四位数:')
if not guess.isdigit() or len(guess) != 4:
print('请输入一个四位数!')
continue
if is_same(guess, answer):
print('恭喜你猜对了!')
break
else:
same_position = count_same_position(guess, answer)
same_number = count_same_number(guess, answer)
print('猜中了{}个数字,其中{}个数字位置正确。'.format(same_number + same_position, same_position))
# 启动游戏
if __name__ == '__main__':
main()
```
代码解释:
1. `generate_number()` 函数使用 `random.shuffle()` 函数打乱了数字序列,然后只取前四个数字组成一个四位数的字符串;
2. `is_same()` 函数用于判断两个数字是否完全相同;
3. `count_same_position()` 函数用于判断两个数字中有多少个数字相同并且位置相同;
4. `count_same_number()` 函数用于判断两个数字中有多少个数字相同但位置不同;
5. `main()` 函数是游戏的主函数,控制游戏的流程;
6. 在 `main()` 函数中,先调用 `generate_number()` 函数生成一个随机数,然后在循环中提示玩家输入数字,判断是否猜中,如果猜中则结束游戏,否则输出猜中数字的数量和位置情况;
7. 最后,在 `if __name__ == '__main__':` 判断语句中启动游戏。
阅读全文