playing cards per websocket now :)
This commit is contained in:
		@@ -33,22 +33,14 @@ def index(req, resp):
 | 
			
		||||
@api.route("/control/next_hand/")
 | 
			
		||||
async def start_next_hand(req, resp):
 | 
			
		||||
    the_game.next_hand()
 | 
			
		||||
    for ws in the_game.websockets:
 | 
			
		||||
        try:
 | 
			
		||||
            await ws.send_text("reload")
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            pass
 | 
			
		||||
    await the_game.send_page_reload()
 | 
			
		||||
    api.redirect(resp, '/control/', status_code=303)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api.route("/control/next_trick/")
 | 
			
		||||
async def start_next_trick(req, resp):
 | 
			
		||||
    the_game.next_trick()
 | 
			
		||||
    for ws in the_game.websockets:
 | 
			
		||||
        try:
 | 
			
		||||
            await ws.send_text("reload")
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            pass
 | 
			
		||||
    await the_game.send_page_reload()
 | 
			
		||||
    api.redirect(resp, '/control/', status_code=303)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -60,11 +52,7 @@ async def undo_last(req, resp):
 | 
			
		||||
            p, c = the_game.played_cards.pop()
 | 
			
		||||
            the_game.active_player -= 1
 | 
			
		||||
            p.add_card(c)
 | 
			
		||||
            for ws in the_game.websockets:
 | 
			
		||||
                try:
 | 
			
		||||
                    await ws.send_text("reload")
 | 
			
		||||
                except Exception as e:
 | 
			
		||||
                    pass
 | 
			
		||||
            await the_game.send_page_reload()
 | 
			
		||||
    else:
 | 
			
		||||
        if the_game.num_tricks_played > 0:
 | 
			
		||||
            the_game.num_tricks_played -= 1;
 | 
			
		||||
@@ -75,10 +63,7 @@ async def undo_last(req, resp):
 | 
			
		||||
            the_game.players_ordered = [p for p, _ in the_game.played_cards]
 | 
			
		||||
            p, c = the_game.played_cards.pop()
 | 
			
		||||
            p.add_card(c)
 | 
			
		||||
            for ws in the_game.websockets:
 | 
			
		||||
                try:
 | 
			
		||||
                    await ws.send_text("reload")
 | 
			
		||||
                except Exception as e:
 | 
			
		||||
                    pass
 | 
			
		||||
            await the_game.send_page_reload()
 | 
			
		||||
 | 
			
		||||
    api.redirect(resp, '/control/', status_code=303)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -28,19 +28,15 @@ def show(req, resp, player: str):
 | 
			
		||||
                                trump_card=tcard, trump_color=tcolor, played_cards=the_game.played_cards, last_trick=the_game.last_trick)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api.route("/player/{player}/play/{card}")
 | 
			
		||||
async def play(req, resp, player: str, card: str):
 | 
			
		||||
    p = int(player)
 | 
			
		||||
    c = int(card)
 | 
			
		||||
 | 
			
		||||
async def play_card(player, card):
 | 
			
		||||
    global playing_lock
 | 
			
		||||
    async with playing_lock:
 | 
			
		||||
        try:
 | 
			
		||||
            isActive = the_game.players_ordered[the_game.active_player].id == p
 | 
			
		||||
            isActive = the_game.players_ordered[the_game.active_player].id == player
 | 
			
		||||
        except IndexError:
 | 
			
		||||
            isActive = False
 | 
			
		||||
        if isActive:
 | 
			
		||||
            the_game.play_card(p, c)
 | 
			
		||||
            the_game.play_card(player, card)
 | 
			
		||||
            if the_game.is_hand_finished():
 | 
			
		||||
                trick_winner, highest_card = the_game.get_trick_winner()
 | 
			
		||||
                trick_winner.take_trick()
 | 
			
		||||
@@ -48,13 +44,15 @@ async def play(req, resp, player: str, card: str):
 | 
			
		||||
                trick_winner, highest_card = the_game.get_trick_winner()
 | 
			
		||||
                trick_winner.take_trick()
 | 
			
		||||
                the_game.next_trick()
 | 
			
		||||
    await the_game.send_page_reload()
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@api.route("/player/{player}/play/{card}")
 | 
			
		||||
async def play(req, resp, player: str, card: str):
 | 
			
		||||
    p = int(player)
 | 
			
		||||
    c = int(card)
 | 
			
		||||
    play_card(p, c)
 | 
			
		||||
    url = '/player/'+player
 | 
			
		||||
    for ws in the_game.websockets:
 | 
			
		||||
        try:
 | 
			
		||||
            await ws.send_text("reload")
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            pass
 | 
			
		||||
    api.redirect(resp, url, status_code=303)
 | 
			
		||||
 | 
			
		||||
@api.route("/player/{player}/set_trump/{trump}")
 | 
			
		||||
@@ -62,11 +60,7 @@ async def set_trump_color(req, resp, player, trump):
 | 
			
		||||
    p = int(player)
 | 
			
		||||
    the_game.set_trump_color(trump)
 | 
			
		||||
    url = '/player/'+player
 | 
			
		||||
    for ws in the_game.websockets:
 | 
			
		||||
        try:
 | 
			
		||||
            await ws.send_text("reload")
 | 
			
		||||
        except Exception as e:
 | 
			
		||||
            pass
 | 
			
		||||
    await the_game.send_page_reload()
 | 
			
		||||
    api.redirect(resp, url, status_code=303)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -75,7 +69,11 @@ async def websocket(ws):
 | 
			
		||||
    await ws.accept()
 | 
			
		||||
    the_game.websockets.append(ws)
 | 
			
		||||
    try:
 | 
			
		||||
        foo = await ws.receive_text()
 | 
			
		||||
        cmd = await ws.receive_text()
 | 
			
		||||
        fct, args = cmd.split()
 | 
			
		||||
        if fct == "playcard":
 | 
			
		||||
            p, c = map(int, args.split(':'))
 | 
			
		||||
            await play_card(p, c)
 | 
			
		||||
    except WebSocketDisconnect:
 | 
			
		||||
        the_game.websockets.remove(ws)
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user