名称 |
MIRS1003 十字路プログラムについて |
番号 |
MIRS1003-SOFT-0005 |
最終更新日:2011.01.19
版数 |
更新日 |
作成 |
承認 |
改訂記事 |
A01 |
2011.01.19 |
斎藤秀人 |
斎藤秀人 |
初版 |
目次- プログラムの概要
- フローチャート
- 備考
- プログラムの概要
このプログラムの目的は十字路を効率よく突破することである。
また、ここで言う「効率よく」とは、結果として一番点数に結びつきやすい選択をするという意味である。・・・そういう意味を込めたい。
多少の特徴として、暖簾をくぐってからまた十字路へ戻るという、暖簾分の得点を得るだけの動作もプログラム中に記述し、次の障害が○○か△△ならそれを実行する、ということが可能。
どの障害の情報で実行するかは事前に選択可能である。
プログラムは十字路の中心へ入った時に開始され、引数はなし、戻り値はint型変数が1つ、のれんをくぐり十字路を突破した時に終了される。
戻り値は、次の障害がなんなのかという情報として扱う。DBに記載される数字と障害の対応をそのまま使用する。
以下より、具体的な手順を記述する。
- 処理@を、正面、左、右の順で繰り返す。
- 処理@
- i) 白線まで進み、DBを認識、値を取得、保持する
- ii) 次の障害が「5(ゴール)」なら、そのDBから突破すると決定し4. へ
- iii) 次の障害が「グループ@」なら、のれんをくぐり十字路へ戻ってくる
- iv) 1,2回目なら次のDBの方向を向く
- 3つのDBのうち「9(ゴールに近い)」が載っていたものがあれば、そのDBから突破すると決定し4. へ
- 優先度によって突破するDBを決定する
- 突破するDBの方向を向き、突破、プログラムは終了
グループ@とは、「この先の障害に用はないが、暖簾分の得点がほしいから暖簾の分だけはもらっておこう」という考えで選ばれた障害のことである。
その班のMIRS特性によって変更することが望ましい。
また優先度は、ゴール > 鍵と扉 > ロータリ > 小部屋 > 十字路 > T字路 である。
- フローチャート
まず左のフローチャートから十字路プログラムが始まる。右のフローチャートが「処理@」である。
fig. 1 十字路プログラムのフローチャート
- 備考
ソースコードを読むときは「三項演算子」の知識を頭に入れてから読むこと。
関連文書
沼津工業高等専門学校 電子制御工学科