分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#
# 没什么用,该游戏的模块调用不友好,取数据难
import queue
from battle import commander
# import math unit_client = commander.Client()
doing_last_order = True
towerid = []
towerrg = []
towerfr = []
towerps = []
tower_id =
towers = []
safe_posi=[,]
center1 = [[,],[,]]
center2 = [[,],[,]]
center3 = [[,],[,]]
# START Possible orders:
def get_time(*args, **kawargs):
my_time = unit_client.ask_cur_time()
unit_client.when_time(my_time, get_to) def get_to(*args, **kawargs):
global safe_posi
unit_posi = unit_client.ask_units()
safe_posi = [int(unit_posi[]['coordinates'][]/+unit_posi[]['coordinates'][]/), int(unit_posi[]['coordinates'][]/+unit_posi[]['coordinates'][]/)]
unit_client.do_move(safe_posi) def gather(*args, **kawargs):
unit_client.do_message_to_craft(get_to) def attack_center(*args, **kawargs):
center = unit_client.ask_center()
unit_client.do_attack(center['id']) def attack_nearest(data=None, *args, **kawargs):
enemy = unit_client.ask_nearest_enemy()
unit_client.do_attack(enemy['id']) def go_to_center1(*args, **kwargs):
global safe_posi
unit_client.do_moves(center1)
safe_posi = center1[]
return safe_posi def go_to_center2(*args, **kwargs):
global safe_posi
unit_client.do_moves(center2)
safe_posi = center2[]
return safe_posi def go_to_center3(*args, **kwargs):
global safe_posi
unit_client.do_moves(center3)
safe_posi = center3[]
return safe_posi def go_to_center_safe(*args, **kwargs):
unit_client.do_move(safe_posi) def info_get(*args, **kwargs):
global safe_posi
global tower_id
global towerid
global towerrg
global towerfr
global towers
global towerps
towers = unit_client.ask_towers() for i in range(len(towers)):
towerid.append(towers[i]["id"])
towerfr.append(towers[i]["firing_range"])
towerps.append(towers[i]["coordinates"])
x, y = towers[i]["coordinates"]
lenth = pow((x-safe_posi[])**+(y-safe_posi[])**,0.5)
towerrg.append(int(lenth)) def attack_posi(*args, **kwargs):
global towerid
global towers
global safe_posi
global tower_id
global towerrg
global towerfr
# global towers
# towers = unit_client.ask_towers()
first = towerrg.index(min(towerrg))
attac_posi = towerrg[first]-towerfr[first]-
percent = attac_posi/towerrg[first]
safe_posi = (towerps[first][] - safe_posi[])*percent, (towerps[first][] - safe_posi[])*percent
unit_client.do_move(safe_posi)
tower_id = towerid[first]
unit_client.do_attack(tower_id)
my_info = unit_client.ask_my_info()
safe_posi = my_info["coordinates"]
towerid.pop(first)
towerrg.pop(first)
towerfr.pop(first)
towerps.pop(first)
## END ## START Orders, captain!
orders = queue.Queue()
# orders.put_nowait(gather)
orders.put_nowait(go_to_center1)
orders.put_nowait(go_to_center2)
# orders.put_nowait(attack_nearest)
orders.put_nowait(get_to)
orders.put_nowait(info_get)
# orders.put_nowait(get_time)
# orders.put_nowait(attack_nearest)
# orders.put_nowait(attack_nearest)
# orders.put_nowait(attack_posi)
# orders.put_nowait(go_to_center3)
# orders.put_nowait(attack_posi)
# orders.put_nowait(attack_posi)
# orders.put_nowait(attack_posi)
# orders.put_nowait(attack_posi)
orders.put_nowait(attack_center)
# orders.put_nowait(attack_nearest)
# orders.put_nowait(attack_nearest)
# orders.put_nowait(attack_nearest)
# orders.put_nowait(attack_nearest) #Loop engine:
def mark_as_idle(*args, **kwargs):
global doing_last_order
doing_last_order = False
# print('ORDERS DOING: Is now', doing_last_order)
unit_client.when_idle(global_scheduler) def mark_as_doing(*args, **kwargs):
global doing_last_order
doing_last_order = True
# print('ORDERS DOING: Is now', doing_last_order) def global_scheduler(*args, **kwargs):
global doing_last_order
# print('LOOP: scheduler woke')
# print('ORDERS COUNT:', orders.qsize())
# print('DOING ORDER ?:', doing_last_order) # needed only if coding async
while not doing_last_order and not orders.empty():
mark_as_doing() next_order = orders.get()
# print('ORDERS: next is "%s"' % next_order.__name__)
next_order()
# print('ORDERS: doing "%s"' % next_order.__name__) unit_client.when_idle(mark_as_idle)
# print('LOOP: scheduler set') print ('ORDERS START COUNT:', orders.qsize())
mark_as_idle()
分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#的更多相关文章
- 分享下找到的Github上大神的EmpireofCode进攻策略:反正我是用了没反应,改了代码后单位不进攻,蠢站在那里,我自己的策略调调能打败不少人,这个日后慢慢研究吧,Github上暂时找到的唯一策略
from queue import PriorityQueue from enum import Enum from battle import commander from battle impor ...
- [转帖]我最近研究了hive的相关技术,有点心得,这里和大家分享下。
我最近研究了hive的相关技术,有点心得,这里和大家分享下. https://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html 首 ...
- 分享下对JAVA程序员成长之路的总结<转>
我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,手痒来给新人分享下从新手成长为老鸟的已见. 首先初识语法的阶段,必须要学会怎么操作对象,操作if和for,操作list set ...
- CSS3学习之分享下transition属性
最近在网上看到很多transition写的效果,借鉴http://www.w3school.com.cn分享下代码, 1.语法:transition: property duration timing ...
- 【转载】分享下多年积累的对JAVA程序员成长之路的总结
注:该文是从百度贴吧转载过来,之前看到觉得写得还不错,对Java开发学习者来说很有意义的,可以看看. 我也搞了几年JAVA了,由于一向懒惰,没有成为大牛,只是一普通程序猿,不爱玩社交网站,不爱玩微博, ...
- 轻松搞定Ajax(分享下自己封装ajax函数,其实Ajax使用很简单,难是难在你得到数据后来怎样去使用这些数据)
hey,guys!今天我们一起讨论下ajax吧!此文只适合有一定ajax基础,但还是模糊状态的同志,当然高手也可以略过~~~ 一.概念 Ajax(Asynchronous Javascript + X ...
- CentOS6.5 下在Nginx中添加SSL证书以支持HTTPS协议访问
参考文献: 1. NginxV1.8.0安装与配置 2. CentOS下在Nginx中添加SSL证书以支持HTTPS协议访问 3. nginx配置ssl证书的方法 4.nginx强制使用https访问 ...
- 【架构师之路】集群/分布式环境下5种session处理策略
[架构师之路]集群/分布式环境下5种session处理策略 转自:http://www.cnblogs.com/jhli/p/6557929.html 在搭建完集群环境后,不得不考虑的一个问题就是 ...
- 分享下使用 svn,测试服务器代码自动更新、线上服务器代码手动更新的配置经验
分享下使用 svn,测试服务器代码自动更新.线上服务器代码手动更新的配置经验 利用SVN的POST-COMMIT钩子自动部署代码 Linux SVN 命令详解 Linux SVN 命令详解2 使用sv ...
随机推荐
- 线段树(单点更新) POJ 2828 Buy tickets
题目传送门 /* 结点存储下面有几个空位 每次从根结点往下找找到该插入的位置, 同时更新每个节点的值 */ #include <cstdio> #define lson l, m, rt ...
- python函数基础(3)
第1章 编码补充 1.1 字符编码对照表 1.2 编码特性 1.4 encode/decode第2章 集合 2.1 特点 2.2 [重点]作用:去重 2.3 常用操作 2.3.1 删除 2.3.2 交 ...
- Centos 6.5安装MySQL-Python遇到的问题--解决办法一
系统:CentOS release 6.5 (Final) MySQL版本:mysql Ver 14.14 Distrib 5.7.19, for Linux (x86_64) using Edi ...
- Pycharm中pygame报错
什么鬼???我记得刚安装过啊-.. 并且本机只有一个python3.5,环境变量之前都是正常,我去折腾了大半天,原来在pycharm中安装模块是在如下所示图中 以后如果没有安装模块,都可以在这里进行安 ...
- eclipse 闪退原因
电脑关机后 重启发现eclipse竟然打不开了,打开出现闪退,原因是: 1.JDK版本不一致,或者你电脑上安装了多个版本: 2.环境变量:安装了其他软件比如:oracle 它自带有一个较低版本的JDK ...
- Error: IO_ERROR : java.io.IOException: Error while connecting Oozie server. No of retries = 5. Exception = Connection refused (Connection refused)解决办法(图文详解)
不多说,直接上干货! 问题详情 解决办法 Copy/Paste oozie.services property tag set from oozie-default.xml to oozie-site ...
- neo4j(图数据库)是什么?
不多说,直接上干货! 作为一款强健的,可伸缩的高性能数据库,Neo4j最适合完整的企业部署或者用于一个轻量级项目中完整服务器的一个子集存在. 它包括如下几个显著特点: 完整的ACID支持 高可用性 轻 ...
- PHP使用iconv函数遍历数组转换字符集
/** * 字符串/二维数组/多维数组编码转换 * @param string $in_charset * @param string $out_charset * @param mixed $dat ...
- Mysql框架---HMySql
Java 数据库框架 在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单. 但是本文不会 ...
- php 生成饼状图,折线图,条形图 通用类 2
生成饼状图,折线图,条形图通用的php类,这里使用的是国外的 HighCharts,前台页面别忘了调用HighCahrt js HighCharts中文网站 http://www.hcharts. ...