python贪吃蛇游戏项目-gym环境介绍

大家好,我是python游戏开发这门课程的主要框架师geo

什么是 gym

OpenAI是一家非营利性的人工智能研究公司,其公布了非常多的学习资源以及算法资源。其之所以叫作 OpenAI,他们把所有开发的算法都进行了开源。 OpenAI 的 Gym库是一个环境仿真库,里面包含很多现有的环境。针对不同的场景,我们可以选择不同的环境。离散控制场景

安装 gym

pip install gymnasium # 修复 1: 导入正确的库

Gym 游戏类型总览

类型 示例游戏 环境名称 说明
控制类(Classic Control) 平衡杆 CartPole-v1 推小车让杆子保持平衡
  双摆 Acrobot-v1 控制双摆往上翻
  山车 MountainCar-v0 控制小车爬上山
Box2D 物理类 月球着陆器 LunarLander-v2 控制喷气推进器平稳着陆
  爬虫机器人 BipedalWalker-v3 控制两脚机器人行走
Atari 复古游戏 乒乓球 Pong-v0 控制挡板打球(需安装 gym[atari]
  Breakout Breakout-v0 类似打砖块游戏
棋类与文字游戏 黑白棋 Go(需第三方) 智能博弈环境(多为外部套件)
迷宫类 冰湖 FrozenLake-v1 走迷宫避免掉水(可训练或手动)

怎么人类模式游玩?

这个设计本身就是为了学习强化学习,不是让使用者使用所以要通过pygame结合来游玩

通过电脑控制

import gymnasium as gym  # 修复 1: 导入正确的库

# 创建游戏环境
env = gym.make("CartPole-v1", render_mode="human")

# 初始化环境,注意 env.reset() 现在返回 (observation, info)
# 且 info 最好用 '_' 忽略或显式接收
observation, _ = env.reset(seed=42) # 可以添加 seed 以保证结果可复现

# 运行游戏 500 步(自动玩)
for step in range(500):
    # 随机动作
    action = env.action_space.sample()

    # 修复 2: 接收 env.step() 的 5 个返回值
    observation, reward, terminated, truncated, info = env.step(action)

    # 判断回合是否结束或被截断
    if terminated or truncated:
        print(f"回合结束于第 {step + 1} 步。总奖励(本回合最后一步的奖励): {reward}")
        # 回合结束,重置环境。重置也返回 (observation, info)
        observation, _ = env.reset()

env.close()