「LINE entry」とやらを試してみた


ある日のこと...

最近LINEスタンプをダウンロードしてないな〜
イベントスタンプで何か良さそうなのないかな〜

『LINE 「プログラミング教育 LINE entry」 配布期間2020/1/1まで』

ナンカオモシロソウナモノアルヤン!!と余計なことに興味を持ってしまうのが連休中の学生!卒論もありますが寄り道して,コレ触ってみます.

LINE entryって何?

LINE entryとは?
だれでも いますぐ プログラミング
子どもたちは楽しく、先生たちは使いやすく。
LINE entryの中で、作品を見せあったり、コメントしあったり。
活発な学習を応援します。
先生たちの意見がぎゅっと詰まった、
無料で学べるプログラミング学習環境。
いつものクラスルームがここにあります。
(公式サイトより抜粋)

要は,これからの小学生でもプログラミングに触れていく時代に向けての教材です.

Scratchを参考にしているだけあり見た目はほぼ同じで,初めて使うのにどこか見覚えのあるブロックタイプのビジュアルプログラミング言語といった印象です.
ただ,Scratchと違い日本の教育現場向けに開発されているだけあり,日本の学習指導要領に準じた教材を提供していたり,エディタを含めたサイト全体が日本語のみであるなど,プログラムに慣れていない小学生たちが使うことを思うと,ハードルをかなり下げてくれてる教材のように感じます.

何ができるの?

どうやらまだまだ開発中のようで,機能の充実はこれからといった感じではありますが,大きく分けて2つのモード(サイト内ではステップ)があるようです.

1つ目は「学習」で,その学年までに習った内容でプログラミングに触れていく教科書のような役割のモードです.少し複雑と思われる処理は全て「関数」として提供されており,引数として与える数字を変えて,正しい順序でつなげていけば完成するといった極々シンプルなものでした.逆に「関数」とforの処理などをさす「制御」の項目以外はなく,関数に頼らないプログラミングはできませんでした.

2つ目は「ワークスペース」で,提供されているブロックの範囲内で自由にプログラミングできるモードです.こちらでは関数は最初から作られていることはなく,今までは関数を構成するだけに使われていたブロックたちも自由に扱うことができます.背景やキャラクター・乗り物・食べ物などのイラストはある程度提供されており,お馴染みのLINEのキャラクターたちもいるので,結構楽しくプログラミングできそうでした.

お遊び程度でしょ?

もちろんビジュアルプログラミングではない,文字で書くプログラミング(以降,文字プログラミング)からすればお遊びみたいなものかもしれませんが,やり込めばなかなかのものが作れる予感がしています.

試しにシューティングゲームにおける自分の機体と発射される弾について考えてみました.

シューティングゲームの機体を考えてみる

まずは自分の機体がなければ始まりません.シューティングゲームにおける機体の特徴は

  • 画面下部にいる
  • 左右にしか動かない
  • 弾を発射する
  • (敵の攻撃を受けると壊れる)

といったところだと思います.今回は敵については実装しないので,上3つを考えます.

そもそも,このプログラミングは,ロケット・弾それぞれにプログラムを行う必要があります.1つのファイルで複数のオブジェクトを操作するといったことはできません.ただし,他のオブジェクトの一部の情報だけは取得できるのと,共通変数は作れるので,それらをうまく使っていきます.

まず画面下部にいるに関しては,最初からそこに機体を設置しておけばOK.素材の中から適当なロケットでも選び,中央下部に配置完了

次に左右にのみ動くようにする作業ですが,かなり簡単に実装できます.ロケットに対して

[左矢印 キーが押された時]
->[もし 左の壁 に着いた? ではない なら]
-->[x: -10 移動]

[右矢印 キーが押された時]
->[もし 右の壁 に着いた? ではない なら]
-->[x: 10 移動]

これだけです.

最後に弾を発射する作業ですが,適当な弾の画像がないので,とりあえずLEDライト(を小さくしたもの)で代用します.発射キーは上矢印にしようと思います.あとはLEDに対して

[スタートボタンをクリックした時]
->[(共通変数)発射中 を 0 にする]
->[y:140の位置に移動する]

[上矢印 キーが押された時]
->[もし 発射中 = 0 なら]
-->[発射中 を 1 にする]
-->[ロケット の位置に移動する]

-->[LED の y座標 > 140 になるまで(以下を)繰り返す]
--->[y方向に5移動する]

-->[発射中 を 0 にする]

スタートボタンを押したときに変数の初期化と弾を隠すために画面外に設置する作業を行い,
矢印が押されれば,何度も弾を発射しないように変数で発射中であることを記憶.その後弾がロケットの位置からy軸140を超えるまで直進させる処理を行う.
これで弾も打てるようになりました.

さいごに

ものが動くっていいですね,コンソール上で動くものを作らされるより,よっぽど楽しく学べます.ただ,誰もが思いつきそうなシューティングゲームの,弾の部分が小学生からしてみたら複雑な気もするので,ワークスペースを活用して作品を作り上げさせるのは厳しいのかもしれませんね.あと,「学習」は関数オンパレードなので,関数の中身を触らせてあげるようにならないと,本当に大切な部分はわからないままなのも気がかりです.