私はrubyで書かれたircボットを実行し、cinchircフレームワークを実行しています。ボットは興味深い事実を返信し、これらの事実を循環するため、飽きることはありません。クールダウンを設定したので、6時間表示できません。最初に表示された事実を表示する代わりに、ランダムに選択されたものが表示されるようになりました。これは、以前に表示されたものである可能性があります。
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)
6時間のクールダウンがtrueに設定されていないものが得られるまで、
m.reply "fact #{factnumber}: #{line[factnumber]}"
fact_not_next_6_hours[factnumber] = true
私の最初のアイデアは複数if
のことをすることでしたが、それはうまくいきませんでした。もっと良い方法があると確信しています。