Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【AI马里奥】:怎么用 Python 控制马里奥?

【AI马里奥】:怎么用 Python 控制马里奥?

作者头像
WEBJ2EE
发布于 2021-10-27 02:12:28
发布于 2021-10-27 02:12:28
96100
代码可运行
举报
文章被收录于专栏:WebJ2EEWebJ2EE
运行总次数:0
代码可运行
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
目录
1. PyBoy 简介 
2. 安装与使用 
3. Demo测试 
4. 常用 API 接口
  4.1. set_emulation_speed(模拟速度控制)
  4.2. cartridge_title(返回 ROM 的内部标题)
  4.3. game_wrapper
  4.4. send_input(模拟输入)
  4.5. tick(下一帧)
  4.6. stop

1. PyBoy 简介

PyBoy 是一个基于 Python 的 Game Boy 模拟器,作者是哥本哈根大学一名学生 Mads Ynddal。这款模拟器可用来创建 AI 或机器人,让它基于强化学习实现自动打游戏通关等骚操作。像超级马里奥、口袋妖怪等耳熟能详的游戏都可以在上面完美运行。

2. 安装与使用

  • 安装 SDL2
    • Simple DirectMedia Layer is a cross-platform development library designed to provide low level access to audio, keyboard, mouse, joystick, and graphics hardware via OpenGL and Direct3D.
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pysdl2-dll -i https://pypi.douban.com/simple
  • 安装 PyBoy
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pip install pybody -i https://pypi.douban.com/simple

3. Demo测试

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyboy import PyBoy
pyboy = PyBoy('roms/Super Mario Land (JUE) (V1.1) [!].gb')
while not pyboy.tick():
    pass

4. 常用 API 接口

4.1. set_emulation_speed(模拟速度控制)

图4-1:4 倍速效果

4.2. cartridge_title(返回 ROM 的内部标题)

4.3. game_wrapper

4.4. send_input(模拟输入)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
from pyboy import PyBoy, WindowEvent
pyboy = PyBoy('roms/Super Mario Land (JUE) (V1.1) [!].gb')
pyboy.set_emulation_speed(1)
print(pyboy.cartridge_title())
while not pyboy.tick():
    pyboy.send_input(WindowEvent.PRESS_ARROW_RIGHT)
    pass

4.5. tick(下一帧)

4.6. stop

参考:

