バックエンドAPI
This commit is contained in:
49
bot_research.py
Normal file
49
bot_research.py
Normal file
@@ -0,0 +1,49 @@
|
||||
from diplomacy import Game
|
||||
import random
|
||||
|
||||
def random_bot_move(game, power_name):
|
||||
# Get all possible orders for the power
|
||||
possible_orders = game.get_all_possible_orders()
|
||||
|
||||
# Check if we have units
|
||||
if not game.get_units(power_name):
|
||||
print(f"Debug: No units found for {power_name}")
|
||||
return []
|
||||
|
||||
# possible_orders[power_name] is a dict: { 'A PAR': ['A PAR H', 'A PAR - BUR', ...], ... }
|
||||
# Or in newer versions, check the structure.
|
||||
# Based on previous output: {'A PAR': [...], 'F BRE': [...]}
|
||||
|
||||
# Wait, my previous test showed get_all_possible_orders() returns { 'LOC': [orders...] }
|
||||
# So we need to find which locations belong to the power.
|
||||
|
||||
power_units = game.get_units(power_name) # ['A PAR', 'F BRE']
|
||||
print(f"Debug: Units for {power_name}: {power_units}")
|
||||
print(f"Debug: Possible orders keys sample: {list(possible_orders.keys())[:5]}")
|
||||
|
||||
orders_to_submit = []
|
||||
|
||||
for unit in power_units:
|
||||
# unit string is "A PAR"
|
||||
loc = unit.split(' ')[1]
|
||||
print(f"Debug: Checking loc {loc}...")
|
||||
|
||||
if loc in possible_orders:
|
||||
unit_orders = possible_orders[loc]
|
||||
print(f"Debug: found {len(unit_orders)} orders for {loc}")
|
||||
if unit_orders:
|
||||
selected = random.choice(unit_orders)
|
||||
orders_to_submit.append(selected)
|
||||
else:
|
||||
print(f"Debug: Loc {loc} NOT in possible_orders")
|
||||
|
||||
return orders_to_submit
|
||||
|
||||
if __name__ == "__main__":
|
||||
game = Game()
|
||||
power = "FRANCE"
|
||||
print(f"Generating random orders for {power}...")
|
||||
orders = random_bot_move(game, power)
|
||||
print("Selected Orders:")
|
||||
for o in orders:
|
||||
print(f"- {o}")
|
||||
Reference in New Issue
Block a user