私はrubyで書かれたirc botを実行し、cinch ircフレームワークを実行します。ボットは、興味深い事実とサイクルでこれらの事実を返信するので、あなたはそれらに飽きることはありません。私はクールダウンを設定しているので、6時間表示することはできません。最初に示された事実を示すのではなく、無作為に選択されたものを表示するようになりました。変数が正しいまで変更します(if、else)
line = IO.readlines("facts.txt")
factnumber = rand(line.length)
if fact_not_next_6_hours[factnumber] == true
factnumber = rand(line.length)
m.reply "fact #{factnumber}: #{line[factnumber]}"
fact_not_next_6_hours[factnumber] = true
fact_not_next_6_hours[factnumber]
は、6時間のクールダウンの変数です。 trueに設定されている場合は、クールダウンがアクティブです。 、
factnumber = rand(line.length)
を、それがダウンしてtrueに設定クール6時間を持っているdosen't 1を取得するまで、次に
m.reply "fact #{factnumber}: #{line[factnumber]}"
fact_not_next_6_hours[factnumber] = true
私の最初のアイデアは、複数のif
の操作を行うことだったん:私は何をする必要がありますしかしそれはうまくいかず、より良い方法があると確信しています。
これはうまくいくようです!ありがとう。私は2番目の解決策、そのきれいで素敵な – qwerty1911
すべての事実が使用されている場合、これは無限ループに終わるでしょう – psyho
私は無限ループを認識していますが、チャンネルは約680ファクトですので、私も "インスタントun-cooldown"を追加することを計画しています – qwerty1911