関西地区

教育システム情報学会 2018年度学生研究発表会

ブロックでプログラムする小学生向け旗取りゲームへのステージ公開機能等の追加
岩上 颯*1, 中西 通雄*2
Hayate Iwakami*1, Michio Nakanishi*2*1 大阪工業大学情報科学部コンピュータ科学科*1Department of Computer Science, Faculty of Information Science and Technology
Osaka Institute of Technology
Email: michio.nakanishi@oit.ac.jp
あらまし：2016 年度の卒業研究で小学生児童のプログラミングへの関心を持たせることを目的としたパズルゲームが開発された。本研究では、2016 年度の卒業研究をもとにサーバを用いてログイン機能を作成した。データベースにアクセスしてユーザ情報やステージ情報を取得または格納することで、ステージの保存やオンラインでステージを公開することができる。また、公開されたステージを簡単にダウンロードすることができ、ユーザ同士でプログラミングを楽しみながら遊ぶことができる。体験者から自宅でもやりたいという感想を数名から頂き、プログラミングを楽しく学習できると感じた。
キーワード：ブロックプログラミング、旗取りゲーム、ステージ公開

1.

ユーザ名とパスワードを入力し、データベースにあるユーザ名と照らし合わせ、一致しなければアカウント登録ができる。ログインでは、入力したユーザ名とパスワードがデータベースにあるかチェックし、一致すればログインができる。

はじめに初学者向けプログラミング学習ツールとしてScratch やアルゴロジックなどがある。Scratch は、自由にゲームやアニメーションを作ることができ、オンラインで共有することができる。また、アルゴロ
ジックは、ゲーム感覚でプログラミングを学べる課題解決型ゲームである。これらをふまえて 2016 年度の卒業研究では、児童のプログラミングへの関心を持たせることを目的としたパズルゲームが開発された(1)。ユーザがブロックを組み合わせてプログラムを作成し、キャラクターにプログラムを与えてステージ上の全ての旗を取るゲームであり、自分のオリジナルのステージを作成することができる。
本研究ではサーバを用意して、作成したオリジナ
ルなステージの保存、オンラインで公開する機能を追加することで、ユーザ同士で遊べることもでき、プログラミングを楽しみながら学べることを目的としている。

2.

3.2 ステージ保存機能
本アプリケーションでは、ステージごとに使えるブロックの数を制限することができ、少ないブロックでプログラムを作成することを意識させている。
ステージ作成後、使えるブロックの最大数を設定し、保存ボタンを押すと図 1 のステージ名入力画面が表示され、ステージ名を入力する。その後、データベース内で同一ユーザの保存したステージの名前の重複がなければ、データベース内にステージ名とステージデータ、使えるブロックの数を格納し、保存が完了する。

システム概要2016 年度の卒業研究では、①ステージを保存するために、JavaScript 形式のステージデータをプログラムに直接書き込む必要があったこと、および②作成したステージはそのパソコン上でプレイが限定されることの 2 つが課題として残っていた。
本年度では、サーバを用いてログイン機能を作成した。Web サーバは CentOS を用いて、Apache とmysql をインストールし、データベースにユーザ情報やゲームデータを格納することで、作成したステージの保存や削除、オンラインでステージを公開、公開されたステージのダウンロードができる。

3.

図 1 ステージ名入力画面
3.3 ステージ公開機能
ステージの保存と操作は同様で、使えるブロックの最大数を設定後、アップロードボタンを押すと図1 と同様のステージ名入力画面が表示され、ステージ名を入力する。その後、データベース内で同一ユーザの公開したステージの名前の重複がなければ、データベース内にステージ名とステージデータ、使えるブロックの数を格納し、公開が完了する。

実装方法

3.1 ログイン機能
本アプリケーションのログイン機能では、アカウント登録とログインがある。アカウント登録では、

133

関西地区

教育システム情報学会 2018年度学生研究発表会

3.4 ステージダウンロード機能

6.

ダウンロードボタンを押すとダウンロード版として用意したサンプルステージに加えて、ステージを公開したユーザ名とステージ名が表示される（図 2）。
ステージ名を選択すると、ユーザ名とステージ名をデータベース内で照らし合わせ、見つかったステージを読み込み、また、ステージを公開するユーザが多くなると、特定のユーザを探すのに時間を要してしまうため、ユーザ名の部分一致が可能であるユー
ザ検索機能を追加した。

体験してもらう時間が少なかったが、本アプリケーションは、自宅でもやりたい、作成したステージを他の人に遊んでもらえるのが新しくておもしろいという感想を保護者から頂いた。本アプリケーションを公開して多くの小学生にオンラインで使ってもらい、本アプリケーションへのアクセス数や作成されたステージ、ダウンロードされたステージなどを記録して分析し、機能改善につなげていく必要がある。また、新しい機能として、挑戦モード、ゲーム音の追加を考えている。

今後の課題

6.1 挑戦モードの追加
現在アプリケーションに用意しているステージは14 個であり、ステージ数を増やすことも視野に入れているが、将来的に発展的課題が必要になると考えている。挑戦モード限定として新規ブロック「斜めに進むブロック」、「変数ブロック」の追加を考えている。また、使えるブロックの数を限りなく少なくさせる、指定時間内にステージをクリアするなどといったステージを用意することで、ユーザの学習意欲の向上を図れると考えている。

図 2 ステージ一覧画面4.

評価

小学校 3 年生～6 年生 8 名に次の手順に沿ってゲームを体験してもらった。
① 用意されたステージを順に進める② ステージを作成する③ ステージを公開し、他の人に挑戦させる
その後にプログラミングへの興味や本アプリケーションへの印象をアンケートに回答してもらった。

6.2 ゲーム音の実装

5.

7.

キャラクターが前に進む音、旗を取る音、クリアした音などが現状無いため、無音ではゲームの動作をユーザにわかりやすく伝えにくい。クリアした音
ではユーザの学習意欲を高めることができる他、ユーザに印象深く耳に残れば、本アプリケーションへの魅力をより引き立てさせられると考えている。

結果と考察

結論

本研究では、2016 年度開発された小学生向けパズルゲームをもとに、作成したオリジナルなステージをオンラインで公開する機能等の追加を行った。ボ
タン一つでステージを公開、公開されたステージをダウンロードできることにより、小学生でも簡単に操作ができ、楽しくゲームをプレイしている印象があった。体験してもらえる時間は短かったものの、自宅でもやりたいという感想を数名から頂き、プログラミングを楽しく学習できると感じた。

②のステージ作成では、楽しそうにしている印象を受けたが、作成されたステージは旗だらけだった
り、キャラクターがどこにも移動できずクリア不可能なステージが多くみられたりした。アルゴリズムを踏まえて、ステージを作成してもらえるように考える必要があるので、ステージ上に旗が存在し、かつ作成したステージを自分でクリアした時のみステージ公開できるようにした。また、ステージをダウンロードしなくても、図 2 のステージ一覧画面から公開されているステージのイメージ画像を確認できるように後日実装した（図 3）。

謝辞
本研究の一部は JSPS 科研費 JP16K01141 の助成をうけた。
参考文献(1) 馬場祐輔：「ブロックでプログラムする小学生向けパズルゲーム」大阪工業大学 情報科学部 卒業論文
（2017.1）

図 3 ステージ一覧画面（改良版）

134