Flask接口签名sign原理与实例代码浅析
345
2022-09-03
亲测可用的 Linux(Ubuntu18.04下)可运行的俄罗斯方块游戏的仿真环境—————————可用于强化学习算法的游戏模拟器环境(亲测可用的视频APP下载)
俄罗斯方块模拟器(tetris 游戏),Python库地址:
install gym-tetris
安装好后测试代码:
from nes_py.wrappers import JoypadSpaceimport gym_tetrisfrom gym_tetris.actions import MOVEMENTenv = gym_tetris.make('TetrisA-v0')env = JoypadSpace(env, MOVEMENT)done = Truefor step in range(5000): if done: state = env.reset() state, reward, done, info = env.step(env.action_space.sample()) env.render()env.close()
由于上面代码运行过快,不易观察,于是给出修正代码:
from nes_py.wrappers import JoypadSpaceimport gym_tetrisfrom gym_tetris.actions import MOVEMENTimport timeenv = gym_tetris.make('TetrisA-v0')env = JoypadSpace(env, MOVEMENT)done = Truefor step in range(5000): if done: state = env.reset() state, reward, done, info = env.step(env.action_space.sample()) print(info) env.render() time.sleep(0.5)env.close()
View Code
运行图:
该游戏也可以使用命令启动,进行随机或者人为交互:
命令:
gym_tetris -e
其中,
TetrisA-v0
TetrisA-v1
TetrisA-v2
TetrisA-v3
TetrisB-v0
TetrisB-v1
TetrisB-v2
TetrisB-v3
如:
gym_tetris -e TetrisA-v0 -m random
如:
gym_tetris -e TetrisA-v0 -m human
消除的行数与得分关系:(游戏规则)
引自:信息中的 board_height 是指当前落底的方块最高的高度:
可以看到上图中落底方块的最高高度为4, 于是 board_height 的数值为4 。
在 'statistics' 中, 方块的种类分别表示为:
'T'
'J'
'Z'
'O'
'S'
'L'
'I'
而每一种类型由于可以选择变形,变形不同样式后又用不同字符串表示:
r 、 l 、u 、 d 分别代表 right, left, up ,down 四个变形格式。
v,h 分别代表 垂直和水平。
如:块类型 T, 他可以被表示为四种变化格式,"Tr", "Tl", "Tu", "Td" , 这也是'current_piece'中所进行的表示。
块类型I, 可以表示为 v, h 两个格式,于是有 "Iv", "Ih" 这两种'current_piece'中所进行的表示 。
next_piece 可以指出下一个新块的类型,如下图,"I"块(和‘I块的两个具体格式 Iv 或 Ih 无关’)的下一个块为‘Td’块:
===========================================================
该游戏进行 human 模式 人为交互是 ,上下左右使用 w、a、s、d 键, 变形使用 O 或 P 键。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~