def begin_puzzle_game(request): match = Match.objects.get(id=request.session['match']) game = cached.get_game(match.id) if request.user.is_authenticated(): player_name = request.user.username else: player_name = game_master.ANON_PLAYER_NAME hand = game_master.draw_up_to(game, player_name, 5) # init puzzle life game['players'][player_name]['life'] = match.puzzle.player_life # puzzle starting units starting_units = PuzzleStartingUnit.objects.filter(puzzle=match.puzzle) for starting_unit in starting_units: game_master.play(game, 'ai', starting_unit.unit_card.pk, 'ai', starting_unit.location.row, starting_unit.location.x, ignore_hand=True) cached.save(game) censored = game_master.get_censored(game, player_name) return HttpResponse(simplejson.dumps(censored), "application/javascript")
def do_turns(game, player_moves): from d_game import ai player_name = game['player'] opponent_name = get_opponent_name(game, player_name) logging.info("XXX player hand: %s" % get_player(game, player_name)['hand']) # turn init heal(game, player_name) refill_tech(game, player_name) remove_summoning_sickness(game, player_name) do_turn(game, player_name, player_moves) # AI turn init heal(game, opponent_name) refill_tech(game, opponent_name) draw(game, opponent_name, get_player(game, opponent_name)['num_to_draw']) remove_summoning_sickness(game, opponent_name) # AI decides what to do (but doens't actually affect the # game state yet ai_moves, ai_turn = ai.get_turn(game, opponent_name) # log the turn for client-server verification purposes # and process its decisions. game_before_ai = simplejson.dumps(game) do_turn(game, opponent_name, ai_moves) game_after_ai = simplejson.dumps(game) # get 2 new cards for player # this is out of order because we're actually drawing # for the player's next turn, not the current one just processed logging.info("XXX player is about to draw %s" % get_player(game, player_name)['num_to_draw']) draw_cards = draw(game, player_name, get_player(game, player_name)['num_to_draw']) # save turn changes on server cached.save(game) #serialize and ship it hand_and_turn_json = """{ 'player_draw': %s, 'ai_turn': %s, 'verify_board_state_before_ai': %s, 'verify_board_state_after_ai': %s, }""" % (simplejson.dumps(draw_cards), simplejson.dumps(ai_turn), game_before_ai, game_after_ai) return hand_and_turn_json
def begin_ai_game(request): match = Match.objects.get(id=request.session["match"]) game = cached.get_game(match.id) if request.user.is_authenticated(): player_name = request.user.username else: player_name = game_master.ANON_PLAYER_NAME hand = game_master.draw_up_to(game, player_name, 5) cached.save(game) censored = game_master.get_censored(game, player_name) game = cached.get_game(match.id) return HttpResponse(simplejson.dumps(censored), "application/javascript")