Skip to content

Commit 373b4ca

Browse files
committed
add algorithm
1 parent fb11b7c commit 373b4ca

File tree

6 files changed

+693
-74
lines changed

6 files changed

+693
-74
lines changed

algorithm.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import websockets
2+
import json
3+
import asyncio
4+
import sys
5+
from amazons import Amazons
6+
from mcts import MCTS
7+
8+
async def connect():
9+
board = Amazons()
10+
port = sys.argv[1]
11+
uri = f'ws://localhost:{port}'
12+
async with websockets.connect(uri) as socket:
13+
player = str(await socket.recv())
14+
tree = MCTS(player, budget=int(sys.argv[2]))
15+
print(player)
16+
17+
await socket.recv()
18+
print('start')
19+
20+
if player == 'B':
21+
print('thinking')
22+
cheese, arrow = tree.getMove(board, player)
23+
board.fire(player, cheese, 0)
24+
board.fire(player, arrow, 1)
25+
tree.updateRoot(player)
26+
await socket.send(json.dumps({'move': cheese, 'kw': 0}))
27+
await socket.send(json.dumps({'move': arrow, 'kw': 1}))
28+
29+
while True:
30+
move = await socket.recv()
31+
move = json.loads(move)
32+
board.fire(move['player'], move['move'], move['kw'])
33+
34+
move = await socket.recv()
35+
move = json.loads(move)
36+
board.fire(move['player'], move['move'], move['kw'])
37+
38+
print('thinking')
39+
cheese, arrow = tree.getMove(board, player)
40+
board.fire(player, cheese, 0)
41+
board.fire(player, arrow, 1)
42+
tree.updateRoot(player)
43+
print(cheese, arrow)
44+
await socket.send(json.dumps({'move': cheese, 'kw': 0}))
45+
await socket.send(json.dumps({'move': arrow, 'kw': 1}))
46+
47+
asyncio.get_event_loop().run_until_complete(connect())

0 commit comments

Comments
 (0)