状態遷移(■には整数が入る)
整数 s, goal
文字列 c
s ← 0, goal ← 0
goal=0 の間,
| state(s) と「にいます」を表示する
| もし s=3 ならば
| | goal ← 1
| を実行し,そうでなければ
| | 「AかBの船を選んで下さい」 を表示する
| | c ← input()
| | s ← nextState(s, c)
| を実行する
を繰り返す
「おめでとう」 を表示する
関数 文字列 state(整数 s)
| もし s=■ ならば
| | 「港」を返す
| を実行し,そうでなくもし s=■ ならば
| | 「カメ島」を返す
| を実行し,そうでなくもし s=■ ならば
| | 「海賊島」を返す
| を実行し,そうでなければ
| | 「宝島」を返す
| を実行する
関数終了
関数 整数 nextState(整数 s, 文字列 c)
| もし s=0 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなくもし s=1 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなくもし s=2 ならば
| | もし c="A" ならば
| | | ■を返す
| | を実行し,そうでなければ
| | | ■を返す
| | を実行する
| を実行し,そうでなければ
| | ■を返す
| を実行する
関数終了