您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
# Python怎么实现猜数字游戏
## 引言
猜数字游戏是编程初学者最经典的练手项目之一。这个看似简单的游戏涵盖了输入输出、条件判断、循环结构、随机数生成等编程核心概念。本文将详细介绍如何用Python实现一个功能完整的猜数字游戏,并逐步扩展其功能。
## 基础版本实现
### 1. 游戏核心逻辑
```python
import random
def guess_number():
# 生成随机数字
secret_number = random.randint(1, 100)
attempts = 0
print("欢迎来到猜数字游戏!")
print("我已经想好了一个1到100之间的整数,请开始猜测吧。")
while True:
try:
# 获取用户输入
guess = int(input("请输入你的猜测: "))
attempts += 1
# 判断猜测结果
if guess < secret_number:
print("太小了!再试一次。")
elif guess > secret_number:
print("太大了!再试一次。")
else:
print(f"恭喜你!猜对了!正确答案是{secret_number}。")
print(f"你总共尝试了{attempts}次。")
break
except ValueError:
print("请输入有效的整数!")
# 启动游戏
guess_number()
random.randint(1, 100)
生成1到100之间的随机整数while True
创建无限循环,直到猜中才退出try-except
捕获非数字输入if-elif-else
比较用户猜测与答案def select_difficulty():
print("请选择难度级别:")
print("1. 简单 (1-50, 10次机会)")
print("2. 中等 (1-100, 7次机会)")
print("3. 困难 (1-200, 5次机会)")
while True:
choice = input("请输入难度编号(1/2/3): ")
if choice in ['1', '2', '3']:
return int(choice)
print("无效输入,请重新选择!")
def enhanced_guess_number():
difficulty = select_difficulty()
# 根据难度设置参数
if difficulty == 1:
max_num, max_attempts = 50, 10
elif difficulty == 2:
max_num, max_attempts = 100, 7
else:
max_num, max_attempts = 200, 5
secret_number = random.randint(1, max_num)
attempts = 0
print(f"\n游戏开始!数字范围1-{max_num},你有{max_attempts}次机会。")
while attempts < max_attempts:
try:
guess = int(input(f"第{attempts+1}次尝试: "))
attempts += 1
if guess < secret_number:
print("太小了!")
elif guess > secret_number:
print("太大了!")
else:
print(f"太棒了!你在第{attempts}次猜中了数字{secret_number}!")
return
# 显示剩余次数
remaining = max_attempts - attempts
if remaining > 0:
print(f"剩余尝试次数: {remaining}")
else:
print("很遗憾,机会用完了!")
print(f"正确答案是: {secret_number}")
except ValueError:
print("请输入有效数字!")
enhanced_guess_number()
game_stats = {'wins': 0, 'losses': 0, 'total_attempts': 0}
def show_stats():
total_games = game_stats['wins'] + game_stats['losses']
avg_attempts = game_stats['total_attempts'] / game_stats['wins'] if game_stats['wins'] > 0 else 0
print("\n=== 游戏统计 ===")
print(f"总游戏次数: {total_games}")
print(f"胜利次数: {game_stats['wins']}")
print(f"失败次数: {game_stats['losses']}")
print(f"平均尝试次数: {avg_attempts:.1f}")
def stats_guess_number():
while True:
enhanced_guess_number()
# 更新统计
play_again = input("\n想再玩一次吗?(y/n): ").lower()
if play_again != 'y':
show_stats()
break
def give_hint(secret, guess):
difference = abs(secret - guess)
if difference >= 50:
return "距离非常远"
elif difference >= 25:
return "距离比较远"
elif difference >= 10:
return "有点接近了"
elif difference >= 5:
return "非常接近了"
else:
return "几乎就在眼前!"
def hint_guess_number():
secret_number = random.randint(1, 100)
attempts = 0
print("提示系统已激活!")
while True:
try:
guess = int(input("你的猜测: "))
attempts += 1
if guess == secret_number:
print(f"正确!用了{attempts}次猜测。")
break
print(give_hint(secret_number, guess))
except ValueError:
print("请输入数字!")
import pygame
import sys
def pygame_guess_number():
pygame.init()
screen = pygame.display.set_mode((400, 300))
pygame.display.set_caption("猜数字游戏")
font = pygame.font.SysFont('Arial', 24)
secret = random.randint(1, 100)
guess = ""
message = "猜1-100之间的数字:"
attempts = 0
while True:
screen.fill((240, 240, 240))
for event in pygame.event.get():
if event.type == pygame.QUIT:
pygame.quit()
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_RETURN:
try:
num = int(guess)
attempts += 1
if num < secret:
message = f"{num} 太小了!"
elif num > secret:
message = f"{num} 太大了!"
else:
message = f"正确!用了{attempts}次"
except:
message = "输入无效!"
guess = ""
elif event.key == pygame.K_BACKSPACE:
guess = guess[:-1]
elif event.unicode.isdigit():
guess += event.unicode
# 渲染文本
text_surface = font.render(message, True, (0, 0, 0))
input_surface = font.render(guess, True, (50, 50, 200))
screen.blit(text_surface, (20, 50))
screen.blit(input_surface, (20, 100))
pygame.display.flip()
通过这个项目,我们实现了:
完整代码可以进一步优化:
猜数字游戏虽小,却涵盖了Python编程的诸多核心概念,是学习编程的绝佳练手项目。希望本文能帮助你掌握Python基础语法并激发编程兴趣! “`
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。