# チャットで遊んでみよう
# チャットに文字や数字を投稿しよう
前回、Pythonを使って、チャットウィンドウに「Hello!」とメッセージを送りましたので、今回は、チャットにもっと色々なメッセージを送ってみましょう。
まずはmcpiフォルダの中に、「chat.py」という名前のPythonファイルを作って保存してみましょう。
プログラムの中身は、下の2行から始めるのでした。
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
それでは、続けて下のように入力してみてください。
mc.postToChat('100')
mc.postToChat(100)
前回、チャットに送る言葉は、" "
か' '
で囲んであげないといけないと説明しましたが、下の行では、( )
の中身にそのまま100
と書いています。
しかし、プログラムを実行すると、きちんと同じ結果になります。マインクラフト画面で、下のように入力してみてください。
/py chat
結果は下のようになるはずです。
ところが、100
ではなく、代わりにHello!
と入力すると、今度は上手くいきません。
なぜ、このようなことが起こるのか、見ていきましょう。
# 数値と文字列
'100'
や100
、'Hello!'
などは、プログラムが扱う 情報(じょうほう) であり、 データ の一つであるといいます。
データには、100
のような 数値(すうち) や、'Hello!'
のような 文字列(もじれつ) といった色々な種類があり、これらをまとめてデータ型といいます。
文字列のデータは、" "
や' '
で囲ってあげる必要があります。逆に言えば、これらで囲ってあげることで、「このデータは文字列だよ」とコンピュータに教えてあげているのです。
一方、数値のデータは、文字列のように囲ってあげる必要はありません。囲わないことで、「このデータは数値だよ」と教えてあげているとも言えますね。
先ほどの例で見ると、'100'
や'Hello!'
は文字列、100
は数値であるということがわかりますね。
それではHello!
はどうでしょう。これは、文字列でも数値でもないデータです。' '
で囲っていませんが、数値型は、文字通り数字しかありえないので、Hello!
は何者でもないデータとなり、コンピュータは困ってエラーを起こしてしまいます。
# 計算の結果を表示してみよう
さて、Pythonでは足し算や引き算ができますので、マインクラフトのチャットウィンドウにも、計算の結果を表示させることができます。
chat.pyの最後の2行を、下のように変えてみましょう。
mc.postToChat(1 + 1)
mc.postToChat(100 - 20)
結果は下のようになるはずです。
ちゃんと計算できていますね。
次に、下のプログラムはどうなるでしょう。
mc.postToChat(1 + 1)
mc.postToChat('1 + 1')
結果は下のとおりです。確かめてみましょう。
上の行では、1 + 1
の計算結果を表示していますが、下の行では、'1 + 1'
という文字を、そのまま文字として表示しています。これは、数値と文字列の大きなちがいです。
ちなみに、数値と文字列を足すことはできません。下のプログラムはエラーになってしまいます。
mc.postToChat(1 + '1')
しかし、文字列と文字列は、足し算でくっつけることができます。
mc.postToChat('1' + '1')
同じ「1 + 1」に見えても、下の3つでは全て結果がちがうことに気をつけましょう。
mc.postToChat(1 + 1)
mc.postToChat('1 + 1')
mc.postToChat('1' + '1')
# 変数を使ってみよう
数値や文字列のデータは、 変数(へんすう) という入れ物に保管することができます。どういうことなのか、見てみましょう。
今度は、chat.pyを次のように書き換えてみます。
a = 100
b = 'Hello!'
mc.postToChat(a)
mc.postToChat(b)
結果は下のようになります。
mc.postToChat(a)
の( )
の中はa
なのに、100
と表示されましたね。このa
が、変数と呼ばれるものです。
a = 100
は、a
という入れ物の中に、100
という数値を入れている、と考えてください。
a
の中には100
が入っているので、mc.postToChat(a)
でa
をメッセージとして送るときには、中身の100
がウィンドウに表示されます。
b
についても同じです。本当の中身であるHello!
が、ウィンドウに表示されます。
このa = 100
のように、変数に何かを入れることを、 代入(だいにゅう) といいます。
変数は、a
でないといけないという決まりはありません。変数を使うときに、その名前は自由に決めることができます。abc
とか、hensuu
とかでも大丈夫です。
ただし、数字をそのまま変数にすることはできません。100 = 'Hello!'
のようなことはできない、ということですね。ですが、hensuu1
のように、文字と数字を組み合わせることはできます。
また、変数にはふつう、半角英数字を使います。全角の文字を使うことは、ほとんどありません。お約束ごととして、覚えておきましょう。
# 変数を使って計算してみよう
変数に数値を代入すると、変数のまま、足し算や引き算をすることができます。
chat.py の中身を下のように書き換えてみましょう。
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
a = 100
b = 20
mc.postToChat(a + b)
mc.postToChat(a - b)
結果は下のとおりです。
a + b
とa - b
はそれぞれ、100 + 20
、100 - 20
と同じ結果になっていますよね。
また変数には、下のように計算の答えを代入することもできます。
import mcpi.minecraft as minecraft
mc = minecraft.Minecraft.create()
a = 1 + 1
b = 'I am ' + 'Prosense.'
mc.postToChat(a)
mc.postToChat(b)
変数は、プログラミングの勉強でも特に大切なので、しっかり覚えておきましょう。
# おわりに
Prosenseではマインクラフトを使ったプログラミングの個別指導もおこなっております。
マンツーマンでレッスンを受けながらマインクラフトでプログラミングを学びたい方はいますぐProsenseのLINE公式アカウントに登録ください。