[ クリア条件 ]
ステージ上にあるジェム1個を獲得
[ 使用するコマンド・条件式 ]
collectGem() moveForward()
【攻略のポイント】Byteに操作コマンドを指示しよう
ラーン・トゥ・コードのスタートを飾るこのステージは、まずプログラミングのもっとも基本的な要素である「コマンド(命令)を実行する」という概念を覚えていきます。このゲームの主人公キャラクターであるバイト(Byte)に「どの順番で、どうやって動いたらいいのか」を1つずつコマンドで伝えることによって、クリア条件であるジェムがあるところまで移動し、獲得できればゲームクリアとなります。
まずは操作を覚えよう
このステージはスウィフトを使ったプログラミングを始める第一歩として、ステージ構成も非常にシンプルで、スタート地点からわずか3ブロック先にあるジェムを獲得できればクリアです。
用意されている実行コマンドも、前に進むための「moveForward()」と、マスの上にあるジェムを取るための「collectGem()」の2種類だけで、エディタにある「Tap to enter code(タップしてコードを入力)」をタップすると、画面の下にこの2種類のコマンドが候補として表示されるので、タップして選択するとコードが挿入されます。
ここで覚えておきたいのが、プログラミングは「上から下に順番に実行される」という原則があることです。今回は「3歩前に進んで、ジェムを取る」というアクションをバイトに指示を与えればよいので、このルールを念頭に置いて、順にコードを入れていけばクリアできるでしょう。
Swift Playgroundsを楽しむためのワンポイントアドバイス
次のコマンドを入れるときには改行
ラーン・トゥ・コードはエディタでコマンドを選択していくと、自動的に改行されて次の行に新しいコードが挿入できるようにスタンバイされます。では、同じ行に複数のコマンドを入れようとするとどうなるのでしょうか。ためしに、同じ行にコードを入れようとすると、画面下にコマンド候補が表示されません。そして、コピー&ペーストなどを使って無理矢理コードを挿入しようとすると、行頭に構文エラーを示す赤い●印が表示されます。
これはプログラミングではどこまでは1つのコマンドなのかを判断する「文末」をいくつかの方法で認識していますが、スウィフトでは改行を文末として認識する設計仕様に起因するものです。「;(セミコロン)」を入れることでこのエラーを回避することはできますが、今後コードがより複雑に長くなってくると起きがちな、人為的な書き間違え(バグと言います)を回避するためにも「1行1コマンド」の原則は守っておく癖をつけておくほうが安心でしょう。
エディタエリアに、無理矢理moveForword()コマンドを複数続けてみました。すると、行頭に赤い●印が表示され、エラーになってしまいました。