热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:深度强化学习制作森林冰火人游戏AI下载游戏

篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度强化学习制作森林冰火人游戏AI下载游戏相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了深度强化学习制作森林冰火人游戏AI下载游戏相关的知识,希望对你有一定的参考价值。






概述

首先先把游戏环境搭建起来


下载游戏

这部分的介绍可以看python 从4399获取小游戏,我就不重新介绍一遍了

import os
import requests
# 基础url
host_url = 'http://www.4399.com'
swfbase_url = 'http://sda.4399.com/4399swf'
#根据网页网址,获取游戏
def download_game(url):
#获取网页源代码
game_page = requests.get(url).text
# game_page.encoding = 'gb2312'
if not os.path.exists('./game_src'):
os.mkdir(r'./game_src')
#找到网页中含有游戏标题的字符
start =game_page.find("game_title=")
#标记标题起始位置
p1=start+14
#通过向后遍历寻找双引号获取标题结束的位置
p2=p1+1
while(game_page[p2]!="\\""):
p2+=1
#保存标题
game_title= game_page[p1:p2]
#和获取标题一样的方法获取游戏本体的网址
start =game_page.find("_strGamePath=")
p1=start+14
p2=p1+1
while(game_page[p2]!="\\""):
p2+=1
#4399游戏本体的网址是由两部分组成,基址+偏移量
#我们之前找的都是偏移量,接上基址就是正确的网址
src_url=swfbase_url + game_page[p1:p2]
file_type='.'+game_page[p1:p2].split('/')[-1].split('.')[-1]
# print(file_type)
if file_type=='.swf':
#获取本体
src = requests.get( src_url).content
print(game_title)
#保存
open( "./game_src/"+ game_title+ file_type, "wb" ).write( src )
else:
print("只有swf文件才能下载")
if __name__ == '__main__':

#森林冰火人2选关版 http://www.4399.com/flash/175700.htm#search3-9af1
url='http://www.4399.com/flash/175700.htm#search3-9af1'
download_game(url)

为什么选择森林冰火人2选关版?


  1. 因为找了半天,大部分森林冰火人都是html游戏,swf文件格式的很少,我想要训练一个打横版游戏的ai
  2. 其次,选关版可以让在训练的时候选择不同的关卡,这样训练出来的ai更具有鲁棒性,以后也许可以泛化到其他的网页版森林冰火人上

运行游戏

如何打开flash游戏

官网下载flashplayer

理论上下载官方版就能使用,但是实际上我还是下载了大厅版
(官方版都不知道怎么开游戏)


1. 打开flash大厅

在这里插入图片描述


2. 打开游戏

在这里插入图片描述


  1. 选择左侧首页
  2. 点击swf文件播放器
  3. 选择swf文件,打开上面用代码爬下来的游戏

3.玩游戏!(误)

在这里插入图片描述


总结

爬游戏网上其实也有不少办法,我这里也只是把其中一种拉出来用了

下一部分将会是如何用python获取游戏窗口

后篇:深度强化学习制作森林冰火人游戏AI(二)获取游戏屏幕






推荐阅读
author-avatar
却冷了_的心_133
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有