はじめに
前回は、タートルを右クリックしてターミナル画面を開き、その黒い画面でコマンドを文字入力することで、タートルに命令をしました。
たとえば、go
コマンドを使うことで前後左右上下に自由に動くタートルが確認できたと思います。
移動するタートルはとても可愛いものです。しかし、ただ移動するタートルを眺めるだけでは何の役にも立たないですよね。 プログラムを書いて、タートルにお仕事をしてもらいましょう。
ただ、プログラムを書くといきなり言われてもどのようにすれば良いかわからない人も多いでしょう。
そこで今回は、プログラムって何? CCではプログラムをどうやって作るの? という基本中の基本から押さえて説明します。
プログラムって何?
(コンピュータ)プログラムとは、コンピュータがやるべきことを具体的に書いた手順書のことです。 この「具体的に」というところが重要なところで、たとえば、「家を作りなさい」と手順書に書くだけではコンピュータは実行してくれません。
どの位置から建築を開始するのか、使うブロックは何か、どんな形の家を作るのか、そのためにどの位置に移動すれば良いのか。
事細かく、その命令を実行するための手順を指示してあげなくてはなりません。
また、指示するときに使う言葉も、コンピュータが解釈できる言葉を使わなくてはなりません。
「プログラミング言語」という言葉を聞いたことはありませんか?
私たちが日常的に使う会話文は非常に曖昧なため、日常会話文でプログラムを書くことはできません*1。 そのため、曖昧性が少ないおかげでコンピュータが正確に理解できるし、人間でもまぁ理解はできるというプログラミング専用の言語を使うわけです。
世の中にはプログラミング言語が無数にあります。知名度がそこそこある言語だけカウントしても数百あると言われるほどです。
ComputerCraftでは、たくさんあるプログラミング言語の中でも、シンプルで習得しやすいことで定評のあるLuaという言語を利用してプログラミングします。
さて、あなたもLua言語をマスターしましょう。まずは、その入り口にようこそ!
どのようなプログラムを書くか決める
ターミナル画面を開いたら、まずは今から作るプログラム名を決めましょう。 え、決めるのがめんどう? それなら「aisatsu」プログラムにしましょうか。
つまり、
- あなた「aisatsuしてよ」
- タートル「OHAYO!」
というプログラムですね。
ターミナル画面でプログラムを書き始める
それでは、以下のコマンドを入力して「aisatsu」プログラムを作り始めましょう。
> edit aisatsu
これは、edit
コマンドを使って「aisatsu」というファイルを編集始めなさい!という命令になります。
上記の文字を入力してEnterキーを押すとエディタ*2 というプログラムがターミナル画面の中で動き始めます。
1行目に、以下の文字を入力してみましょう。
print("OHAYO!")
これは1行だけの単純なプログラム(手順書)です。OHAYO!
という文字列をターミナル画面に表示(print)しなさいという手順を指示しています。
print( なにか )
は、()の中に書いてるなにかをターミナル画面に表示するための関数*3です。なにかは数字でも構いませんし、今回のような文字列でも構いません。
なおポイントはいくつかあって、まず表示したい文字列*4を「"」(ダブルクォーテーション。私は「ちょんちょん」と呼びます:P)を使い両側から挟んであげます。つまり2つでセットで使うことを忘れないようにしましょう。
また関数を記述するときには、print
と(
の間をスペースを入れたりせず続けて書いてください。print( )
でセットと覚えておくと良いでしょう。
この1行を正確に入力できたらキーボードのCTRL(またはcontrol、コントロール)キーを1回押してみましょう。 次のような表示になるはずです。
ターミナル画面の左下に注目ですね。 左から順に、「Save」「Exit」とメニューが表示されています。現在は[ ]のカーソルによって、[Save]の方が選ばれています。
- 「Save」は、今書いたプログラムを「aisatsu」という名前のファイルに保存します。
- 「Exit」は、エディタプログラムを終了して、元のターミナル画面に戻ります。
ですから順番としては、まず最初に、←→(左右カーソル)キーを使って「Save」の場所に色が付いているカーソルを持っていきEnterキーでSave(ファイル保存)します。
次に、再度同じようにCTRLキーを押してメニューを表示し、「Exit」を選択してエディタを終了しましょう。
書いたプログラムを実行する
さてターミナル画面に戻ってきました。書いたプログラム「aisatsu」を実行してみましょう。 ターミナル画面で次のコマンドを入力します。
> aisatsu
つまり、プログラム名がそのままコマンドになるわけですね。
次のような表示が画面に出たら成功です。
逆に英語で予想外のメッセージ(エラーメッセージ)が出たらプログラムを書き間違えています。もう一度正確に書き直さなくてはなりません。
せっかくですから、表示する文字列を増やしてみましょうか。再度次のコマンドを入力します。
> edit aisatsu
プログラムを修正する
再びファイルを編集する画面に来ました。今度は次のように2〜4行目を書き加えてみましょう。
print("OHAYO!") print(2019) print("nen") print(9, "gatsu")
2行目は「2019」という数字を画面に表示します。3行目はそのまま文字列を表示ですね。
4行目はprint()
の括弧の中で、9という数字と"gatsu"という文字列を「,」(カンマ)で区切りながら記述しています。
つまりprint()
の括弧の中には、「,」で区切って複数の要素を書いても良いのです。
さあ、どういう表示になるか試してみましょう。 先ほどと同じように「Save」→「Exit」としてターミナル画面でこのプログラムを実行します。
次のような表示になれば成功です。
お疲れ様でした。あなたは簡単ではあるものの、CCでプログラムを作成し、タートルに実行させることができました。
次回はこの、
- ターミナル画面上で、コマンドを実行
- CCエディタ
edit
を使って、プログラムを作成 - ターミナル画面上で、作ったプログラムを実行
という基礎を押さえた上で、どんどんタートルに仕事をさせるプログラムを作っていきましょう。
*1:一応、日本語でプログラミングできることをうたっているプログラミング言語も複数開発されています。でもそれが世の中ではあまり広まってはいないことを考えると・・・世間一般ではどう評価されているか想像できますよね。
*2:たとえばマイクロソフト社のWordワードはワープロソフトと呼ばれる文書を作成するためのソフトウェアですが、CCのエディタはエディタソフトと呼ばれるテキストファイルを作成するためのソフトウェアです。たとえばWordが文字の大きさや色など文書としての体裁を整えることの特化しているのに対し、CCのエディタはシンプルなテキストを書くことに特化しており、プログラムを書くのに適しています。
*3:ここではCCに用意されている便利な機能の一つだと思ってください。
*4:コンピュータの世界では「文字」と「文字列」を明確に区別します。「a」「あ」のような1文字だけのものを「文字」。「あいうえお」のような複数の文字からなるものを「文字列」と呼びます。