top of page
logo_tkrite_2_edited_edited.png

Swiftはじめました 第8回

こんにちは〜ツクリテのムゥです。

この連載も8回目となりましたが楽しんでいただけてますでしょうか。

文章を書くのもだいぶ慣れてきた気がします。

これを読んで「Swiftやってみようかな」って思ってもらえたらいいなと思っていますので、今回も最後までお付き合いください!

前回まで

前回で条件分岐コードの学習は終了しました。

内容が徐々に論理的な内容になってきている気がします。

語学の学習に似ているところもあるかもしれませんね。

ree

最初の条件分岐コードで一致していない場合の、追加条件も設定できてしまうという優れものでした。

条件が増えるとテンパりますが、一つ一つコードをしっかり見て整理していけば時間はかかっても組み立てられましたね!


今回からは、論理演算子に入っていきます。

この論理演算子とは、条件分岐コードより、指示する条件を更に強力にするものです。もっと細かく指示できる便利なコードだそうです。



また新たに記号が出てきましたねぇ〜

「&&」「||」「!」 この3種類。。。なんだか複雑ですね。


&&は、すべての条件に合致するときの行動を指示

||は、いずれかの条件に合致するときの行動を指示(両方合致する時も含む)

!は、条件を逆に(否定形)してそれに合致するときの行動を指示


小難しいので、ひとまずトライしてみます!

ree

うーむ。。言われていることは難しくはないのでしょうがコードに落とし込むのが難しいですね。。


解説で言われている通りにコードを組んでみましたが、それだけだと進まないんですよね・・・

しょっぱなのステージなのにすでに躓いてました。

私の場合、ループが4回って考えすぎて頭が混乱してしまったのが大きいです。


ここでは、必要な動作を分けて考えてみると良かったです。

  1. 一本道にあるジェムを取る

  2. 左の階段下のジェムを取る

4回ループするってことは、そのうちの1回を左の階段下のジェムを取って帰ってくる動作に充てればいいのでは?と思いました。


なので、まずはしず太郎がジェムの上にいない時にどういう動きをするかを指示するコードから組立ててみました。

if !isOnGem {
        turnLeft()
        moveForward()
        moveForward()
        collectGem()
        turnLeft()
        turnLeft()
        moveForward()
        moveForward()
        turnLeft()
}

これを組み込んでみると問題なくクリア・・・!良かった。

なんとかうまくいきましたが。。。結構考え込んでしまいました。