|
|
|
|
@@ -2,7 +2,7 @@ from app_instance import api
|
|
|
|
|
|
|
|
|
|
from wiz_game import the_game
|
|
|
|
|
from starlette.websockets import WebSocketDisconnect
|
|
|
|
|
|
|
|
|
|
import asyncio
|
|
|
|
|
|
|
|
|
|
@api.route("/player/{player}")
|
|
|
|
|
def show(req, resp, player: str):
|
|
|
|
|
@@ -31,19 +31,28 @@ def show(req, resp, player: str):
|
|
|
|
|
|
|
|
|
|
@api.route("/player/{player}/play/{card}")
|
|
|
|
|
async def play(req, resp, player: str, card: str):
|
|
|
|
|
lock = asyncio.Lock()
|
|
|
|
|
p = int(player)
|
|
|
|
|
c = int(card)
|
|
|
|
|
the_game.play_card(p, c)
|
|
|
|
|
if the_game.is_hand_finished():
|
|
|
|
|
print("hand finished")
|
|
|
|
|
trick_winner, highest_card = the_game.get_trick_winner()
|
|
|
|
|
trick_winner.take_trick()
|
|
|
|
|
#the_game.next_hand()
|
|
|
|
|
elif the_game.is_trick_finished():
|
|
|
|
|
print("trick finished")
|
|
|
|
|
trick_winner, highest_card = the_game.get_trick_winner()
|
|
|
|
|
trick_winner.take_trick()
|
|
|
|
|
the_game.next_trick()
|
|
|
|
|
|
|
|
|
|
async with lock:
|
|
|
|
|
try:
|
|
|
|
|
isActive = the_game.players_ordered[the_game.active_player].id == p
|
|
|
|
|
except IndexError:
|
|
|
|
|
isActive = False
|
|
|
|
|
print("show p: {} | {}".format('None', p))
|
|
|
|
|
if isActive:
|
|
|
|
|
the_game.play_card(p, c)
|
|
|
|
|
if the_game.is_hand_finished():
|
|
|
|
|
print("hand finished")
|
|
|
|
|
trick_winner, highest_card = the_game.get_trick_winner()
|
|
|
|
|
trick_winner.take_trick()
|
|
|
|
|
#the_game.next_hand()
|
|
|
|
|
elif the_game.is_trick_finished():
|
|
|
|
|
print("trick finished")
|
|
|
|
|
trick_winner, highest_card = the_game.get_trick_winner()
|
|
|
|
|
trick_winner.take_trick()
|
|
|
|
|
the_game.next_trick()
|
|
|
|
|
|
|
|
|
|
url = '/player/'+player
|
|
|
|
|
for ws in the_game.websockets:
|
|
|
|
|
|