evernoteにかきなぐってるのをちょろっと抜粋するだけ。
定期処理では
前の発言時間からの差分、現在のintervalを計算する。インターバルが切れてれば実行。
毎ターン無条件処理が必要なのと、
実際の発言実行、タイプ傾向の変動などでパラメータを分ける。
前者はtwitbot_status
後者はtwitbot_paramsで管理。
発言時間ID 朝 昼前 昼 夕 夜 午前 午後 起きた後 寝る前 いぬさくやが起きてる時間
ポストタイプID 喜 怒 哀 楽
・通常ポスト:何もしてない時。
1:4::{p:head_nml}暇だわ。何か無いかしらね。
・イベントポスト:現在何してるかとも
10ケタ目まではランダム(20まで)。100ケタ目以上は状態ID。10000指定で終了。
503:7::::{p:head_nml}いぬさくやが飽き始めた{p:tale_wa}
701:10000::::そろそろやめましょうかしら。
・textフォーマット
{p:head_nml}今日は晴れてる{p:tale_wa}
・パーツフォーマット
head_nml:{あら、[70,]:はぁ、[10,]:あら、[,80]:はぁ、[,20]:[,]}
tale_wa:{わね![100,]:わ。[0,]:わねぇ[,80]:。[,100]:わね[,0]}
{}は分岐コロン区切り、[p1,p2]の傾向パラメタを代入。無記入は中間(50)明示
[この値*現在傾向]がmin,maxから離れるほど、乱数依存となる。
グラフにすっといい。1番近い点からの距離が遠いほど乱数的。
0で100%,50で0%の直線でいいかな・・・
・保持するもの
通常文章
イベント文章
文章パーツ
現在のイベントID(通常時Null)
タイプ傾向p1(喜怒),p2(哀楽)[0~100]喜楽が+
起きる時間,寝る時間
kind:twitbot_status
- string botname
string
int trend_p1,trend_p2
date time_awake,time_sleep
kind:twitbot_params
- int eventid
int trend_p1,trend_p2
date time_awake,time_sleep
kind:sentence_nml
- int timeid
int typeid
int interval
string text
kind:sentence_ev
- int evid
int nextid
int timeid
int typeid
int interval
string text
kind:sentence_parts
- string name
string text
・現実的な実装手順
まず通常発言ありき。次にパーツありき。