Exemple #1
0
def _play_poker(mention, twitterlib):
        """ポーカーの開始を要求するメンションを受け取り、ポーカーを行う
           リプライの宛先やパラメータを構成するのに引数のmentionを用いる
           最初の手札をリプライで送信し、n分後にメンションを読み込む
           ポーカーを要求したアカウントと同じものがあれば、手札の交換フォーマットに
           沿った形式かどうかをチェックし、合っていればその数字に応じて手札を交換
           沿っていなければ無視する
           交換後の手札を用いてポーカーを行い、勝敗を記したテキストを含むパラメータを返す"""
        poker_player = Poker()

        # 最初の手札を送信
        first = poker_player.first_hand_str()
        first_reply = "キミの最初の手札は\n" + \
            first + "\n" + "だよ♦交換したい手札の番号をリプライで送ってね♦"
        status_code = twitterlib.reply(mention, first_reply)
        reply._handle_status(status_code, "Poker")

        # 5分間1分ごとにメンションをチェック
        for _ in range(10):
            sleep(30)

            mentions = twitterlib.get_mentions(10, record=False, since_id=mention.tweet_id)
            # 各ツイートの本文を表示、内容を解析
            # 手札交換のフォーマットに則ったメンションがあれば交換を実行
            first_user_id = mention.user_id
            for got_mention in mentions:
                # ポーカーを要求した人と同一人物からのメンションを探す
                if got_mention.user_id == first_user_id and re.search(r"[0-6]", got_mention.text):
                    print("Poker: Found designation of cards to change.")
                    return (poker_player.change_and_judge(list(map(int, get_changenum(got_mention.text)))), got_mention)

        print("Poker: No desianation found.")
        return poker_player.change_and_judge([]), None
Exemple #2
0
    def run(self):
        # 勝ったプレイヤーを表す文字列が返ってくる
        res = _play_poker(self.mention, self.twitterlib)
        result = res[0]
        change_designaion = res[1]

        if result is not None:
            if result[0] == "player":
                reply_text = "\n" + "キミの手札は\n" + result[1] + "\nで、" + \
                    "ボクの手札は\n" + result[2] + "\n" + "だから…キミの勝ち、だね♠"
            elif result[0] == "hisoka":
                reply_text = "\n" + "キミの手札は\n" + result[1] + "\nで、" + \
                    "ボクの手札は\n" + result[2] + "\n" + "だから…ボクの勝ち、だね♥"
            elif result[0] == "draw":
                reply_text = "\n" + "キミの手札は\n" + result[1] + "\nで、" + \
                    "ボクの手札は\n" + result[2] + "\n" + "だから…引き分け、だね♦"
            else:
                reply_text = "【中の人より】ポーカーでエラーが発生しました。ごめんなさい。"
            status_code = self.twitterlib.reply(change_designaion, reply_text)
            reply._handle_status(status_code, "Poker")