Programming

Day32「一方でも正しければ合格」|Swift Playgrounds 攻略と解答例【ゼロから学習】

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

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

今回はDay32コードを学ぼう1の「一方でも正しければ合格」の攻略になります。

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

解答例と解説

解答例と解説を確認していきます!

解答例

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

解答例を動画で確認する

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

ステージ攻略「一方でも正しければ合格」

攻略

ステージを攻略していきましょう!

獲得しなければならない宝石は「0/1」なので、

画面奥にある1個を取ればクリアになります。

コード入力画面を見てください。

for文が入力されていて、繰り返しの回数は12です。

これがひとつヒントになります。

Byteの進むルートは上の画像のようになります。

このマス目を数えてみると、12マスになっています!

論理OR演算子 「 || 」

今回初登場の論理OR演算子「 || 」

言葉だけ聞くと「なんじゃそりゃ!?」って感じですが、中身が分かれば単純です。

これを使うと、先ほどのByteの進むルートを簡単に攻略することができます!

「宝石のマスにいるもしくは、左側が行き止まり」

このもしくはを表すのが論理OR演算子「 || 」です。

ルートを確認して、if文を設定する

それでは先ほどのルートを見ながら確認していきましょう!

手前のワープに入るまでを考えます。

初期位置から1マス進むと前に壁があり、そこで右に曲がる必要があります。

そこで、①「前が行き止まりの時」には「右に曲がる」ということがわかります。

次に、ワープの手前のマスから曲がる時です。

左の画像の位置まで来たら、右に曲がってワープに入ります。

この時、Byteの左側は壁になっています。

そこで、②「左側が行き止まりの時」には「右に曲がる」ということがわかります。

上の①と②は「右に曲がる」という行動は同じなので、ひとまとまりにしちゃいましょう!

前が行き止まりの時もしくは左側が行き止まりの時には右に曲がる

これをコードで書き表すと、

    if isBlocked || isBlockedLeft {

        turnRight()

    }

となります!!

ワープをした後もこれを使えば宝石まで辿り着けますね!!

論理AND演算子と論理OR演算子を区別する

例えば今回の場合に論理AND演算子を使ってしまうと、

前が行き止まりのさらに左側が行き止まりの時には右に曲がる

になりますよね。

こうなるとByteの前と左側が行き止まりの時にしか、

右に曲がることができなくなってしまいます。

実際にコードを書いて実行してみるとわかりやすいかもしれません!

前回やった論理AND演算子との区別はよく注意する必要があります!!

タイトルの一方でも正しければとはこのことだったんですね。

まとめ

言葉だけ聞くと難しそうな論理OR演算子ですが、理解することはできたでしょうか。

論理AND演算子としっかり区別して使うことができれば、

今後にとても活かせそうです!

この記事のポイント
  • 「 || 」OR演算子
  • OR演算子は、もしくはを表すことができる
  • どちらか片方の状態であれば、コマンドが実行される

次回はDay33「論理の迷宮」でお会いしましょう!ではまた!!

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