DAY6のまとめ。
Reeborg's worldというサイトで遊びながらfunctionの使い方を学べる。
進む、左に曲がるのコマンドはあるけど右に曲がるはない。
ではどうやって右に曲がるか?
左に曲がるを3回すると曲がれる。
ただ右を曲がるたびに毎回左に曲がるを3回コーディングするのは手間。
そう言う時はファンクション自体をまとめて新しいファンクションにできる。
最近ではアレクサとかスマートホームをもっている人はやっているので馴染みがあるかも。
例えば
アレクサ、でかけます といったら、
天井照明を消す
テレビを消す
などの複数の処理をしてくれるようなもの。
今回のReeborg's Worldではハードルを乗り越えてゴールまでいくというゲームを
プログラミングでクリアするもの。
前にハードルがあったら乗り越える
ハードルがなかったら前に行く
ゴールに着いたらプログラム完了
というコードを選んでいく。
ファンクションを定義する時は
def ファンクション名():
でその下からインデントして処理する内容を記入していく。
whileを使うことで、目標になるものに着くまで処理を繰り返すことができる。
この2つにifで条件分岐することでクリアできる。
ハードルのゲームが終わったら最終は迷路をクリアする問題で終わり。
迷路も結構難しい…
最初に動く条件を考えてからコーディングをしていく。
ゴールの場所は変わらず迷路だけが変わるので、
右側の壁つたいに歩けばゴールできることがわかる。
ゴールに着くまで右があいたら右に曲がって進み、
左しかあいてなかったら左を進み、
前しかなかったら前にすすむ。
これで大体はいくのだが、
問題は3,4始まりなどの右も前も壁がない場合が続く場合は、
ずっと右曲がって進むので回転してしまう。
その場合はどうするか?
whileの前にif文でそうなった時に回避する処理をしてあげればいい。
下のは間違ってるけど笑
このサイトは初心者には面白いと思う。