コード例 #1
0
 def _roomHandler(self, room: Room):
     room.loop()  # start room loop
     # del room
     self.__lock.acquire()
     it = 0
     while it < len(self.rooms):
         if self.rooms[it] == room:
             break
         it += 1
     assert it < len(self.rooms), "Unknown error when room handler"
     for u in room.user:
         self.ship[u] = None
     del self.rooms[it]
     self.__lock.release()
コード例 #2
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_deal_timeout(wsserver, players):
    room = Room(1, wsserver, RoomType.TwoPlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.handlePlayerReady(players[0])
    room.handlePlayerReady(players[1])
    assert (len(room.players[1].cards) == 5)
    assert (len(room.players[2].cards) == 5)
    room.handlePlayerDeal(players[0], room.players[1].cards[:2])
    players[0].latest_receive()
    players[1].latest_receive()
    room.handlePlayerDealTimeout(players[1])
    assert (len(room.players[1].cards) == 5)
    assert (len(room.players[2].cards) == 5)
    assert (room.currentDealIndex == 0)
コード例 #3
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_dispatch_cards(wsserver, players):
    room = Room(1, wsserver, RoomType.TwoPlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.players[1].cards = [1, 2, 3]
    room.dispatchCards()
    assert (len(players[0].latest_receive()["cards"]) == 2)
    assert (len(players[1].latest_receive()["cards"]) == 5)
コード例 #4
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_deal_triggrt_new_round(wsserver, players):
    room = Room(1, wsserver, RoomType.TwoPlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.handlePlayerReady(players[0])
    room.handlePlayerReady(players[1])
    players[0].latest_receive()
    players[1].latest_receive()
    room.players[1].cards = [1]
    room.players[2].cards = []
    room.players[2].isPassing = True
    room.handlePlayerDeal(players[0], [1])
    assert (len(players[0].receive()["cards"]) == 1)
    assert (len(players[1].receive()["cards"]) == 1)
    assert (len(players[0].receive()["cards"]) == 5)
    assert (len(players[1].receive()["cards"]) == 5)
    assert (len(room.players[1].cards) == 5)
    assert (len(room.players[2].cards) == 5)
    assert (room.currentDealIndex == 0)
コード例 #5
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_deal(wsserver, players):
    room = Room(1, wsserver, RoomType.TwoPlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.handlePlayerReady(players[0])
    room.handlePlayerReady(players[1])
    players[0].latest_receive()
    players[1].latest_receive()
    room.handlePlayerDeal(players[0], room.players[1].cards[:2])
    assert (len(players[0].receive()["cards"]) == 2)
    assert (len(players[1].receive()["cards"]) == 2)
    assert (players[0].latest_receive() == {
        "msgId": DealOwnerChangeInd().msgId,
        "playerId": 2,
        "roomId": 1
    })
    assert (players[1].latest_receive() == {
        "msgId": DealOwnerChangeInd().msgId,
        "playerId": 2,
        "roomId": 1
    })
    assert (len(room.players[1].cards) == 3)
コード例 #6
0
ファイル: main.py プロジェクト: Jacobh2/smart-home-ledlight
setting = Setting()

app = Flask(
    __name__,
    template_folder=setting.TEMPLATE_FOLDER,
    static_folder=setting.STATIC_FOLDER,
    static_url_path=setting.STATIC_URL_PATH,
)

auth = Auth0(setting)

# Register this room
if setting.THIS_ROOM:
    logger.info("This room is set to %s", setting.THIS_ROOM)
    room = Room(setting.THIS_ROOM, auth, setting.PIN_RED, setting.PIN_GREEN,
                setting.PIN_BLUE)
    room.bind(app)
    ghome_handler = GoogleHomeActionHandler(room.led, "Hallway LED Strip",
                                            "Hallway Strip",
                                            "Hallway Led Strip", "Hallway")
    logger.info("Google Home Action Handler created. Have agent id: %s",
                ghome_handler.agent_user_id)
else:
    raise Exception("No room set for this room! Please set 'THIS_ROOM' env")


@app.route("/shortcut.png")
@cross_origin(allow_headers=["Content-Type", "Authorization"])
def shortcut():
    return send_from_directory(join(app.root_path, "public"), "shortcut.png")
コード例 #7
0
 def createRoom(self, name: str, desc: str, flh: str, kch: str, kcm: str,
                user: User, type: int):
     room = Room(name, desc, 3, flh, kch, kcm, type)
     self.exitRoom(user)
     self.joinRoom(room, user)
コード例 #8
0
ファイル: roomhandler.py プロジェクト: war4uthor/zuul-python
    def setup(self):
        #Create rooms
        forest = Room(
            "Forest",
            "an enchanted forest. You hear a gentle breeze whistling through its trees.",
            {}, [
                self.characters.get_character("Bob"),
                self.characters.get_character("Lofty")
            ], [])
        tower = Room("Tower", "a tall stone tower elevated above the clouds.",
                     {}, [self.characters.get_character("Rapunzel")],
                     [self.items.get_item("hairbrush")])
        cave = Room(
            "Cave",
            "a deep, rocky cavern. Voices are emanating from deep within.", {},
            [self.characters.get_character("Rocky")],
            [self.items.get_item("lantern"),
             self.items.get_item("book")])
        cottage = Room(
            "Cottage",
            "a quaint little cottage with a thatched roof. A thick, green smog fumes from the chimney.",
            {}, [self.characters.get_character("Morgana")],
            [self.items.get_item("broomstick")])
        swamp = Room(
            "Swamp", "a dark, murky swamp. The marshes bubble and ooze slime.",
            {}, [self.characters.get_player()], [self.items.get_item("watch")])
        castle = Room(
            "Castle",
            "an enormous castle with a moat and drawbridge. Its lofty spires are adorned with gold.",
            {}, [self.characters.get_character("James")],
            [self.items.get_item("gold")])

        #Create exits
        forest.set_exits({
            "north": cave,
            "east": tower,
            "south": castle,
            "west": None
        })
        tower.set_exits({
            "north": cottage,
            "east": None,
            "south": swamp,
            "west": forest
        })
        cave.set_exits({
            "north": None,
            "east": cottage,
            "south": forest,
            "west": None
        })
        cottage.set_exits({
            "north": None,
            "east": None,
            "south": tower,
            "west": cave
        })
        swamp.set_exits({
            "north": tower,
            "east": None,
            "south": None,
            "west": castle
        })
        castle.set_exits({
            "north": forest,
            "east": swamp,
            "south": None,
            "west": None
        })

        self.characters.get_player().set_room(swamp)
        self.characters.get_character("Bob").set_room(forest)
        self.characters.get_character("Lofty").set_room(forest)
        self.characters.get_character("Rapunzel").set_room(tower)
        self.characters.get_character("Rocky").set_room(cave)
        self.characters.get_character("Morgana").set_room(cottage)
        self.characters.get_character("James").set_room(castle)
コード例 #9
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_leave_room(wsserver, players):
    room = Room(1, wsserver, RoomType.ThreePlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.handlePlayerJoinRoom(players[2])
    assert (room.isFull())
    ## first player leave room
    room.handlePlayerLeaveRoom(players[0])
    expectPlayerLeaveRoomInd = {
        "msgId": PlayerLeaveRoomInd().msgId,
        "playerInfo": {
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": False
        }
    }
    assert (players[1].latest_receive() == expectPlayerLeaveRoomInd)
    assert (players[2].latest_receive() == expectPlayerLeaveRoomInd)
    ## second player leave room
    room.handlePlayerLeaveRoom(players[1])
    expectPlayerLeaveRoomInd = {
        "msgId": PlayerLeaveRoomInd().msgId,
        "playerInfo": {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": False
        }
    }
    assert (players[2].latest_receive() == expectPlayerLeaveRoomInd)
    ## third player leave room
    room.handlePlayerLeaveRoom(players[2])
    expectPlayerLeaveRoomInd = {
        "msgId": PlayerLeaveRoomInd().msgId,
        "playerInfo": {
            "playerId": 3,
            "roomId": 1,
            "index": 2,
            "isReady": False
        }
    }
    assert (room.isEmpty())
コード例 #10
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_join_room(wsserver, players):
    room = Room(1, wsserver, RoomType.ThreePlayersRoom)
    ## first player join
    room.handlePlayerJoinRoom(players[0])
    expectRoomInfoInd = {
        "msgId": RoomInfoInd().msgId,
        "players": [{
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": False
        }]
    }
    assert (players[0].receive() == expectRoomInfoInd)
    assert (not room.isFull())
    ## second player join
    room.handlePlayerJoinRoom(players[1])
    expectRoomInfoInd = {
        "msgId":
        RoomInfoInd().msgId,
        "players": [{
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": False
        }, {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": False
        }]
    }
    expectPlayerJoinRoomInd = {
        "msgId": PlayerJoinRoomInd().msgId,
        "playerInfo": {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": False
        }
    }
    assert (players[1].receive() == expectRoomInfoInd)
    assert (players[0].receive() == expectPlayerJoinRoomInd)
    assert (not room.isFull())
    ## third player join
    room.handlePlayerJoinRoom(players[2])
    expectRoomInfoInd = {
        "msgId":
        RoomInfoInd().msgId,
        "players": [{
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": False
        }, {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": False
        }, {
            "playerId": 3,
            "roomId": 1,
            "index": 2,
            "isReady": False
        }]
    }
    expectPlayerJoinRoomInd = {
        "msgId": PlayerJoinRoomInd().msgId,
        "playerInfo": {
            "playerId": 3,
            "roomId": 1,
            "index": 2,
            "isReady": False
        }
    }
    assert (players[2].receive() == expectRoomInfoInd)
    assert (players[0].receive() == expectPlayerJoinRoomInd)
    assert (players[1].receive() == expectPlayerJoinRoomInd)
    assert (room.isFull())
コード例 #11
0
ファイル: test_room.py プロジェクト: StoryMonster/7W523
def test_player_ready(wsserver, players):
    room = Room(1, wsserver, RoomType.TwoPlayersRoom)
    room.handlePlayerJoinRoom(players[0])
    room.handlePlayerJoinRoom(players[1])
    room.handlePlayerReady(players[0])
    expectPlayerReadyInd = {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": True
        }
    }
    assert (players[0].latest_receive() == expectPlayerReadyInd)
    assert (players[1].latest_receive() == expectPlayerReadyInd)
    room.handlePlayerReady(players[0])
    expectPlayerReadyInd = {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": False
        }
    }
    assert (players[0].latest_receive() == expectPlayerReadyInd)
    assert (players[1].latest_receive() == expectPlayerReadyInd)
    room.handlePlayerReady(players[0])
    assert (players[0].latest_receive() == {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": True
        }
    })
    assert (players[1].latest_receive() == {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 1,
            "roomId": 1,
            "index": 0,
            "isReady": True
        }
    })
    room.handlePlayerReady(players[1])
    assert (players[0].receive() == {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": True
        }
    })
    assert (players[1].receive() == {
        "msgId": PlayerReadyInd().msgId,
        "playerInfo": {
            "playerId": 2,
            "roomId": 1,
            "index": 1,
            "isReady": True
        }
    })
    expectGameStartInd = {"msgId": GameStartInd().msgId, "roomId": 1}
    assert (players[0].receive() == expectGameStartInd)
    assert (players[1].receive() == expectGameStartInd)
    players[0].receive()
    players[1].receive()
    assert (players[0].latest_receive() == {
        "msgId": DealOwnerChangeInd().msgId,
        "playerId": 1,
        "roomId": 1
    })
    assert (players[1].latest_receive() == {
        "msgId": DealOwnerChangeInd().msgId,
        "playerId": 1,
        "roomId": 1
    })