跟着数学课本纸片人锐锐玩游戏,中年人轻松学习Python

这两天,很火的一个话题,我也尝试着用AI,结合deepseek和python,我尝试着,去做了一个小游戏。

目标:

根据数学教材纸片人锐锐,数学课本角色,也有了自己的二创,生成一个用python小游戏代码。

以下是一个基于数学教材角色"锐锐"的Python数学闯关游戏代码,结合了角色控制、数学题解答和关卡系统,使用Pygame库实现可视化操作:

import pygame
import random
import sys

# 初始化Pygame
pygame.init()

# 游戏窗口设置
WIDTH, HEIGHT = 800, 600
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("锐锐的数学大冒险")

# 颜色定义
WHITE = (255, 255, 255)
BLUE = (0, 0, 255)
RED = (255, 0, 0)

# 加载锐锐角色图像
rurui_img = pygame.image.load('rurui.png')  # 需自行准备图片
rurui_rect = rurui_img.get_rect(center=(400, 500))

# 游戏状态
current_level = 1
score = 0
question = ""
answer = ""
user_input = ""

# 字体设置
font = pygame.font.Font(None, 36)

def generate_question(level):
    """生成数学题目"""
    operations = ['+', '-', '×', '÷']
    a = random.randint(1, level*5)
    b = random.randint(1, level*5)
    op = random.choice(operations[:level+1])

    if op == '+':
        ans = a + b
    elif op == '-':
        ans = a - b
    elif op == '×':
        ans = a * b
    elif op == '÷':
        a = a * b  # 确保整除
        ans = a // b
    return f"{a} {op} {b} = ?", str(ans)

# 生成第一题
question, answer = generate_question(current_level)

def draw_game():
    """绘制游戏界面"""
    screen.fill(WHITE)
    screen.blit(rurui_img, rurui_rect)
    
    # 绘制题目
    text = font.render(f"第{current_level}关: {question}", True, BLUE)
    screen.blit(text, (50, 50))
    
    # 绘制输入框
    pygame.draw.rect(screen, BLUE, (300, 100, 200, 40), 2)
    input_text = font.render(user_input, True, BLUE)
    screen.blit(input_text, (310, 105))
    
    # 绘制得分
    score_text = font.render(f"得分: {score}", True, RED)
    screen.blit(score_text, (650, 50))

# 游戏主循环
running = True
while running:
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            running = False
        elif event.type == pygame.KEYDOWN:
            if event.key == pygame.K_RETURN:
                if user_input == answer:
                    score += 10
                    current_level += 1
                    question, answer = generate_question(current_level)
                    user_input = ""
                    # 让锐锐跳跃
                    rurui_rect.y -= 50
                else:
                    user_input = ""
            elif event.key == pygame.K_BACKSPACE:
                user_input = user_input[:-1]
            else:
                if event.unicode.isdigit():
                    user_input += event.unicode
                    
    # 角色重力效果
    if rurui_rect.y < 500:
        rurui_rect.y += 2
    
    draw_game()
    pygame.display.flip()
    pygame.time.Clock().tick(30)

pygame.quit()

操作步骤:

  1. 环境准备

  2. 安装Python 3.6+
  3. 安装依赖库:pip install pygame
  4. 准备角色图片"rurui.png"(尺寸建议100×100像素)
  5. 游戏玩法

  6. 方向键:按回车提交答案
  7. 数字键:输入答案
  8. Backspace:删除输入
  9. 正确答案会使锐锐跳跃并进入下一关
  10. 错误答案会清空输入框
  11. 关卡系统

  12. 第1关:加减法
  13. 第2关:增加乘法
  14. 第3关:增加除法
  15. 每关数字范围扩大5倍
  16. 得分每关+10分
  17. 扩展方法

    # 自定义题目生成规则(示例:添加分数运算)
    def generate_question(level):
        if level > 5:
            a = random.randint(1, 10)
            b = random.randint(1, 10)
            return f"{a}/7 + {b}/7 = ?", f"{(a+b)}/7"
        # 原有代码...
    
    # 添加角色动画(示例:旋转效果)
    rotated_rurui = pygame.transform.rotate(rurui_img, 45)
    screen.blit(rotated_rurui, rurui_rect)
    
    # 添加音效
    pygame.mixer.init()
    correct_sound = pygame.mixer.Sound('correct.wav')
    if user_input == answer:
        correct_sound.play()
    
  18. 游戏改造建议

  19. 在游戏目录创建assets文件夹存放资源
  20. 添加背景音乐和音效
  21. 增加成就系统(连续答对奖励)
  22. 添加可视化数学公式(使用LaTeX渲染)
  23. 制作关卡地图界面

数学知识拓展

  • 可在题目生成器中添加不同难度:
    def generate_question(level):
        if level > 10:
            # 生成几何题:求三角形面积
            base = random.randint(5, 15)
            height = random.randint(5, 15)
            return f"底{base}cm 高{height}cm的三角形面积?", str(base*height//2)
        # 原有代码...
    
  • 这个代码框架可以通过以下方式深化数学教学:

    1. 在游戏胜利界面添加知识点解析
    2. 制作错题本功能记录错误题目
    3. 添加多人对战模式
    4. 连接题库API获取最新教育类题目

    建议使用面向对象编程重构代码,创建独立的Character类、QuestionGenerator类和GameController类,方便后续扩展更多玩法和教学场景。

    作者:飞哥知行录

    物联沃分享整理
    物联沃-IOTWORD物联网 » 跟着数学课本纸片人锐锐玩游戏,中年人轻松学习Python

    发表回复