from app_instance import api from wiz_game import the_game @api.route("/control/") def index(req, resp): hand_finished = the_game.is_hand_finished() trick_finished = the_game.is_trick_finished() if hand_finished: trick_winner, highest_card = the_game.get_trick_winner() winner = trick_winner.name resp.content = api.template('home/control.html', deck=the_game.card_deck, trump_card=the_game.trump_card, trump_color=the_game.get_trump_color(), hand_finished=True, trick_finished=False, trick_winner=winner, highest_card=highest_card ) elif trick_finished: trick_winner, highest_card = the_game.get_trick_winner() winner = trick_winner.name resp.content = api.template('home/control.html', deck=the_game.card_deck, trump_card=the_game.trump_card, trump_color=the_game.get_trump_color(), round_finished=False, trick_finished=True, trick_winner=winner, highest_card=highest_card ) else: resp.content = api.template('home/control.html', deck=the_game.card_deck, trump_card=the_game.trump_card, trump_color=the_game.get_trump_color(), round_finished=False, trick_finished=False ) @api.route("/control/next_hand/") async def start_next_hand(req, resp): the_game.next_hand() 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() await the_game.send_page_reload() api.redirect(resp, '/control/', status_code=303) @api.route("/control/undo_last/") async def undo_last(req, resp): hand_finished = the_game.is_hand_finished() if the_game.played_cards: if not hand_finished: p, c = the_game.played_cards.pop() the_game.active_player -= 1 p.add_card(c) await the_game.send_page_reload() else: if the_game.num_tricks_played > 0: the_game.num_tricks_played -= 1; the_game.played_cards = the_game.last_trick; the_game.active_player = len(the_game.players) - 1 player, _ = the_game.get_trick_winner() player.tricks_taken -= 1 the_game.players_ordered = [p for p, _ in the_game.played_cards] p, c = the_game.played_cards.pop() p.add_card(c) await the_game.send_page_reload() api.redirect(resp, '/control/', status_code=303)