プログラミング言語「ドリトル」

大阪電気通信大学 兼宗研究室

ユーザ用ツール

サイト用ツール


tips_state

複数の状態を区別して動く

(2016/3/1)

「今は前進している状態」「今は上昇している状態」といった状態を変数で管理すると複雑になってしまいます。このようなときは状態をメソッドで定義しておき、タイマーで実行される内容を差し替えて使うと便利です。状態の実行を終了するときは、終了状態にするか時計を中断します。

 // 状態遷移の実現
 終了状態=「」。
 時計=タイマー!作る「状態!実行」実行。
 
 // 状態遷移のプログラム
 かめた=タートル!作る。
 前進状態=「
  かめた!5 0 移動する。
  「(かめた!横の位置?)>=100」!なら「状態=上昇状態」実行。
 」。
 上昇状態=「
  かめた!0 5 移動する。
  「(かめた!縦の位置?)>=100」!なら「状態=後退状態」実行。
 」。
 後退状態=「
  かめた!-5 0 移動する。
  「(かめた!横の位置?)<=0」!なら「状態=下降状態」実行。
 」。
 下降状態=「
  かめた!0 -5 移動する。
  「(かめた!縦の位置?)<=0」!なら「状態=前進状態」実行。
 」。
 状態=前進状態。
tips_state.txt · 最終更新: 2019/10/03 08:35 by klab