stateDiagram-v2
direction LR
state StateCheck <<choice>>
StateCheck: スワイプした時に、スワイプ情報があるか?
NotExist:ない
Exist:ある
%% NotExist
StateCheck --> NotExist:スワイプ情報保存
NotExistTask:更新時間が一番古い+知らないもしくは未回答のものからカードを見せる
NotExist --> NotExistTask
NotExistTask --> StateCheck
%% Exist
StateCheck --> Exist:スワイプ情報保存
Exist --> InWhile:上記のいずれにも当てはまらない場合で、前回からしばらく時間が空いていたら
Exist --> Difficult: 直近のスワイプ情報5件が連続で知らない場合
Exist --> Easy:直近のスワイプ情報5件が連続で知っている場合
Exist --> Good: 直近のスワイプ情報10件中5件が知ってる場合
Exist --> Def2:上記のいずれにも当てはまらない場合
ChgState:ユーザーステート変更
Def2: Default
Difficult --> ChgState:知ってるであろう単語をy回表示させる
note right of Difficult : 最近追加された簡単な単語(インターバルが長いもの)をランダムに選択
Good --> ChgState:標準アルゴリズムで表示
note right of Good: Spaced Repetitionで実装する。
Easy --> ChgState:知らない単語バケットからランダムに表示させる。
note right of Easy : Updateが変更されていない最古で、覚えたというフラグがないものをランダムに選択
InWhile --> ChgState:知ってる単語5つくらいからスタートする
note right of InWhile : Updateが直近で変更されて、覚えたというフラグがないものをランダムに選択
Def2 --> ChgState:最近追加された単語からランダムにスタートする。
ReturnCards: 10個くらいのバッチで次のリクエストまでフロントで処理すべきカードのリストを返却する。
ChgState --> ReturnCards
ReturnCards --> StateCheck
Last active
August 21, 2024 21:43
-
-
Save yasuflatland-lf/8f7c676f2b0de2199bda2e0762f4207a to your computer and use it in GitHub Desktop.
Flamingo Armond State flow in Marmaid
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment