Programming

Day20「右にも左にも」|Swift Playgrounds 攻略と解答例【ゼロから学習】

コウです、よろしくお願いします!

「ゼロからプログラミングを始める」人に役立つ情報を発信しています!

今回はDay20「右にも左にも」の解説になります

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...

解答例と解説

解答例と解説から確認しましょう!

解答例

コードの解答例は以下のようになります。

けっこうな長さのコードになりました。

しかしfuncやforを使わないよりはシンプルでわかりやすいのではないでしょうか!

解説

上記のコードを実行した結果がこちらになります。

全ての作業を完了することができました!!

今回のポイント

宝石を集めるパターン・スイッチを入れるパターン

今回はたくさんの宝石を集めて、たくさんのスイッチを切り替えます。

Byteの初期位置から見て右側に宝石、左側にスイッチが並んでいますね。

まずは、宝石を集めるパターンとスイッチを切り替えるパターンを考えましょう。

宝石を集めるパターン

合計で6個の宝石がありますが、

2個ずつ並んでいるので2個集めるのを3回繰り返します。

2個の宝石を集めるには、初期位置から

「右を向く→1マス進む→宝石を集める→1マス進む→宝石を集める→後ろを向く→2マス進む」

になります。

これでByteは宝石を2個集めたあと、初期位置にスイッチの方向を向いて戻ってきます。

関数を定義すると次のようになります。

スイッチを切り替えるパターン

スイッチを切り替えるのは、宝石を集めたあとに続けます。

Byteは宝石の方を向いているので

「1マス進む→スイッチを切り替える→1マス進む→スイッチを切り替える→後ろを向く→2マス進む」

これでスイッチ2つを切り替えて元の位置に戻ってきました。

このあとは3個目4個目の宝石を取りにいきたいので、

「左を向く→1マス進む」も追加しておきましょう。

関数を定義すると次のようになります。

ステージ攻略「右にも左にも」

攻略

それではステージを攻略していきましょう!

「宝石0/3」「スイッチ0/3」なので、それぞれ先ほど定義した関数を使っていきます。

「宝石を2個集める→スイッチを2つ切り替える」

を1セットとしてこれを3回繰り返します。

すなわちfor文に入力する回数はになります!

まとめ

先に関数を定義して、それをfor文の中で活かすという、前回のような流れになりました。

Day19「3つの分かれ道」|Swift Playgrounds 攻略と解答例【ゼロから学習】 コウです、よろしくお願いします! 「ゼロからプログラミングを始める」人に役立つ情報を発信しています! 今回はDay19「3...

しかし今回はfor文の中が圧倒的にシンプルでしたね。

このコードだけが絶対に正解という訳ではありませんが、

他の人が見てもわかりやすいのではないでしょうか。

この記事のポイント
  • 決まったパターンを見つけたら関数として定義しておく

次回はDay21「4つの場所に4つの宝石」でお会いしましょう!ではまた!!

小学生から社会人までおすすめ!!プログラミング言語『Swift』について!【今始める理由と学び方】 こうといいます、よろしくお願いします! 小学校で教師をやっていた経験を活かして、 プログラミングについて悩みをお持ちの保護...