2020 fall basic implem with best available recipe
This commit is contained in:
parent
a55394ce5d
commit
9edf191bc1
1 changed files with 52 additions and 35 deletions
|
@ -1,13 +1,23 @@
|
||||||
import sys
|
import sys
|
||||||
import math
|
import math
|
||||||
|
|
||||||
# Auto-generated code below aims at helping you parse
|
|
||||||
# the standard input according to the problem statement.
|
def debug(*args, **kwargs):
|
||||||
|
print(*args, file=sys.stderr, flush=True, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
|
def is_doable(inventory, recipe_delta):
|
||||||
|
for inv, rec in zip(inventory, recipe_delta):
|
||||||
|
if inv + rec < 0:
|
||||||
|
return False
|
||||||
|
return True
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
# game loop
|
# game loop
|
||||||
while True:
|
while True:
|
||||||
action_count = int(input()) # the number of spells and recipes in play
|
action_count = int(input()) # the number of spells and recipes in play
|
||||||
|
recipes = []
|
||||||
for i in range(action_count):
|
for i in range(action_count):
|
||||||
# action_id: the unique ID of this spell or recipe
|
# action_id: the unique ID of this spell or recipe
|
||||||
# action_type: in the first league: BREW; later: CAST, OPPONENT_CAST, LEARN, BREW
|
# action_type: in the first league: BREW; later: CAST, OPPONENT_CAST, LEARN, BREW
|
||||||
|
@ -22,23 +32,30 @@ while True:
|
||||||
# repeatable: for the first two leagues: always 0; later: 1 if this is a repeatable player spell
|
# repeatable: for the first two leagues: always 0; later: 1 if this is a repeatable player spell
|
||||||
action_id, action_type, delta_0, delta_1, delta_2, delta_3, price, tome_index, tax_count, castable, repeatable = input().split()
|
action_id, action_type, delta_0, delta_1, delta_2, delta_3, price, tome_index, tax_count, castable, repeatable = input().split()
|
||||||
action_id = int(action_id)
|
action_id = int(action_id)
|
||||||
delta_0 = int(delta_0)
|
delta = [int(delta_0), int(delta_1), int(delta_2), int(delta_3)]
|
||||||
delta_1 = int(delta_1)
|
|
||||||
delta_2 = int(delta_2)
|
|
||||||
delta_3 = int(delta_3)
|
|
||||||
price = int(price)
|
price = int(price)
|
||||||
|
recipes.append({"price": price, "delta": delta, "action_id": action_id, "action_type": action_type})
|
||||||
tome_index = int(tome_index)
|
tome_index = int(tome_index)
|
||||||
tax_count = int(tax_count)
|
tax_count = int(tax_count)
|
||||||
castable = castable != "0"
|
castable = castable != "0"
|
||||||
repeatable = repeatable != "0"
|
repeatable = repeatable != "0"
|
||||||
for i in range(2):
|
|
||||||
# inv_0: tier-0 ingredients in inventory
|
recipes.sort(reverse=True, key=lambda x: x["price"])
|
||||||
# score: amount of rupees
|
|
||||||
inv_0, inv_1, inv_2, inv_3, score = [int(j) for j in input().split()]
|
inv_0, inv_1, inv_2, inv_3, score = [int(j) for j in input().split()]
|
||||||
|
my_inventory = [inv_0, inv_1, inv_2, inv_3]
|
||||||
|
my_score = score
|
||||||
|
inv_0, inv_1, inv_2, inv_3, score = [int(j) for j in input().split()]
|
||||||
|
enemy_inventory = [inv_0, inv_1, inv_2, inv_3]
|
||||||
|
enemy_score = score
|
||||||
|
|
||||||
# Write an action using print
|
debug(f"{my_inventory}, {recipes}")
|
||||||
# To debug: print("Debug messages...", file=sys.stderr, flush=True)
|
for recipe in recipes:
|
||||||
|
if is_doable(my_inventory, recipe["delta"]):
|
||||||
|
print(f"BREW {recipe['action_id']}")
|
||||||
|
continue
|
||||||
|
print("WAIT")
|
||||||
|
|
||||||
|
|
||||||
# in the first league: BREW <id> | WAIT; later: BREW <id> | CAST <id> [<times>] | LEARN <id> | REST | WAIT
|
if __name__ == "__main__":
|
||||||
print("BREW 0")
|
main()
|
||||||
|
|
Loading…
Reference in a new issue