BGB: http://bgb.bircd.org/ PyBoy: https://github.com/Baekalfen/PyBoy PySDL2: https://pysdl2.readthedocs.io/en/rel_0_9_7/index.html# Super-Mario-Land-AI: https://github.com/octavio-santiago/Super-Mario-Land-AI

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-10-15,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 WebJ2EE 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
3.7k stars用Python写的游戏机很有趣
用Python实现的游戏模拟器,像超级马里奥、口袋妖怪等经典游戏都可以在上面完美运行。支持:macOS、Raspberry Pi (Raspbian)、Linux (Ubuntu) 和 Windows 10。 GitHub数据 3.7k stars 72 watching 371 forks 开源地址:https://github.com/Baekalfen/PyBoy 安装 安装SDL2 Debian and Ubuntu > sudo apt update > sudo apt install py
开源日记
2023/03/10
5450
3.7k stars用Python写的游戏机很有趣
这个丹麦小哥的项目火了!他用代码写了个游戏机
最近有一个叫PyBoy的开源项目火了,原因是它使用了Python 2.7重新将那些在GameBoy上的上古游戏的整个模拟器实现了出来。
程序员小猿
2021/01/19
5110
这个丹麦小哥的项目火了!他用代码写了个游戏机
用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了
对于很多 80 后、90 后来说,任天堂 Gameboy 代表了青春的很大一部分。很多我们耳熟能详的游戏都是最初搭载在这款 8 位游戏掌机上的,包括鼎鼎有名的《马里奥》、《塞尔达》系列。对于国内玩家来说,我们玩得最多的则应该是《口袋妖怪》系列了。
机器之心
2020/04/22
9280
用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了
解近似策略优化(PPO)及其马里奥游戏环境实战
文中蓝色字体为链接,部分外部链接无法从文章内部直接访问,请点击文末阅读原文以访问链接。
AiTechYun
2019/08/23
2K0
别的AI还在打游戏,这个AI已经当上“超级马里奥”游戏策划了|GECCO最佳论文
AI打游戏已经不是什么新鲜事了,“沉迷”Dota 2、星际争霸、LOL的AI一个接一个的出现。
量子位
2018/08/08
7030
别的AI还在打游戏,这个AI已经当上“超级马里奥”游戏策划了|GECCO最佳论文
不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制
这不,国外有个小哥做了一个真‧手动控制的“马里奥遥控器”,只见他在电脑前拿着马里奥上下指挥,游戏中的马里奥就能随之跳跃从而避开障碍物。
大数据文摘
2020/10/10
8170
不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制
如何用人工智能秒杀超级马里奥游戏
关键时刻,第一时间送达! 近日,Einfach nerdig 在 Youtube 上发起了一个直播:通过人工智能学习系统来播放“超级马里奥”。目前这个直播仍然很受欢迎。 人工智能系统 MarI/O
企鹅号小编
2018/02/07
1.6K0
如何用人工智能秒杀超级马里奥游戏
教遗传算法人工智能玩超级马里奥大陆
这是教授 AI 为 GameBoy 玩超级马里奥乐园系列的第一篇文章,在这里我将向您展示如何开发遗传算法 AI 以使用 Python 玩超级马里奥乐园。(完整代码文末)
deephub
2021/07/23
8430
教遗传算法人工智能玩超级马里奥大陆
观点 | 玩转「马里奥」的算法能搞定「口袋妖怪」吗?
AI 科技评论:现在机器人玩游戏的水平甚至已经超过了人类,然而对于不同的游戏,一个算法是否全部搞定呢?软件开发者 Shayaan Jagtap 就以「马里奥」这款游戏的算法无法适用于另一款游戏「口袋妖怪」为例,来说明这一问题并分析其中的原因。AI 科技评论全文编译如下。
AI科技评论
2018/11/22
4160
教程 | 使用Gym和CNN构建多智能体自动驾驶马里奥赛车
选自Medium 作者:aymen mouelhi 机器之心编译 参与:Nurhachu Null、李泽南 本文描述的卷积神经网络超出了简单模式识别的范畴,能够学习到控制一辆自动汽车所需的所有过程。作者介绍了如何利用 CNN 和 OpenAI Gym,创建一个多智能体的系统,这些模型可以自动驾驶马里奥赛车,并且彼此竞争。 对机器学习感兴趣的人都知道基于人工智能的强化学习的能力。过去的纪念见证了很多使用强化学习(RL)做出的突破。DeepMind 将强化学习与机器学习相结合,在很多 Atari 游戏中达到了超
机器之心
2018/05/10
1.7K0
一条命通关,这个AI算法玩超级马里奥操作秀翻天丨视频+开源代码
从1-1到7-1,只要一条命,就能全部通过,而且操作几乎没有迟疑,如行云流水一般。
量子位
2019/06/03
6920
JavaScript/WebGL 实现的马里奥卡丁车游戏 | 开源日报 No.309
Mario-Kart-3.js 是一个 JavaScript/WebGL 实现的马里奥卡丁车游戏。
小柒
2024/07/31
1260
JavaScript/WebGL 实现的马里奥卡丁车游戏 | 开源日报 No.309
AI为超级马里奥兄弟创造了游戏新级别——GECCO 2018最佳论文提名
作者 | Vanessa Volz、Jacob Schrum、Jialin Liu、 Simon M. Lucas、Adam Smith、Sebastian Risi
用户1737318
2018/08/03
6920
AI为超级马里奥兄弟创造了游戏新级别——GECCO 2018最佳论文提名
GPT-4o举步维艰、Claude 3.7险胜,《超级马里奥》成为了检验大模型的新试金石?
一直以来,AI 领域的研究者都喜欢让模型去挑战那些人类热衷的经典游戏,以此来检验 AI 的「智能程度」。
机器之心
2025/03/10
1270
GPT-4o举步维艰、Claude 3.7险胜,《超级马里奥》成为了检验大模型的新试金石?
Chrome变身小霸王, 玩一玩超级马里奥
超级马里奥(超级玛丽)是任天堂经典游戏, 可以说是红白机时代的扛把子, 现在我们通过Chrome扩展程序玩超级玛丽了
zhaoolee
2019/03/06
1.2K0
DeepMind深度强化学习实践:教计算机玩超级马里奥(代码)
【新智元导读】AlphaGo 的主要设计人 David Silver 曾说过,游戏是人工智能绝好的测试台。让算法学会玩游戏,对创造能够与真实世界进行复杂互动的人工智能非常重要。新智元介绍过很多 DeepMind 使用深度强化学习,训练算法玩经典 Atari 游戏的文章。现在,有一位程序员在他们的基础上,修改代码,教算法玩超级马里奥。你也可以自己动手实践,“在游戏中学习”。 训练好的算法是这样玩超级马里奥的~ (文/ehrenbrav)今年早些时候我碰巧看见了 Seth Bling 训练计算机玩超级马里奥的视
新智元
2018/03/23
1.9K0
机器学习原来这么有趣!【第二章】:用机器学习制作超级马里奥的关卡
在第一章中我们谈到,机器学习是用泛型算法告诉你一些有关数据的有趣结论,而这个过程中你不需要写任何与问题有关的特定代码。(如果你还没有读过第一章,现在先去读吧!机器学习原来这么有趣!【第一章】)
lujohn3li
2020/03/04
8010
机器学习原来这么有趣!【第二章】:用机器学习制作超级马里奥的关卡
乘风破浪的马里奥!这个AI带你一口气通29关,你猜连AI都过不去的是哪3关?
比如,这里有一位马里奥游戏疯狂爱好者uvipen就在GitHub上贡献了两种不同的方法,都能让马里奥轻松游走在障碍之间!去年6月,uvipen从2016年的论文《Asynchronous Methods for Deep Reinforcement Learning》中得到了启发,用异步优势Actor-Critic算法(A3C)让马里奥顺利通过了32关中的9关。
大数据文摘
2020/08/12
5410
乘风破浪的马里奥!这个AI带你一口气通29关,你猜连AI都过不去的是哪3关?
马里奥 AI 实现方式探索 :神经网络+增强学习(下)
接《马里奥 AI 实现方式探索 :神经网络+增强学习(上)》 马尔可夫决策过程(MDP) 一提到马尔科夫,大家通常会立刻想起马尔可夫链(Markov Cha
肖力涛
2017/08/18
2.4K1
马里奥 AI 实现方式探索 :神经网络+增强学习(下)
学界 | 不设目标也能通关「马里奥」的AI算法,全靠好奇心学习
通过与任务匹配的奖励函数最大化来训练智能体策略。对于智能体来说,奖励是外在的,并特定于它们定义的环境。只有奖励函数密集且定义良好时,多数的 RL 才得以成功实现,例如在电子游戏中的「得分」。然而设计一个定义良好的奖励函数非常困难。除了「塑造」外在奖励外,也可以增加密集的内在奖励,即由智能体本身产生奖励。内在奖励包括使用预测误差作为奖励信号的「好奇心」和阻止智能体重新访问相同状态的「访问计数」。其思想是,这些内在奖励通过引导智能体对环境进行有效地探索,以寻找下一个外在奖励,从而缩小与稀疏外在奖励间的差距。
机器之心
2018/09/20
4240
学界 | 不设目标也能通关「马里奥」的AI算法,全靠好奇心学习
推荐阅读
3.7k stars用Python写的游戏机很有趣
5450
这个丹麦小哥的项目火了!他用代码写了个游戏机
5110
用Python写出Gameboy模拟器,还能训练AI模型:丹麦小哥的大学项目火了
9280
解近似策略优化(PPO)及其马里奥游戏环境实战
2K0
别的AI还在打游戏,这个AI已经当上“超级马里奥”游戏策划了|GECCO最佳论文
7030
不用键盘也能玩超级玛丽!当乐高马里奥变身遥控器,真‧手动控制
8170
如何用人工智能秒杀超级马里奥游戏
1.6K0
教遗传算法人工智能玩超级马里奥大陆
8430
观点 | 玩转「马里奥」的算法能搞定「口袋妖怪」吗?
4160
教程 | 使用Gym和CNN构建多智能体自动驾驶马里奥赛车
1.7K0
一条命通关,这个AI算法玩超级马里奥操作秀翻天丨视频+开源代码
6920
JavaScript/WebGL 实现的马里奥卡丁车游戏 | 开源日报 No.309
1260
AI为超级马里奥兄弟创造了游戏新级别——GECCO 2018最佳论文提名
6920
GPT-4o举步维艰、Claude 3.7险胜,《超级马里奥》成为了检验大模型的新试金石?
1270
Chrome变身小霸王, 玩一玩超级马里奥
1.2K0
DeepMind深度强化学习实践:教计算机玩超级马里奥(代码)
1.9K0
机器学习原来这么有趣!【第二章】:用机器学习制作超级马里奥的关卡
8010
乘风破浪的马里奥!这个AI带你一口气通29关,你猜连AI都过不去的是哪3关?
5410
马里奥 AI 实现方式探索 :神经网络+增强学习(下)
2.4K1
学界 | 不设目标也能通关「马里奥」的AI算法,全靠好奇心学习
4240
相关推荐
3.7k stars用Python写的游戏机很有趣
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验