コード例 #1
0
class Game:
    def __init__(self,
                 players,
                 user_id,
                 printer: BasePrinter = DefaultPrinter()):
        self.printer = printer
        self.players = players
        self.user_id = user_id

        self.player_token = ''
        self.bot_token = ''

        self.api = Api('http://127.0.0.1:3000/api')

    def accept(self, game_token):
        os.system("clear")
        player = self.api.accept(self.user_id, game_token)
        state = self.api.state(self.user_id)
        self.printer.draw_field(
            state["playerGameState"]["playerState"]["field"],
            state["opponentGameState"]["playerState"]["field"])
        return player["userToken"]

    def accepted(self):
        os.system("clear")
        state = self.api.state(self.user_id)
        print("Opponent accepted challenge")
        self.printer.draw_field(
            state["playerGameState"]["playerState"]["field"],
            state["opponentGameState"]["playerState"]["field"])

    def start(self):
        player = self.api.start(self.user_id)
        return player["userToken"], player["gameToken"]

    def shot(self):
        os.system("clear")
        state = self.api.state(self.user_id)
        self.printer.draw_field(
            state["playerGameState"]["playerState"]["field"],
            state["opponentGameState"]["playerState"]["field"])
        if state["playerGameState"]["turn"]:
            print("Your turn")
        else:
            print("Enemy turn")

    def shoot(self, x, y):
        os.system("clear")
        result = self.api.shoot(x, y, self.user_id)
        if result is not None:
            print(result["message"])

        state = self.api.state(self.user_id)
        self.printer.draw_field(
            state["playerGameState"]["playerState"]["field"],
            state["opponentGameState"]["playerState"]["field"])
        if state["playerGameState"]["turn"]:
            print("Your turn")
        else:
            print("Enemy turn")
コード例 #2
0
class Game:
    def __init__(self,
                 user_id: str,
                 game_token: str,
                 printer: BasePrinter = DefaultPrinter()):
        self.printer = printer
        self.user_id = user_id
        self.game_token = game_token

        self.api = Api('http://127.0.0.1:3000/api')

    def accept(self):
        clear()
        player = self.api.accept(self.user_id, self.game_token)
        state = self.api.state(self.user_id, self.game_token)
        self.printer.draw_field(state["user"]["field"],
                                state["opponent"]["field"])
        return player["userToken"]

    def accepted(self):
        clear()
        print("Opponent accepted challenge")
        state = self.api.state(self.user_id, self.game_token)
        self.printer.draw_field(state["user"]["field"],
                                state["opponent"]["field"])

    def start(self):
        player = self.api.start(self.user_id)
        return player["userToken"], player["gameToken"]

    def shot(self):
        clear()
        state = self.api.state(self.user_id, self.game_token)
        self.printer.draw_field(state["user"]["field"],
                                state["opponent"]["field"])
        if state["game"]["status"] == "Finished":
            print("Winner!" if state["game"]["winnerId"] ==
                  self.user_id else "Loser!")
            return

        if state["game"]["userTurnId"] == self.user_id:
            print("Your turn")
        else:
            print("Enemy turn")

    def shoot(self, x, y):
        clear()
        result = self.api.shoot(x, y, self.user_id, self.game_token)
        if result is not None:
            print(result["message"])

        state = self.api.state(self.user_id, self.game_token)
        self.printer.draw_field(state["user"]["field"],
                                state["opponent"]["field"])

        if state["game"]["status"] == "Finished":
            print("Winner!" if state["game"]["winnerId"] ==
                  self.user_id else "Loser!")
            exit(0)
            return

        if state["game"]["userTurnId"] == self.user_id:
            print("Your turn")
        else:
            print("Enemy turn")