お知らせ

『プログラミング能力検定(2月検定)』受検受付中!

詳細はこちら

【15】文字や数値を画面に表示する

データを画面に表示する マイクラ(Python)

今回はエージェントの操作から少し離れて、文字や数値といったデータを画面に表示させる方法を学習します。あわせて関数の定義についても触れていきます。

print() で画面に表示できるようにする

Python では通常、画面にデータを表示させるときに print() というコードを使います。しかし私たちがいま扱っている Minecraft の MakeCode には残念ながら print() というコードが用意されていないようです。

代わりに用意されているのが player.say() というコードで、実行するとゲーム画面の左側に文字列や数値が表示されます。これはビジュアルプログラミング入門講座【13】で紹介している[メッセージ “○○” を送信する]と同じ機能です。

[メッセージ “○○” を送信する]ブロック

試しに以下のようにコードを書いて実行してみましょう。

def on_chat4():
    player.say(“こんにちは”)
player.on_chat(“run”, on_chat4)

「こんにちは」の前後には “ ” を付けます。これは「いま入力されたデータは文字ですよ」という意味です。データの種類には文字のほか数値などがありますが、数値の場合には “ ” は付けません。詳しいことはまたいずれ学習しますが、今は文字と数値ではデータの種類が違うんだ、と覚えておいてください。

すると以下のように表示されると思います。

これをそのまま使ってもいいのですが、プログラミング能力検定をはじめとした世間一般では player.say() ではなく print() が当たり前に使われますので、ここでも print() が使えるようにしたいと思います。そこで以下のように設定してください。

def print(naiyou):
    player.say(naiyou)

def というのはこれまでも TPFWRUN などのチャットコマンドを設定したときに使いましたが、これは define(定義する)という英語の略です。何を定義するのかというと「ここでは print() という関数を新しく定義します(作ります)よ」ということです。そして「その print() という関数の内容は2行目の player.say() ですよ」という意味です。

関数についてはまた別の機会に詳しく学習しようと思いますが、関数とはある特定の処理をひとまとめにしたもので、名前のあとに () が付いているのが特徴です。ということは、player.say() も実は関数なんですね。つまり、この場合は player.say() という関数を print() という関数にそっくりそのまま置き換えたということになります。

そしてもうひとつ。() の中に naiyou という名前の変数を入れてあります。これは内容という意味で付けた名前ですが、ここは ABC でも XYZ でも何でもかまいません。ただ他と重複しない名前にした方がミスは少なくなると思います。

そして、print()player.say()() の中身を同じ変数にしておくことで、例えば print(“こんにちは”) と書けば、それは player.say(“こんにちは”) と書いたことと同じ扱いになるというわけです。この print() から player.say() に引き渡されたデータを引数ひきすうといいます。今回は “こんにちは” という文字列が引数となりました。

では実際に以下のようにコードを書いて実行してみましょう。

def print(naiyou):
    player.say(naiyou)

def on_chat4():
    print(3.141592)
player.on_chat(“run”, on_chat4)

今回は数値なので は付けません。

「3.141592」の表示

以上のように表示されれば成功です。

今後は画面表示の命令としては print() を使っていきますので、今回作った定義文は消さないでとっておいてくださいね。

//イメージマップ(クリッカブルマップ)用コード