一款基于Python的人工智能Flash游戏

" Dogfight 2"是Rock Solid Arcade的基于Flash Biplane的游戏。
http://www.rocksolidarcade.com/games/dogfight2/
制作Python程序,一个人工智能(AI),可以为我们玩混战游戏,这不是很酷吗?
我意识到为玩这种游戏制作高效的AI是一项非常艰巨的任务,我安定着创建一个简单的框架,该框架启动游戏并将飞机循环直至撞向地面。
首先,关于环境的一些话。我使用了Google Chrome安装的Ubuntu VMware映像。
我确实使用地址启动Chrome浏览器的第一件事:
http://www.rocksolidarcade.com/games/dogfight2/
我们想制作一个程序,该程序单击左鼠标按钮以获得焦点,然后等待一秒钟左右。为了弄清楚混战游戏的坐标是什么,我们使用Xdotool从终端窗口使用(请参见下图)

您可能必须安装Xdotool,因为默认情况下可能不会随您的Linux发行版而来,要执行此操作:键入:
sudo apt-get安装xdotool
安装后,将鼠标移到混战游戏上。不要点击!实际上,根本不会移动鼠标!
在端子窗口中的键盘上键入以下内容,该窗口仍应具有焦点。
Xdotool GetMouseLocation
Dogfight告诉我们通过按"火"开始游戏。在您的计算机上,"火"将是"空间",但是您不会自己压起来,Python Progam应该为您做到这一点。
从概念上讲,程序很简单:首先,您的程序将单击狗打游戏以获得焦点,然后按空格开始游戏,然后等待一秒钟才能按下UP键将飞机带入一个环形。最后一部分是无限的循环
以下是一个示例Python程序,可以做到这一点

选择 | 换行 | 行号
  1. import subprocess
  2. import time
  3.  
  4. # get focus and click
  5. subprocess.call(["xdotool","mousemove","440","661"]) # use subprocess to call xdotool from python
  6. subprocess.call(["xdotool","click","1"])
  7. time.sleep(3)
  8.  
  9. # press fire (space) to start the program
  10. subprocess.call(["xdotool","keydown","space"])
  11. time.sleep(1)
  12. subprocess.call(["xdotool","keyup","space"]) 
  13.  
  14.  
  15. # key pushing the up key to make the plane roll
  16. while(True):
  17.  # each second press the up cursor key
  18.  subprocess.call(["xdotool","keydown","Up"])
  19.  time.sleep(1)
  20.  subprocess.call(["xdotool","keyup","Up"])
  21.  
  22. # runs until you press Ctrl-Z
  23.  

而已!在撞到地面之前,它可能没有多大除了循环两次。它可以扩展,例如,我们可以找出飞机的位置,使其始终使其射击,等等。

附件图像

File Type: jpg

point1b.jpg

(43.4 KB,1623次观点)

标签: python

评论已关闭