基于Python的Flash游戏人工智能

“混战2”是在坚如磐石的街机处基于Flash的双翼飞机游戏。

http://www.rocksolidarcade.com/games/dogfight2/

制作一个可以为我们玩混战游戏的python程序(人工智能(AI))不是很酷吗?

意识到制作一个高效的AI来玩这样的游戏是一项非常艰巨的任务,我决定创建一个简单的框架来启动游戏并循环飞行直到飞机坠落到地面。

首先,关于环境的一些话。 我使用了已安装google chrome的Ubuntu vmware映像。

我要做的第一件事是使用以下地址启动chrome浏览器:

http://www.rocksolidarcade.com/games/dogfight2/

我们要制作一个程序,用鼠标左键单击混战游戏以获取焦点,然后等待一秒钟左右。 为了弄清楚混战游戏的坐标是什么,我们使用终端窗口中的xdotool(请参见下图)

基于Python的Flash游戏人工智能_第1张图片

您可能需要安装xdotool,因为默认情况下Linux发行版中可能没有随附的xdotool,请输入:

sudo apt-get安装xdotool

安装完成后,将鼠标移到混战游戏上。 不要点击! 实际上,根本不要移动鼠标!

在终端窗口的键盘上键入以下内容,该窗口仍应具有焦点。

xdotool getmouselocation

混战告诉我们通过按“开火”开始游戏。 在您的计算机上,“ fire”将是“ space”,但是您不会自己按下fire,python progam应该为您做到这一点。

从概念上讲,该程序将很简单:首先,您的程序将单击Dogfight游戏以获取焦点,然后按空格键开始游戏,然后等待一秒钟,然后按向上键将飞机引导到目标位置。环。 最后一部分将是无限循环

下面是一个示例python程序,它可以做到这一点


import subprocess
import time 
# get focus and click
subprocess.call(["xdotool","mousemove","440","661"]) # use subprocess to call xdotool from python
subprocess.call(["xdotool","click","1"])
time.sleep(3) 
# press fire (space) to start the program
subprocess.call(["xdotool","keydown","space"])
time.sleep(1)
subprocess.call(["xdotool","keyup","space"])   
# key pushing the up key to make the plane roll
while(True):
 # each second press the up cursor key
 subprocess.call(["xdotool","keydown","Up"])
 time.sleep(1)
 subprocess.call(["xdotool","keyup","Up"]) 
# runs until you press Ctrl-Z 
而已! 它没有做任何事情,可能循环了两次,然后撞到了地上。 它可以扩展,例如,我们可以找出飞机的位置,使其一直射击,等等。
附加图片
文件类型:jpg point1b.jpg (43.4 KB,1269观看)

From: https://bytes.com/topic/python/insights/949504-python-based-artificial-intelligence-flash-game

你可能感兴趣的:(基于Python的Flash游戏人工智能)