鱼C论坛

 找回密码
 立即注册
查看: 2253|回复: 2

[已解决]求怎么将这个猜字游戏改的高级一点

[复制链接]
发表于 2023-4-9 17:59:25 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
  1. import random

  2. print('欢迎来到猜字游戏!')
  3. rumber = random.randint(1,100)
  4. guess = None
  5. count = 0

  6. while guess != number:
  7.     count += 1
  8.     guess = int(input('请猜一个1到100之间的整数:')

  9.     if guess > number:
  10.         print('你猜的数字太大了,请尝试一个更小的数字。')
  11.     elif guess < number:
  12.         print('你猜的数字太小了,请尝试一个更大的数字。')
  13.     else:
  14.         print(f'恭喜你,你在第{count}次猜对了')
复制代码
最佳答案
2023-4-9 18:01:58
你可以考虑以下方法来改进这个猜字游戏,使其更高级:

  • 增加游戏难度设置
  • 限制猜测次数
  • 提供数字范围提示
  • 优化代码结构和可读性


下面是改进后的代码:

  1. import random

  2. def get_difficulty():
  3.     print("请选择游戏难度:")
  4.     print("1. 简单 (1-100)")
  5.     print("2. 中等 (1-500)")
  6.     print("3. 困难 (1-1000)")

  7.     difficulty = int(input("输入1, 2, 或 3:"))
  8.     if difficulty == 1:
  9.         return 100
  10.     elif difficulty == 2:
  11.         return 500
  12.     else:
  13.         return 1000

  14. def get_max_attempts(range_size):
  15.     if range_size == 100:
  16.         return 7
  17.     elif range_size == 500:
  18.         return 10
  19.     else:
  20.         return 14

  21. def main():
  22.     print('欢迎来到猜字游戏!')
  23.     range_size = get_difficulty()
  24.     max_attempts = get_max_attempts(range_size)
  25.     number = random.randint(1, range_size)
  26.     guess = None
  27.     count = 0

  28.     while guess != number and count < max_attempts:
  29.         count += 1
  30.         guess = int(input(f'请猜一个1到{range_size}之间的整数:'))

  31.         if guess > number:
  32.             print('你猜的数字太大了,请尝试一个更小的数字。')
  33.         elif guess < number:
  34.             print('你猜的数字太小了,请尝试一个更大的数字。')
  35.         else:
  36.             print(f'恭喜你,你在第{count}次猜对了')
  37.             break

  38.     if guess != number:
  39.         print(f'很遗憾,你没有猜对。正确答案是{number}。')

  40. if __name__ == "__main__":
  41.     main()
复制代码


这个改进后的猜字游戏增加了游戏难度设置,玩家可以在开始游戏前选择难度。

同时,根据难度设置限制了玩家的猜测次数。此外,代码结构和可读性也得到了优化。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-9 18:01:58 | 显示全部楼层    本楼为最佳答案   
你可以考虑以下方法来改进这个猜字游戏,使其更高级:

  • 增加游戏难度设置
  • 限制猜测次数
  • 提供数字范围提示
  • 优化代码结构和可读性


下面是改进后的代码:

  1. import random

  2. def get_difficulty():
  3.     print("请选择游戏难度:")
  4.     print("1. 简单 (1-100)")
  5.     print("2. 中等 (1-500)")
  6.     print("3. 困难 (1-1000)")

  7.     difficulty = int(input("输入1, 2, 或 3:"))
  8.     if difficulty == 1:
  9.         return 100
  10.     elif difficulty == 2:
  11.         return 500
  12.     else:
  13.         return 1000

  14. def get_max_attempts(range_size):
  15.     if range_size == 100:
  16.         return 7
  17.     elif range_size == 500:
  18.         return 10
  19.     else:
  20.         return 14

  21. def main():
  22.     print('欢迎来到猜字游戏!')
  23.     range_size = get_difficulty()
  24.     max_attempts = get_max_attempts(range_size)
  25.     number = random.randint(1, range_size)
  26.     guess = None
  27.     count = 0

  28.     while guess != number and count < max_attempts:
  29.         count += 1
  30.         guess = int(input(f'请猜一个1到{range_size}之间的整数:'))

  31.         if guess > number:
  32.             print('你猜的数字太大了,请尝试一个更小的数字。')
  33.         elif guess < number:
  34.             print('你猜的数字太小了,请尝试一个更大的数字。')
  35.         else:
  36.             print(f'恭喜你,你在第{count}次猜对了')
  37.             break

  38.     if guess != number:
  39.         print(f'很遗憾,你没有猜对。正确答案是{number}。')

  40. if __name__ == "__main__":
  41.     main()
复制代码


这个改进后的猜字游戏增加了游戏难度设置,玩家可以在开始游戏前选择难度。

同时,根据难度设置限制了玩家的猜测次数。此外,代码结构和可读性也得到了优化。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-9 18:25:24 | 显示全部楼层
猜数字游戏.jpg
  1. import random
  2. import tkinter as tk

  3. class GuessingGame(tk.Frame):
  4.     def __init__(self, master=None):
  5.         super().__init__(master)
  6.         self.master = master
  7.         self.master.title("猜数字游戏")
  8.         self.pack()
  9.         self.create_widgets()
  10.         self.new_game()

  11.     def create_widgets(self):
  12.         self.number_label = tk.Label(self, text="猜一个 1 到 100 之间的数字")
  13.         self.number_label.pack(pady=10)

  14.         self.guess_entry = tk.Entry(self, width=20)
  15.         self.guess_entry.pack(pady=10)

  16.         self.guess_button = tk.Button(self, text="猜一下", command=self.check_guess)
  17.         self.guess_button.pack()

  18.         self.result_label = tk.Label(self, text="")
  19.         self.result_label.pack(pady=10)

  20.         self.new_game_button = tk.Button(self, text="开始新游戏", command=self.new_game)
  21.         self.new_game_button.pack(pady=10)

  22.     def new_game(self):
  23.         self.number = random.randint(1, 100)
  24.         self.guess_entry.delete(0, tk.END)
  25.         self.result_label.config(text="")
  26.         self.guess_button.config(state="normal")
  27.         self.guess_entry.config(state="normal")

  28.     def check_guess(self):
  29.         guess = self.guess_entry.get()
  30.         try:
  31.             guess = int(guess)
  32.         except ValueError:
  33.             self.result_label.config(text="请输入一个数字")
  34.             return

  35.         if guess < 1 or guess > 100:
  36.             self.result_label.config(text="请输入一个 1 到 100 之间的数字")
  37.             return

  38.         if guess == self.number:
  39.             self.result_label.config(text="恭喜你,猜中了!")
  40.             self.guess_button.config(state="disabled")
  41.             self.guess_entry.config(state="disabled")
  42.         elif guess < self.number:
  43.             self.result_label.config(text="你猜的数字太小了,请再猜一次。")
  44.         else:
  45.             self.result_label.config(text="你猜的数字太大了,请再猜一次。")

  46. root = tk.Tk()
  47. app = GuessingGame(master=root)
  48. app.mainloop()
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-4-25 18:03

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表