Exemple #1
0
def request_context(request, params):
    from django.utils.html import escape
    import re

    # protect against cross-site request forgery
    params.update(csrf(request))

    # set up the URLs for the app-wide menus
    params['logout_url'] = '/paigow/logout'
    params['home_url'] = '/paigow/home'

    params['activities'] = ({'name': "New Game", 'url': '/paigow/game/new'}, )
    params['is_mobile'] = re.match('.*mobile.*',
                                   request.META['HTTP_USER_AGENT'],
                                   re.IGNORECASE)
    params['is_firefox'] = re.match('.*mozilla.*',
                                    request.META['HTTP_USER_AGENT'],
                                    re.IGNORECASE)
    print request.META['HTTP_USER_AGENT']
    print "is_mobile: " + str(params['is_mobile'])
    print "is_firefox: " + str(params['is_firefox'])

    # setup players and possible opponents
    player = session_player(request)
    params['player'] = player
    if (not player):
        request.session['player_id'] = None
        params['playername'] = None
        params['opponents'] = None
        params['opponent'] = None
    else:
        params['playername'] = escape(player.name)
        params['opponents'] = player.all_possible_opponents()
        if ('game' in params):
            game = params['game']
            params['opponent'] = player.opponent_for_deal(
                game, params['deal_number'])
            params['title'] = "Pai Gow 321: " + escape(game.name)
            params['game_state'] = game.state()

    # set up the states
    params['tiles_are_set_state'] = PGPlayerInDeal.state_ui(
        PGPlayerInDeal.READY)
    params['setting_tiles_state'] = PGPlayerInDeal.state_ui(
        PGPlayerInDeal.SETTING_TILES)
    params['preview_hands_state'] = PGPlayerInDeal.state_ui(
        PGPlayerInDeal.PREVIEW_HANDS)

    return RequestContext(request, params)
Exemple #2
0
def play_game(request, game_id, deal_number_str, params={}):

    from models.pgtile import PGTile
    from pghand import PGHand

    player_id = request.session.get('player_id', False)
    if (not player_id):
        return goto_home(request)
    player = PGPlayer.objects.get(id=player_id)

    # get the game from the db
    game = PGGame.with_id(game_id)
    if (not game):
        messages.add_message(
            request, messages.ERROR,
            "WTF?  That game has disappeared into the ether (which doesn't exist)"
        )
        return goto_home(request)
    params['game'] = game

    # get the deal number
    deal_number = int(deal_number_str)
    params['deal_number'] = deal_number

    # set the score for the other player.
    players_in_game = game.players()

    # make sure you're in the game: you can't look at other games.
    if not (player in players_in_game):
        messages.add_message(
            request, messages.ERROR,
            "I'm sorry, you are not allowed in that game, it's only for VIPs")
        return goto_home(request)

    # this sets up pig, don't get it fgirst
    params['pgsets'] = game.sets_for_player(session_player(request),
                                            deal_number)

    # set the game and score for you
    pid = game.player_in_deal(player, deal_number)
    params['score_player'] = game.score_as_of_deal_for_player(
        player, deal_number)

    # set up the opponent for the template
    opponent = session_player(request).opponent_for_deal(game, deal_number)

    # get your opponent's score
    #pido = game.player_in_deal( opponent, deal_number )
    params['score_opponent'] = game.score_as_of_deal_for_player(
        opponent, deal_number)

    # create the hands for this player (sets_for_player should be called first)
    params['pgtile_size'] = "medium"
    params['current_player_state'] = PGPlayerInDeal.state_ui(pid.state())

    return render_to_response('game_play.html',
                              request_context(request, params))
Exemple #3
0
def request_context( request, params ):
  from django.utils.html import escape
  import re
  
  # protect against cross-site request forgery
  params.update( csrf( request ) )
  
  # set up the URLs for the app-wide menus
  params['logout_url'] = '/paigow/logout'
  params['home_url'] = '/paigow/home'
  
  params['activities'] = ( { 'name': "New Game", 'url': '/paigow/game/new' }, )
  params['is_mobile'] = re.match( '.*mobile.*', request.META['HTTP_USER_AGENT'], re.IGNORECASE )
  params['is_firefox'] = re.match( '.*mozilla.*', request.META['HTTP_USER_AGENT'], re.IGNORECASE )
  print request.META['HTTP_USER_AGENT']
  print "is_mobile: " + str(params['is_mobile'])
  print "is_firefox: " + str(params['is_firefox'])


  # setup players and possible opponents
  player = session_player( request )
  params['player'] = player
  if ( not player ):
    request.session['player_id'] = None
    params['playername'] = None
    params['opponents'] = None
    params['opponent'] = None
  else:
    params['playername'] = escape(player.name)
    params['opponents'] = player.all_possible_opponents()
    if ( 'game' in params ):
      game = params['game']
      params['opponent'] = player.opponent_for_deal( game, params['deal_number'] )
      params['title'] = "Pai Gow 321: " + escape( game.name )
      params['game_state'] = game.state()
  
  
  # set up the states
  params['tiles_are_set_state'] = PGPlayerInDeal.state_ui( PGPlayerInDeal.READY )
  params['setting_tiles_state'] = PGPlayerInDeal.state_ui( PGPlayerInDeal.SETTING_TILES )
  params['preview_hands_state'] = PGPlayerInDeal.state_ui( PGPlayerInDeal.PREVIEW_HANDS )

  return RequestContext( request, params )
Exemple #4
0
def play_game( request, game_id, deal_number_str, params = {} ):
  
  from models.pgtile import PGTile
  from pghand import PGHand
  
  player_id = request.session.get('player_id', False) 
  if ( not player_id ):
    return goto_home( request )
  player = PGPlayer.objects.get( id = player_id )
  
  # get the game from the db
  game = PGGame.with_id( game_id )
  if ( not game ):
    messages.add_message( request, messages.ERROR, "WTF?  That game has disappeared into the ether (which doesn't exist)" )
    return goto_home( request )
  params['game'] = game

  # get the deal number
  deal_number = int( deal_number_str )
  params['deal_number'] = deal_number
  
  # set the score for the other player.
  players_in_game = game.players()
  
  # make sure you're in the game: you can't look at other games.
  if not ( player in players_in_game ):
    messages.add_message( request, messages.ERROR, "I'm sorry, you are not allowed in that game, it's only for VIPs" )
    return goto_home( request )
  
  # this sets up pig, don't get it fgirst
  params['pgsets'] = game.sets_for_player( session_player( request ), deal_number )

  # set the game and score for you
  pid = game.player_in_deal( player, deal_number )
  params['score_player'] = game.score_as_of_deal_for_player( player, deal_number )
  
  # set up the opponent for the template
  opponent = session_player( request ).opponent_for_deal( game, deal_number )
  
  # get your opponent's score
  #pido = game.player_in_deal( opponent, deal_number )
  params['score_opponent'] = game.score_as_of_deal_for_player( opponent, deal_number )
  
  # create the hands for this player (sets_for_player should be called first)
  params['pgtile_size'] = "medium"
  params['current_player_state'] = PGPlayerInDeal.state_ui( pid.state() )
  
  return render_to_response( 'game_play.html', request_context( request, params ) )