Exemple #1
0
 def __init__(self, player_name, character_name):
     self._player_name = player_name
     if character_name not in cluestatics.get_character_names():
         raise ValueError(
             u"Charactername {0:s} does not exist.".format(character_name))
     self._character_name = character_name
     self._objects = []
Exemple #2
0
 def test_get_hiddencard(self):
     g = self.set_up_to_player_gb()
     g.start_game()
     hidden_cards = g.get_hidden_cards()
     assert (hidden_cards[0] in cluestatics.get_character_names())
     assert (hidden_cards[1] in cluestatics.get_weapon_names())
     assert (hidden_cards[2] in cluestatics.get_room_card_names())
Exemple #3
0
 def set_objects(self, objects):
     all_objs = (cluestatics.get_character_names() +
                 cluestatics.get_room_names() +
                 cluestatics.get_weapon_names())
     for obj in objects:
         if obj not in all_objs:
             raise ValueError(u"'{0:s} not a valid Clue object".format(obj))
     self._objects = objects
Exemple #4
0
def gameboard_js():
    gameboard_dict = {
        u"gameboard":
        guimisc.get_object_media_path(u"gameboard"),
        u"mobs": [(name, guimisc.get_mob_media_path(name))
                  for name in cluestatics.get_character_names()]
    }
    js = render_template("gameboard.js", **gameboard_dict)
    return Response(js, mimetype=u"text/javascript")
Exemple #5
0
def js_files():
    data = {
        u"passcard_path":
        guimisc.PASSCARD_PATH,
        u"gamecards":
        [(itm, guimisc.get_object_media_path(itm))
         for itm in cluestatics.get_character_names() +
         cluestatics.get_room_card_names() + cluestatics.get_weapon_names()]
    }
    js = render_template(u"cluecomm.js", **data)
    return Response(js, mimetype=u"text/javascript")
Exemple #6
0
def gamepanel():
    try:
        rsid = id_rsid[session[u"id"]]
        myplayer = player[rsid]
    except KeyError:
        return abort(404)
    player_cards = [(card, guimisc.get_object_media_path(card))
                    for card in game.get_player(player[rsid]).get_objects()]
    res = render_template("game.html",
                          playername=myplayer,
                          mycards=player_cards,
                          killers=cluestatics.get_character_names(),
                          weapons=cluestatics.get_weapon_names(),
                          rooms=cluestatics.get_room_card_names())
    return Response(res, mimetype=u"text/html")
Exemple #7
0
 def __init__(self, killer, weapon, scene, guess_order):
     if killer not in cluestatics.get_character_names():
         raise ValueError(
             u"'{0:s}' is not a valid clue character".format(killer))
     if weapon not in cluestatics.get_weapon_names():
         raise ValueError(
             u"'{0:s}' is not a valid clue weapon".format(weapon))
     if scene not in cluestatics.get_room_names():
         raise ValueError(u"'{0:s}' is not a valid clue room".format(scene))
     self._killer = killer
     self._weapon = weapon
     self._scene = scene
     self._guess_order = guess_order
     self._passed_players = []
     self._answer = None
Exemple #8
0
 def deal_object_cards(self):
     characters = cluestatics.get_character_names()
     weapons = cluestatics.get_weapon_names()
     rooms = cluestatics.get_room_card_names()
     idx_killer = random_integer(len(characters) - 1)
     idx_weapon = random_integer(len(weapons) - 1)
     idx_room = random_integer(len(rooms) - 1)
     self._gameobjects = (
         characters.pop(idx_killer),
         weapons.pop(idx_weapon),
         rooms.pop(idx_room),
     )
     remaining_cards = characters + weapons + rooms
     for i, p in enumerate(self._player[::-1]):
         to_deal = len(remaining_cards) // (len(self._player) - i)
         cards = []
         for i in range(to_deal):
             cards.append(
                 remaining_cards.pop(
                     random_integer(len(remaining_cards) - 1)))
         p.set_objects(cards)
Exemple #9
0
 def test_deal_game_object_cards(self):
     g = self.set_up_full_gb()
     g.deal_object_cards()
     assert (g._gameobjects[0] in cluestatics.get_character_names())
     assert (g._gameobjects[1] in cluestatics.get_weapon_names())
     assert (g._gameobjects[2] in cluestatics.get_room_names())
Exemple #10
0
def get_guess_dict():
    killers = cluestatics.get_character_names()
    weapons = cluestatics.get_weapon_names()
    rooms = [game.get_active_room()]
    return {u"killers": killers, u"weapons": weapons, u"rooms": rooms}
Exemple #11
0
 def get_available_characters(self):
     playing_characters = [itm.get_charactername() for itm in self._player]
     return [
         name for name in cluestatics.get_character_names()
         if name not in playing_characters
     ]