设为首页 加入收藏

TOP

分享下自己的EmpireofCode进攻策略 https://empireofcode.com/ https://empireofcode.com/game/#(一)
2017-12-18 12:37:16 】 浏览:222
Tags:分享 自己 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 = 0
towers = []
safe_posi=[40,40]
center1 = [[40,0],[20,0]]
center2 = [[20,7],[20,17]]
center3 = [[20,7],[20,18]]
# 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[0]['coordinates'][0]/2+unit_posi[1]['coordinates'][0]/2), int(unit_posi[0]['coordinates'][1]/2+unit_posi[1]['coordinates'][1]/2)]
    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[1]
    return safe_posi
    
def go_to_center2(*args, **kwargs):
    global safe_posi
    unit_client.do_moves(center2)
    safe_posi = center2[1]
    return safe_posi
 
def go_to_center3(*args, **kwargs):
    global safe_posi
    unit_client.do_moves(center3)
    safe_posi = center3[1]
    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[0])**2+(y-safe_posi[1])**2,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]-1
    percent = attac_posi/towerrg[first]
    safe_posi = (towerps[first][0] - safe_posi[0])*percent, (towerps[first][1] - safe_posi[1])*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
首页 上一页 1 2 下一页 尾页 1/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python 高阶函数三 filter()和sor.. 下一篇python 闭包 Closure 函数作为返..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目