Wave Robot python apiv2 を使って実験/少し楽しんでいます。
正常に動作するロボット用の小さな 8ball アプリを作成しましたが、今はトリビア アプリを作成しようとしています。
Python でプログラミングしたことはありませんが、構文は正しいと確信しています。関連するコードは次のとおりです。
elif (bliptxt == "\n!strivia"):
reply = blip.reply()
if (triviaStatus != "playing"):
reply.append("Trivia Started!")
triviaStatus = "playing"
else:
reply.append("Trivia is already running!")
elif (bliptxt == "\n!etrivia"):
reply = blip.reply()
if (triviaStatus == "playing"):
reply.append("Trivia Ended!")
triviaStatus = "stopped"
else:
reply.append("Trivia is not running! To start trivia, type !strivia")
else: (snipped out)
基本的には、誰かが「strivia」をブリップすると、ボットが誰かがプレイしたいことを認識し、最初に triviaStatus という変数をチェックして、既にプレイしているかどうかを確認し、そこから移動できるように機能させたいと考えています。かなり単純なもの。
これが機能するためには (実際、このコードはこの問題をテストするためのものです)、変数は効果的に php の $_SESSION 変数のようにする必要があります。つまり、誰かがブリップするたびに変数の値を記憶します。毎回リセットされません。
それにもかかわらず、そうであるかどうかにかかわらず(そうでない場合は、変数設定をtxtファイルなどに保存することで同じことができると思います)上記のコードがまったく機能しないため、私は困惑しています。つまり、ロボットは !strivia または !etrivia で応答していません。変数が保存されなかった場合、ロボットは「Trivia Started」または「Trivia is not running!」と応答する必要があります。毎回。ただ、まったく返事がありません。
triviaStatus のチェックを外すと、ロボットは応答します。しかし、それでは論理がなく、質問をテストすることはできません.
また、返信する !trivstatus を作成してみました
"Trivia status is " + triviaStatus
しかし、それも窒息しました。triviaStatus を使用するたびにボットが死んでしまうのはなぜですか? triviaStatus を正常に設定できることに注意してください (返信しても出力が何であるかを確認することはできません....)
つまり、これを要約すると...上記のコードは機能しませんが、次のコードは機能します:
elif (bliptxt == "\n!strivia"):
reply = blip.reply()
reply.append("Trivia Started!")
trivia_status = "playing"
elif (bliptxt == "\n!etrivia"):
reply = blip.reply()
reply.append("Trivia Ended!")
trivia_status = "stopped"
ありがとう!