猜数字游戏python 1. 修改游戏猜测数字范围为任意连续50个整数 2. 修改每轮游戏猜测数字的次数为5次或以上 3. 增加提示信息,当用户猜测数字与目标数字相差绝对值二5时,提示用户: “猜测数宇已经很接近目标〞 4. 使得该游戏具有记录和统计用户竞猜正确率的功能,即使重启也可统计 5. 增加其他你认为可以使游戏更佳完善的功能
时间: 2024-02-13 10:00:14 浏览: 62
python实现猜数字游戏
5星 · 资源好评率100%
好的,下面是根据您的需求改进过的猜数字游戏的Python代码:
```python
import random
class GuessNumber:
def __init__(self):
self.game_range = 50 # 游戏猜测数字范围为任意连续50个整数
self.max_guess_times = 5 # 每轮游戏猜测数字的次数为5次或以上
self.target = random.randint(1, self.game_range)
self.guess_times = 0
self.correct_times = 0
self.records = [] # 用于记录用户的竞猜记录
def start_game(self):
while True:
guess = input("请猜一个1到{}之间的整数:".format(self.game_range))
if not guess.isdigit() or int(guess) < 1 or int(guess) > self.game_range:
print("输入无效,请输入1到{}之间的整数!".format(self.game_range))
continue
guess = int(guess)
self.guess_times += 1
if guess == self.target:
self.correct_times += 1
print("恭喜你,猜对了!")
break
elif abs(guess - self.target) <= 5:
print("猜测数值已经很接近目标!")
else:
print("猜错了!")
if self.guess_times >= self.max_guess_times:
print("猜测次数已用尽,正确答案是{}。".format(self.target))
break
self.records.append((self.correct_times, self.guess_times)) # 记录用户的竞猜记录
self.save_records() # 保存用户的竞猜记录
def show_records(self):
try:
with open("guess_number_records.txt", "r") as f:
records = f.readlines()
if len(records) == 0:
print("暂时没有竞猜记录。")
else:
print("用户竞猜记录如下:")
for record in records:
correct_times, guess_times = record.strip().split(",")
print("竞猜正确率:{:.0%},猜测次数:{}".format(int(correct_times) / int(guess_times), guess_times))
except FileNotFoundError:
print("暂时没有竞猜记录。")
def save_records(self):
with open("guess_number_records.txt", "w") as f:
for record in self.records:
f.write("{},{}\n".format(record[0], record[1]))
def reset_game(self):
self.target = random.randint(1, self.game_range)
self.guess_times = 0
print("游戏已重置,开始新的一轮。")
if __name__ == '__main__':
guess_number = GuessNumber()
while True:
print("=" * 30)
print("猜数字游戏")
print("1. 开始游戏")
print("2. 查看用户竞猜记录")
print("3. 重置游戏")
print("4. 退出游戏")
choice = input("请输入选项:")
if choice == "1":
guess_number.start_game()
elif choice == "2":
guess_number.show_records()
elif choice == "3":
guess_number.reset_game()
elif choice == "4":
break
else:
print("输入无效,请重新输入!")
```
说明:
1. `GuessNumber`类中的`game_range`变量表示游戏猜测数字范围为任意连续50个整数,`max_guess_times`变量表示每轮游戏猜测数字的次数为5次或以上。
2. 在`start_game`方法中,当用户猜测数字与目标数字相差绝对值小于等于5时,会提示用户“猜测数值已经很接近目标!”。
3. 在`GuessNumber`类中新增了`records`变量,用于记录用户的竞猜记录。`save_records`方法用于保存用户的竞猜记录,`show_records`方法用于展示用户的竞猜记录。
4. 在程序中增加了一个菜单,用户可以选择开始游戏、查看用户竞猜记录、重置游戏或退出游戏。
5. 为了保证用户的竞猜记录可以在重启程序后继续统计,程序会将用户的竞猜记录保存在`guess_number_records.txt`文件中。
阅读全文