LICHQ 发表于 2023-4-9 17:59:25

求怎么将这个猜字游戏改的高级一点

import random

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

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

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

isdkz 发表于 2023-4-9 18:01:58

你可以考虑以下方法来改进这个猜字游戏,使其更高级:


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


下面是改进后的代码:

import random

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

    difficulty = int(input("输入1, 2, 或 3:"))
    if difficulty == 1:
      return 100
    elif difficulty == 2:
      return 500
    else:
      return 1000

def get_max_attempts(range_size):
    if range_size == 100:
      return 7
    elif range_size == 500:
      return 10
    else:
      return 14

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

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

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

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

if __name__ == "__main__":
    main()

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

同时,根据难度设置限制了玩家的猜测次数。此外,代码结构和可读性也得到了优化。

傻眼貓咪 发表于 2023-4-9 18:25:24


import random
import tkinter as tk

class GuessingGame(tk.Frame):
    def __init__(self, master=None):
      super().__init__(master)
      self.master = master
      self.master.title("猜数字游戏")
      self.pack()
      self.create_widgets()
      self.new_game()

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

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

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

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

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

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

    def check_guess(self):
      guess = self.guess_entry.get()
      try:
            guess = int(guess)
      except ValueError:
            self.result_label.config(text="请输入一个数字")
            return

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

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

root = tk.Tk()
app = GuessingGame(master=root)
app.mainloop()
页: [1]
查看完整版本: 求怎么将这个猜字游戏改的高级一点