以下に、本発明の実施形態に係る情報処理装置、情報処理方法、サーバ装置およびプログラムについて、図面を参照して説明する。
図1は、本発明の実施形態に係る情報処理装置10の外観の一例を示す正面図である。図1は、情報処理装置10を関数電卓として実施した場合を示す。なお関数電卓に限定されず、情報処理装置10は、タブレット端末、スマートフォン、携帯電話機、タッチパネル式PDA(Personal Digital Assistants)、電子ブック、携帯ゲーム機、パーソナルコンピュータ等として構成することもできる。物理的なキー(ボタン)を持たない、例えばタブレット端末のような情報処理装置(図示せず)は、関数電卓のキーと同様なソフトウェアキーボードを表示し、このソフトウェアキーボードに対するキー操作に応じて処理を実行する。
図1において、情報処理装置10は、本体正面にキー入力部11、およびディスプレイ12を備える。キー入力部11は、数値、数式、およびコマンドを入力したり、計算やスクリプトの実行を指示したりするための数値・演算記号キー群111、各種の関数を入力したりメモリ機能を立ち上げたりするための関数機能キー群112、計算モードやアルゴリズムモードといった各種動作モードのメニュー画面を表示させたり、これら動作モードの設定を指示したりするための設定キー群113、各種の機能を1回のキー操作で立ち上げるためのファンクションキー群114、ディスプレイ12に表示されたカーソルの移動操作やデータ項目の選択操作などを行うためのカーソルキー115を含む。
数値・演算記号キー群111としては、[0]〜[9](数値)キー、[+][−][×][÷](四則記号)キー、[=](実行:EXE)キー、[AC](クリア)キーなどが配列される。
関数機能キー群112としては、[sin](サイン)キー、[cos](コサイン)キー、[tan](タンジェント)キーなどが配列される。
設定キー群113としては、[OPTN](オプション)キー、[CALC]キーなどが配列される。
ファンクションキー群114としては、[SHIFT]キー、[ALPHA]キーなどが配列される。
なお、数値・演算記号キー群111、関数機能キー群112、設定キー群113、ファンクションキー群114のキーは、[SHIFT]キーが操作された後に続けて操作されることで、そのキートップに記載されたキー機能ではなく、そのキーの上方に記載されたキーとして機能できるようになっている。例えば、[SHIFT]キー操作後に[DEL]キーが操作(以下、[SHIFT]+[DEL]キーと記す。)されると、[UNDO](操作取消)キーとなる。
情報処理装置10の動作モードは、例えば設定キー群113における[CALC]キーが押下されるたびに、計算モードとアルゴリズムモードとで交互に切り替わる。すなわち、情報処理装置10は、少なくとも、計算モードとアルゴリズムモードの2種類の動作モードを備える。もちろん、3つ以上のモードを備えていてもよく、その場合には[CALC]キーを押下するたびに順次、モードを切り替えるようにすればよい。
ディスプレイ12は、例えばドットマトリクス型の液晶表示ユニットである。情報処理装置10がタブレット端末であれば、ディスプレイ12は、タッチパネルを重ねて設けた液晶表示ユニットである。ディスプレイ12は、アルゴリズムモードにおいて、スクリプト編集画面と、スクリプト実行画面との少なくとも2つの画面を、ユーザ操作に応じて切り替え表示する表示部である。
スクリプト編集画面は、アルゴリズムモードにおいて、図形を描画する命令リストとしてのスクリプトを表示する画面である。作成されたスクリプトの確認、スクリプトの新規作成、および作成済のスクリプトの変更のために利用される画面である。図2に示されるように、スクリプト編集画面13は、スクリプトを、表示画面内の、例えば4行のスクリプト表示領域に縦スクロール可能に表示する。各行がコマンドに対応する。ユーザは、キー操作によりスクリプトを入力することにより、入力されたスクリプトが画面上に表示される。スクリプト編集画面13上でスクリプトを編集することも可能である。情報処理装置10は、メモリに記憶されたスプリクトを読み出してスクリプト編集画面13上に表示する。ユーザは、表示されたスクリプトをキー操作により変更することによりスクリプトを編集する。
スクリプト実行画面は、アルゴリズムモードにおいて、スクリプトを実行して、図形を描画する画面である。作成されたスクリプトの実行結果の確認、新規図形の作成、およびスクリプトの実行内容の変更のために利用される画面である。図3は、スクリプト実行画面14の一例を示す図で、アバターAが座標(x、y)=(5,0)に表示されていることを示す。ちなみに図3は図2のスクリプトの実行結果を示しており、アバターAは(0,−1)→(5,−1)→(5,0)の順に移動し、その移動軌跡が図3に直線で示される。実施形態では、スクリプト実行画面14上で描画されるアバターの移動軌跡を、オブジェクトと称する。ユーザは、キー操作等により描画する図形を入力することにより、入力された図形がスクリプト実行画面14上に表示される。スクリプト実行画面14上でスクリプトを編集することも可能である。情報処理装置10は、メモリに記憶されたスプリクトを読み出してスクリプト実行画面14上に実行内容を表示する。ユーザは、表示された実行結果の図形をキー操作等により変更して実行内容を編集する。
図4は、情報処理装置10の一例を示す機能ブロック図である。情報処理装置10は、キー入力部11およびディスプレイ12に加えて、CPU(Central Processing Unit)21、メモリ22、および記録媒体読取部24を備える。つまり情報処理装置10は、プロセッサとメモリとを有する、コンピュータである。
CPU21は、メモリ22に書き込まれているプログラムに従って各部の動作を制御し、キー入力部11からのキー入力信号に応じた各種の処理を実行する。プログラムは、メモリ22に予め記録されていてもよいし、あるいはメモリカード等の外部記録媒体23から記録媒体読取部24を介してメモリ22に読み込まれて記憶されたものであってもよい。
メモリ22は、書き換え不可の領域に加えて、書込可能データエリア22bを有する。書込可能データエリア22bは、例えば、キー入力部11によりキー入力されたキーコードのデータ、数式のデータ、表データ、グラフデータ、あるいはスクリプトのテキストデータ等を記憶するためのエリアである。例えば、メモリ22の書き換え不可の領域に、プログラムとしてのスクリプト実行エンジン22aが記録される。スクリプト実行エンジン22aは、アルゴリズムモードにおけるスクリプトの編集、コンパイル、実行等の、スクリプトの作成から実行に係わる機能を制御するプログラムである。
情報処理装置10は、プログラムに記述された命令に従ってCPU21が各部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、以下に説明する機能を実現する。
図5は、スクリプト実行エンジン22aに含まれるサブルーチンの一例を示す図である。スクリプト実行エンジン22aは、オブジェクト編集受付ルーチン22a1、スクリプト作成ルーチン22a2、表示制御ルーチン22a3、スクリプト編集受付ルーチン22a4、作成条件設定ルーチン22a5、スクリプト読み出しルーチン22a6、およびスクリプト記憶ルーチン22a7を備える。
オブジェクト編集受付ルーチン22a1は、スクリプト実行画面14に表示されるオブジェクトを編集するためのユーザ操作を受け付ける。図6に示されるように、スクリプト実行画面14上でアバターを移動させてゆくと、その移動軌跡がオブジェクトとして描画される。図6の白抜き矢印は、その位置で何らかのユーザ操作(カーソルキー115の押下など)がなされることを示す。
図6を用いて、オブジェクト編集受付ルーチン22a1が実行する処理を、具体的に説明する。初期状態で、アバターの位置座標は原点(0,0)にあったとする。この状態から、「描画開始」を指示するペンダウン操作(例えば「+」ボタンの押下)を行った後、カーソルキー115の右ボタンを操作して例えば座標(30,0)にまでアバターを移動させ、実行キー(例えば「=」ボタン)を押下する。そうするとアバターの軌跡が確定し、(0,0)と(30,0)を結ぶ1本の線が画面上に描画される。
続いて、カーソルキー115の上ボタンを操作して例えば座標(30,10)にまでアバターを移動させ、実行キー「=」を押下する。そうすると(30,0)と(30,10)を結ぶ2本目の線が画面上に描画される。さらに、カーソルキー115の右ボタンを操作して例えば座標(60,10)にまでアバターを移動させ、実行キー「=」を押下すると、(30,10)と(60,10)を結ぶ3本目の線が画面上に描画される。最後に、「描画終了」を指示するペンアップ操作(例えば「−」ボタンの押下)により、線の描画が終了する。このような手順により、図6に示されるようなかぎ型の図形を描画することができる。
オブジェクトの位置や形状は、スクリプト実行画面14において、カーソルキー115を上下左右に押下して自由に編集することが可能である。例えば、図7は、編集操作時のスクリプト実行画面14を示している。(A)は、編集操作開始前の画面であり、三角形の図形が描画されている。ここで、オブジェクトの最終点は、座標の原点に位置しており、太字のx印のポインタで示されている。編集操作開始前の初期状態において、オブジェクトの最終点が編集開始位置として選択されている。次に、カーソルキー115を操作して、編集開始位置を移動して編集したいポインタを選択する。(B)は、この編集したいポインタを選択する操作時の画面を示している。カーソルキー115の上ボタンを操作することにより、編集開始位置がオブジェクトの最終点のポインタから1つ手前のポインタに移動される。この状態で、実行キーを操作することにより、このポインタが編集開始位置として決定される。編集開始位置が決定されると、次に、新たなポインタを追加、あるいは、ポインタの位置を変更する操作を行う。(C)は、新たなポインタを追加する操作時の画面を示している。編集開始位置からカーソルキー115を操作することによって、新たに追加されるポインタが移動する。新たなポインタが描画したい位置に到達すると、実行キーを操作することによって、オブジェクトの最終点として確定される。また、(D)は、ポインタの位置を変更する操作時の画面を示している。編集開始位置のポインタが選択された状態において、「DEL」(削除)キーを操作することによって、ポインタが削除される。続いて、カーソルキー115を操作することによってポインタを移動して、ポインタの位置を変更する。ここでは、カーソルキー115の左ボタンを操作することにより、ポインタの位置を左に移動している。以上の操作により、オブジェクトの位置、形状が編集される。
アバターの初期位置である原点(0,0)および実行キー「=」を押下した各座標値は、図14を用いて後述するスクリプトの自動作成に係わる処理における、スタート値(x1,y1)またはエンド値(x2,y2)として用いられる。なお、ディスプレイ12がタッチパネルであれば、描画したい図形の頂点に対応するパネル上の位置に指先を接触させる操作(タッチ)や、パネルに指先を接触させたまま移動させる操作(タッチ&スライド)により、図形を描画することも可能である。
スクリプト作成ルーチン22a2は、スクリプト実行画面14において編集されたオブジェクトに対応するスクリプトを、作成条件設定ルーチン22a5により設定された作成条件に従って作成する。
表示制御ルーチン22a3は、スクリプト作成ルーチン22a2により作成されたスクリプトを、スクリプト編集画面13に表示する。
スクリプト編集受付ルーチン22a4は、スクリプト編集画面に表示されるスクリプトを編集するためのユーザ操作を受け付ける。[CALC]キーの押下により情報処理装置10がアルゴリズムモードになると、スクリプト編集受付ルーチン22a4は、数値・演算記号キー群111から、コマンドの入力を受け付ける。例えば、ディスプレイ12に表示されているアバターAの表示位置をある移動量で移動させるコマンドがある。ユーザは、数値・演算記号キー群111を操作して、引数としての移動量とともにコマンドを入力し、スクリプトを作成する。
作成条件設定ルーチン22a5は、スクリプトの作成条件を指定するためのユーザ操作を受け付ける。そして、作成条件設定ルーチン22a5は、指定された作成条件に基づいて、スクリプト作成ルーチン22a2にスクリプトを作成させる。
スクリプト読み出しルーチン22a6は、メモリ22の書込可能データエリア22bに記憶されているスクリプトを読み出し、スクリプト編集画面13またはスクリプト実行画面14に表示する。
スクリプト記憶ルーチン22a7は、スクリプト作成ルーチン22a2、スクリプト編集受付ルーチン22a4により作成されたスクリプトを、メモリ22の書込可能データエリア22bに記憶する。
アルゴリズムモードに入ると、情報処理装置10は、図8に示すように、ユーザによる実行モードの選択を受け付ける実行モード選択画面15をディスプレイ12に表示する。ユーザはカーソルキー115を操作して、Edit−>Runモード(数値1に対応)、またはRun−>Editモード(数値2に対応)のいずれかを指定することができる。
図8を参照して、これらの2つのモードについて説明する。Edit−>Runモードは、ディスプレイ12に表示されるスクリプトを編集するためのモードである。Edit−>Runモードでは、スクリプト編集画面13が表示され、例えば、コマンドに与えられる引数を変更するなどの操作を行うことができる。スクリプトの編集が完了した後に実行ボタン(例えばEXEボタン)が押下されると、スクリプト実行画面14が表示され、スクリプトを実行して画面上に図形を描画する。当該スクリプトを実行した結果として画面に表示される図形は、基本的には編集できないようになっている。
Run−>Editモードは、ディスプレイ12の画面に表示される図形を編集可能とするモードである。Run−>Editモードでは、スクリプト実行画面14が表示され、ユーザは、図形の編集を行うことができる。図形の編集が完了した後に実行ボタン(例えばEXEボタン)が押下されると、スクリプト編集画面13が表示され、その図形に対応するスクリプトが自動で生成される。編集済のスクリプトのデータは、メモリ22におけるそれぞれのモードからアクセス可能な記憶領域(共通データエリア)に記憶される。
Edit−>RunモードからRun−>Editモード、Run−>EditモードからEdit−>Runモードへの変更は、例えば、[OPTN](オプション)キーを押下することにより、実行モード選択画面15に移行し、実行モード選択画面15上でEdit−>RunモードあるいはRun−>Editモードを選択することによって、実行される。したがって、共通データエリアに記憶されたスクリプトのデータをそれぞれのモードから読み出してスクリプトを再編集することが可能である。
スクリプトの編集に関し、図9を参照してアルゴリズムモードの処理手順の概要を説明する。例えば、学習者であるユーザは、スクリプトを作成して、これがどのように実行されるのか確かめたいとする。このとき、実行モード選択画面15からEdit−>Runモードを選択して、共通データエリアからスクリプトを読み出し、あるいは共通データエリアにスクリプトが記憶されていない場合は、スクリプトを新規作成する。スクリプト編集画面13上に読み出されたスクリプトを編集、あるいはスクリプト編集画面13上にスクリプトを新規に作成することにより、第1の命令リストである第1のスクリプトが作成され、メモリ22の共通データエリアに保存される(ステップS101)。続いて、作成された第1のスクリプトが実行され、第1の実行内容である図形の描画が行われ、スクリプト実行画面14に表示されるグラフィカル実行・表示処理が行われる(ステップS102)。このように、ユーザは、自分で作成したスクリプトがどのように実行されグラフィカル表示されるのかを確かめることができ、プログラムの学習をすることができる。
続いてユーザは、スクリプト実行画面14に表示された第1の実行内容により描画された図形に基づいて描画された図形を変更してそのときのスクリプトの変化を確かめてみたいと思う場合がある。このとき、モードをRun−>Editモードに変更して描画された図形の編集を行う。実行モード選択画面15に戻り、Run−>Editモードを選択してRun−>Editモードに移行すると、共通データエリアに保存された第1のスクリプトが読み出される。読み出されたスクリプトは実行されて、第1の実行内容である図形の描画が行われスクリプト実行画面14上に表示され、描画された図形についてグラフィカル編集が可能となる。ここで、ユーザは、描画された図形を変更することにより、グラフィカル編集し、図形の描画についての第2の実行内容を作成する(ステップS103)。グラフィカル編集が終了すると、第2の実行内容に対応する第2の命令リストである第2のスクリプトが自動生成され、生成された第2のスクリプトがスクリプト編集画面13に表示される。生成された第2のスクリプトは共通データエリアに保存される(ステップS104)。このように、既に作成されているスクリプトの実行により描画された図形を変更して新たなスクリプトを生成することにより、描画された図形の変更によりスクリプトがどのように変更されるかを確認することができ、プログラムの学習の効果を高めることができる。
さらに、スクリプト編集画面13に表示された第2のスプリクトを編集したい場合、モードをEdit−>Runモードに変更する。実行モード選択画面15に戻り、Edit−>Runモードを選択することによってEdit−>Runモードに移行する。Edit−>Runモードに移行すると、共通データエリアに保存された第2のスプリクトが読み出され、スクリプト編集画面13に第2のスクリプトが表示され、スクリプトの編集が可能な状態とされる。すなわち、ステップS101の状態に移行する。ここで、第2のスクリプトを変更してスクリプトを編集することにより、これが、第1のスクリプトとなって、以下同様にステップS101→ステップS102→ステップS103→ステップS104→・・・と繰り返し編集が可能となる。
上記の説明は、スクリプトを作成して、これがどのように実行されるのか確かめるべく、Edit−>Runモードを選択することにより、ステップS101から始まる処理であった。これに対して、例えば、ユーザが、描画される図形を作成して、これがどのようなスクリプトとなるのか確かめたい場合、Run−>Editモードを選択して、ステップS103から処理を始めることもできる。このとき、実行モード選択画面15からRun−>Editモードを選択して、共通データエリアからスクリプトを読み出し、あるいは共通データエリアにスクリプトが記憶されていない場合は、描画される図形を新規作成する。スクリプト実行画面14上で描画された図形を編集、あるいは描画される図形を新規に作成することにより、第3の実行内容が作成される(ステップS103)。このグラフィカル編集が終了すると、第3の実行内容に対応する第3の命令リストである第3のスクリプトが自動生成され、生成された第3のスクリプトがスクリプト編集画面13に表示される。これにより、ユーザは、描画される図形を作成して、これがどのようなスクリプトとなるのか表示して確かめることができる。生成された第3のスクリプトは共通データエリアに保存される(ステップS104)。
さらに、スクリプト編集画面13に表示された第3のスプリクトを編集したい場合、モードをEdit−>Runモードに変更する。Edit−>Runモードに移行すると、共通データエリアに保存された第2のスプリクトが読み出され、スクリプト編集画面13に第2のスクリプトが表示され、スクリプトの編集が可能な状態とされる。すなわち、ステップS101の状態に移行する。ここで、第3のスクリプトを変更してスクリプトを編集することにより、第1の命令リストである第1のスクリプトが作成される。以下同様にステップS101→ステップS102→ステップS103→ステップS104→・・・と繰り返し編集が可能となる。
このように、作成された1つのスクリプトを基に、スクリプトを変更して実行内容を確かめ、さらに実行内容である図形を変更してスクリプトを確かめることを繰り返し行うことができ、どこをどのように変更したら、どのような結果になるかを確かめることができる。ここで、まったく新しいスクリプトを生成するのではなく、一部を少しずつ変更して確かめることができるので、よりプログラムの構造を理解しやすくなる。
図10は、上記処理手順を実現する情報処理装置10の処理手順の具体的な一例を示すフローチャートである。アルゴリズムモードに入ると、初期画面を表示したのち、情報処理装置10は、図8に示された実行モード選択画面15により、ユーザによる実行モードの選択を受け付ける(ステップS201)。ステップS201においてEdit−>Runモードが指定(1)されると、情報処理装置10は、メモリ22の共通データエリアに記憶されたスクリプトが存在するか否かを判断する(ステップS202)。メモリ22の共通データエリアにスクリプトが存在する場合(ステップS202:YES)、記憶されたスクリプトを読み出し、ディスプレイ12のスクリプト編集画面13に表示する(ステップS203)。共通データエリアにスクリプトが存在しない場合(ステップS202:NO)、スクリプト編集画面13にスクリプトが存在しない新規作成状態を表示する(ステップS204)。
次に、情報処理装置10は、編集開始のユーザ操作(ステップS205)、スクリプト実行のユーザ操作(ステップS209)、実行モード選択画面に戻るユーザの操作(ステップS211)、およびアルゴリズムモード終了のユーザ操作(ステップS212)を待ち受け、いずれの操作も無ければ(NO)、ステップS205〜ステップS212のループが繰り返される。
ステップS205で、編集開始のユーザ操作があれば(ステップS205:YES)、ユーザによるスクリプトの編集操作が受け付けられる(ステップS206)。編集終了のユーザ操作が有れば(ステップS207:YES)、最新の編集内容がメモリ22の共通データエリアに反映され、記憶される(ステップS208)。そして、スクリプトの実行のユーザ操作があれば(ステップS209:YES)、情報処理装置10は共通データエリアのスクリプトを読み出し、実行する(ステップS210)。スクリプトが実行されると、スクリプト編集画面13からスクリプト実行画面14に変更され、図形が描画される。スクリプトの実行が終了すると、実行モード選択画面15に戻るユーザ操作が有るか否か判断される(ステップS211)。実行モード選択画面15に戻るユーザ操作が有れば(ステップS211:YES)、ステップS201に戻り、ユーザは、実行モードを変更することができる。実行モード選択画面15に戻るユーザ操作が無ければ(ステップS211:NO)、アルゴリズムモード終了のユーザ操作が有るか否か判断される(ステップS212)。アルゴリズムモード終了のユーザ操作が有れば(ステップS212:YES)、アルゴリズムモードは終了する。アルゴリズムモード終了のユーザ操作が無ければ(ステップS212:NO)、ステップS205に戻る。この場合、Edit−>Runモードにおいて、続けてスクリプトの編集を行うことができる。
一方、図10のフローチャートのステップS201においてRun−>Editモードが指定(2)されると、図11のフローチャートに示される処理手順が開始される。このモードにおいて、情報処理装置10は、最初にメモリ22の共通データエリアに記憶されたスクリプトが存在するか否かを判断する(ステップS301)。メモリ22の共通データエリアにスクリプトが存在する場合(ステップS301:YES)、記憶されたスクリプトを読み出して実行し、実行結果をディスプレイ12にRun−>Editモードにおける初期画面として表示する(ステップS302)。初期画面は、例えば図8に示されるように、横方向(x軸)および縦方向(y軸)の各座標軸を備えるスクリプト実行画面14である。共通データエリアにスクリプトが存在しない場合(ステップS301:NO)、ディスプレイ12にRun−>Editモードの初期画面として実行結果が存在しない新規作成状態を表示する(ステップS303)。初期座標としての原点にx印を表示しても良い。ここで、メモリ22の共通データエリアにスクリプトが存在する場合、記憶されたスクリプトをすぐに読み出すのではなく、共通データエリアにどんなスクリプトのデータが記憶されているのか、確認できるようにしてもよい。
次に、情報処理装置10は、スクリプト自動生成に係わる優先順位の設定を待ち受け(ステップS304)、ユーザ操作が有れば(ステップS304:YES)、優先順位設定のユーザ操作を受け付ける(ステップS305)。優先順位の設定は、例えば図12および図13に示されるようなプロンプトを用いてユーザに促される。
図12は、ディスプレイ12に表示されるアバターAの位置を指定するための、3つの条件(Priority−1)を示す。これらの条件のうちいずれを優先するかを、ユーザは、カーソルキー115を押下するなどの操作で指定する。
『1:Turn』は、アバターの位置を、ディスプレイ12の座標系における現在の絶対角度に対する相対角度、および現在位置からの移動量で指定する、という条件である。この条件が指定されると、情報処理装置10は、回転を指示する命令(Turnコマンド)と、移動を指示する命令(Moveコマンド)との組み合わせでアバターを移動させるようなスクリプトを自動生成する。
『2:Direction』は、アバターの位置を、ディスプレイ12の座標系における絶対角度、および現在位置からの移動量で指定する、という条件である。この条件が指定されると、情報処理装置10は、向きを指定する命令(Directionコマンド)と、移動を指示する命令(Moveコマンド)との組み合わせでアバターを移動させるようなスクリプトを自動生成する。
『3:Go to x,y』は、アバターの位置を、ディスプレイ12の座標系における座標値で直接指定する、という条件である。この条件が指定されると、情報処理装置10は、アバターの座標を指定する命令(Go toコマンド)でアバターを移動させるようなスクリプトを自動生成する。
図13は、スクリプトの作成に係わる2つ目の優先度(Priority−2)を選択するためのプロンプト画面の一例を示す。図13に示される画面において、ユーザは、『1:Sequence』または『2:Repeat』のいずれかを、カーソルキー115を押下するなどの操作で指定する。
『1:Sequence』は、順次型のアルゴリズムを優先してスクリプトを作成する、という条件である。この条件が指定されると、情報処理装置10は、Repeat命令を考慮せず、シーケンス型のスクリプトを生成する。
『2:Repeat』は、ループ型のアルゴリズムを優先してスクリプトを作成する、という条件である。この条件が指定されると、情報処理装置10は、Repeat命令を考慮し、この命令をできる限り使用してコンパクトなスクリプトを生成する。
図11のフローチャートに戻って説明を続ける。次のステップにおいて、情報処理装置10は、図形描画に係わる編集開始のユーザ操作を待ち受ける(ステップS306)。ユーザ操作が無ければ(ステップS306:NO)、実行モード選択画面15に戻るユーザの操作(ステップS312)の有無を判定する。実行モード選択画面15に戻るユーザ操作が無ければ(ステップS312:NO)、アルゴリズムモード終了のユーザ操作の有無を判定し(ステップS313)、当該ユーザ操作が有れば(ステップS313:YES)終了する。ユーザ操作が無ければ(ステップS313:NO)、処理手順はステップS304に戻る。
ステップS306において、図形描画に係わる編集開始のユーザ操作が有れば(ステップS306:YES)、情報処理装置10は、このユーザ操作を受け付ける(ステップS307)。ユーザは、スクリプト実行画面14に表示された図形を変更あるいはスクリプト実行画面14に新たな図形を描画する。
そして、図形を描画するモードを終了するユーザ操作が有れば(ステップS308:YES)、情報処理装置10は、指定された優先順位および指定された図形に基づいて、スクリプトを自動生成する(ステップS309)。次に、情報処理装置10は、作成したスクリプトをディスプレイ12に表示する(ステップS310)。このとき、ディスプレイ12は、スクリプト編集画面13に変更され、作成したスクリプトは、スクリプト編集画面13上に表示される。作成したスクリプトのデータはメモリ22の共通データエリアへ記憶される(ステップS311)。スクリプトのデータが共通データエリアへ記憶された後、実行モード選択画面15に戻るユーザ操作が有るか否か判断される(ステップS312)。実行モード選択画面15に戻るユーザ操作が有れば(ステップS312:YES)、ステップS201に戻り、ユーザは、実行モードを変更することができる。実行モード選択画面15に戻るユーザ操作が無ければ(ステップS312:NO)、アルゴリズムモード終了のユーザ操作が有るか否か判断される(ステップS313)。アルゴリズムモード終了のユーザ操作が有れば(ステップS313:YES)、アルゴリズムモードは終了する。アルゴリズムモード終了のユーザ操作が無ければ(ステップS313:NO)、ステップS304に戻る。この場合、Run−>Editモードにおいて、続けて図形の編集を行うことができる。あるいは、スクリプト自動生成の優先順位を変更して別の条件を設定し、設定された条件を満たすコマンドを含むスクリプトを生成することができる。
図14は、スクリプトの自動生成に係わる処理手順の一例を示すフローチャートである。ここで、初期状態において、アバターの座標は原点(0,0)であり、絶対角度は「0°」であるとする。図14において、情報処理装置10は、Run−>Editモードにおいて描画された図形(例えば図7)の各点の、スタート値(x1,y1)およびエンド値(x2,y2)をキャッシュメモリに格納し(ステップS401,S402)、Priority−1での優先順位をチェックする(ステップS403)。
ここで、図6を用いて説明したように、オブジェクトを描画する際、アバターの初期位置は原点(0,0)であり、アバターを移動させる毎に実行キー「=」を押下する操作を複数回繰り返すことで、当該オブジェクトの複数の頂点が順次指定される。このとき、描画される当該オブジェクトの複数の頂点の中の隣接する2つの頂点のうち、時系列で先に指定した座標値をスタート値、後に指定した座標値をエンド値という。したがって、スタート値とエンド値の組が複数存在する場合がある。
例えば、図6においては、(0,0)と(30,0)との組、(30,0)と(30,10)との組、および、(30,10)と(60,10)との組がスタート値(x1,y1)とエンド値(x2,y2)との組である。また、図7(A)においては、(0,0)と(20,0)との組、(20,0)と(10,10√3)との組、および、(10,10√3)と(0,0)との組がスタート値(x1,y1)とエンド値(x2,y2)との組である。
図14において、『1:Turn』が指定されていれば、情報処理装置10は、上記キャッシュされたスタート値、エンド値に基づいてTurnコマンド、Moveコマンドのそれぞれの引数を自動で計算し、これらのコマンドを順に配置してスクリプトブロックを生成する(ステップS404)。
『2:Direction』が指定されていれば、情報処理装置10は、上記キャッシュされたスタート値、エンド値に基づいてDirectionコマンド、Moveコマンドのそれぞれの引数を自動で計算し、これらのコマンドを順に配置してスクリプトブロックを生成する(ステップS405)。
『3:Go to』が指定されていれば、情報処理装置10は、上記キャッシュされたスタート値、エンド値に基づいてGo toコマンドの引数(座標値)を自動で計算し、スクリプトブロックを生成する(ステップS406)。
ステップS401〜ステップS406までの処理は、点の終端に至るまで繰り返される(ステップS407)。終端に至ると(ステップS407:Yes)、情報処理装置10は、Priority−2での優先順位をチェックする(ステップS408)。『1:Sequence』が指定されていれば、情報処理装置10は、上記生成されたブロックを順に配列してスクリプトを作成する。
『2:Repeat』が指定されていれば、情報処理装置10は、上記生成されたブロックのうち連続するブロックが有れば(ステップS409:YES)、それらを『Repeat』コマンドに置き換えてスクリプトを作成し(ステップS410)、終了する。
上記実施形態において、CPU21がメモリ22に記憶されたプログラムを実行することによって、制御手段として機能した。しかしながら、CPU21がメモリ22に記憶されたプログラムを実行する代わりに、例えばASIC(Application Specific Integrated Circuit)、FPGA(Field-Programmable Gate Array)、各種制御回路等の専用のハードウェアを備え、専用のハードウェアが、制御手段として機能しても良い。この場合、一部を専用のハードウェアによって実現し、他の一部をソフトウェア又はファームウェアによって実現しても良い。
また、上記実施形態において、メモリ22に予めプログラムを記憶しておくことはもとより、メモリカード等の外部記録媒体23から記録媒体読取部24を介してメモリ22に読み込ませて記憶されたものであってもよいと説明した。これに加えて、プログラムを搬送波に重畳し、インターネット等の通信媒体を介してメモリ22に読み込ませて記憶することもできる。図15は、互いにインターネット等のネットワーク30で通信可能に接続されたサーバ装置31と複数の情報処理装置10とを備えるシステムである。サーバ装置31は、本発明に係る処理を実行するプログラムを記憶部に記憶している。プログラムは、情報処理装置10の要求に応じてネットワーク30を介しサーバ装置31からダウンロードされ、情報処理装置10のメモリ22にインストールされる。そして、情報処理装置10は、このプログラムを起動し、OS(Operating System)の制御下で、他のアプリケーションプログラムと同様に実行することにより、上記の処理を実行できるように構成してもよい。また、サーバ装置31は、本発明に係る処理を実行するプログラムを実装し、情報処理装置10がプログラムを実行するのではなく、情報処理装置10の操作入力に応じてサーバ装置31がプログラムを実行して、その実行結果を情報処理装置10に送信してもよい。例えば、情報処理装置10はウェブブラウザを通じてサーバ装置31にアクセスしてサーバ装置31はプログラムの実行結果を提供する。
以上説明したように、本実施形態によれば、情報処理装置10は、学習者が作成した第1の命令リストの第1の実行内容をディスプレイ12へ表示し、どのような実行結果がもたらされるのかを提示することで、プログラミングに慣れ親しむことができる。
また、図形を描画する第1の実行内容の少なくとも一部を変更する操作を受け付けることで、第2の実行内容を作成し、第2の実行内容に対応する第2命令リストを生成し、第2の命令リストをディスプレイ12に表示する。これにより、すでに存在するグラフィカルな実行結果を変更すると、学習者自身が作成した命令リストがどのように修正されるのかを理解することができ、命令リストに対する理解を深めさせることで、プログラミング学習を支援する。
また、情報処理装置10は、図形を描画する実行内容を作成する操作を受け付けることで、第3の実行内容を作成し、第3の実行内容に対応する第3命令リストを生成し、第3の命令リストをディスプレイ12に表示する。これにより学習者がグラフィカルな実行結果を新たに作成し、その実行結果をもたらす命令リストを自動生成して提示し、プログラミングが初めての入門者であっても、プログラミングに慣れ親しむことができる。
さらに、第3の命令リストをディスプレイ12に表示し、第3の命令リストの少なくとも一部を変更する操作を受け付けることで、第1の命令リストを作成する。したがって、グラフィカルな実行結果を示した後に、その実行結果をもたらす命令リストを自動生成して提示し、その後その命令リストを変更することができ、さらに、変更後の命令リストに対するグラフィカルな実行結果を提示する。これにより、学習者自身が命令リストを変更すると、その実行結果がどのように変化するのかを理解することができ、命令リストに対する理解を深めさせることで、プログラミング学習を支援する。
さらに、情報処理装置10は、第1の実行内容の少なくとも一部を変更する操作を受け付けることで、第2の実行内容を作成し、第2の実行内容に対応する第2の命令リストを生成し、第2の命令リストをディスプレイ12に表示する一方で、第3の命令リストをディスプレイ12に表示し、第3の命令リストの少なくとも一部を変更する操作を受け付けることで、第1の命令リストを作成する。これにより、『命令リストをユーザが作成/変更し、自動生成されるグラフィカルな実行結果を確認する』という処理と、『グラフィカルな実行結果をユーザが作成/変更し、命令リストが自動生成される』という処理の双方を行き来して実行できるようにしたので、ユーザ自身が作成している命令リストの理解度を深めることができ、プログラミング学習支援できる。
また、命令リストを自動生成する際、2通り以上の命令リストを生成し、その少なくとも何れかを提示する。これにより、学習者は、同じグラフィカルな実行結果であっても、2通り以上のコマンドリストが対応し得ることを学習することができる。また、自動生成するする命令リストは、ユーザ設定した特定の命令をリストへ含めることとした。これにより、学習者は、特定の命令を使用したプログラミング方法を学習することができる。
本発明の実施形態を説明したが、本発明の範囲は、上述の実施形態に限定するものではなく、特許請求の範囲に記載された発明の範囲とその均等の範囲を含む。以下に、この出願の願書に最初に添付した特許請求の範囲に記載した発明を付記する。付記の番号は、この出願の願書に最初に添付した特許請求の範囲の通りである。
(付記1)
命令リストを作成する操作を受け付けることで、第1の命令リストを作成し、
前記第1の命令リストの第1の実行内容を表示部へ表示し、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けることで、第2の実行内容を作成し、
前記第2の実行内容に対応する第2の命令リストを生成し、前記第2の命令リストを前記表示部に表示する、
制御手段を備える情報処理装置。
(付記2)
前記制御手段は、
実行内容を作成する操作を受け付けることで、第3の実行内容を作成し、
前記第3の実行内容に対応する第3の命令リストを生成し、前記第3の命令リストを前記表示部に表示し、
前記第3の命令リストの少なくとも一部を変更する操作を受け付けることで、前記第1の命令リストを作成する、
付記1に記載の情報処理装置。
(付記3)
前記制御手段は、
作成した前記第1の命令リストを記憶部へ記憶し、
ユーザの指示に応じて、前記記憶部より前記第1の命令リストを読み出し、
読み出した前記第1の命令リストの前記第1の実行内容を前記表示部に表示し、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けることで前記第2の実行内容を作成する、
付記1に記載の情報処理装置。
(付記4)
前記制御手段は、
生成した前記第3の命令リストを記憶部へ記憶し、
ユーザの指示に応じて、前記記憶部より前記第3の命令リストを読み出し、
読み出した前記第3の命令リストを前記表示部に表示し、
前記第3の命令リストの少なくとも一部を変更する操作を受け付けることで、前記第1の命令リストを作成する、
付記2に記載の情報処理装置。
(付記5)
前記制御手段は、
前記第2の実行内容に対応する命令リストを生成する際の条件を設定し、前記条件を満たす命令リストが存在するか否かを判別し、
前記条件を満たす命令リストが存在すると判別した場合、前記第2の命令リストとして生成する、
付記1に記載の情報処理装置。
(付記6)
コンピュータに、
命令リストを作成する操作を受け付けることで、第1の命令リストを作成し、
前記第1の命令リストの第1の実行内容を表示部へ表示し、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けることで、第2の実行内容を作成し、
前記第2の実行内容に対応する第2の命令リストを生成し、前記表示部に表示する、
処理を実行させるプログラム。
(付記7)
ネットワークを介して通信可能に接続されるサーバ装置および情報処理装置を備えるシステムによって実行される方法であって、
命令リストを作成する操作を受け付けるステップと、
前記命令リストを作成する操作を受け付けたことに応じて、第1の命令リストを作成するステップと、
前記第1の命令リストの第1の実行内容を表示部へ表示するステップと、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けるステップと、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けたことに応じて、第2の実行内容を作成するステップと、
前記第2の実行内容に対応する第2の命令リストを生成するステップと、
前記第2の命令リストを前記表示部に表示するステップと、
を含む情報処理方法。
(付記8)
ネットワークを介して通信可能に接続される情報処理装置へプログラムを送信するサーバ装置であって、
前記情報処理装置のコンピュータに、
命令リストを作成する操作を受け付けることで、第1の命令リストを作成し、
前記第1の命令リストの第1の実行内容を表示部へ表示し、
前記第1の実行内容の少なくとも一部を変更する操作を受け付けることで、第2の実行内容を作成し、
前記第2の実行内容に対応する第2の命令リストを生成し、前記表示部に表示する、
処理を実行させる前記プログラムを記憶部に記憶するサーバ装置。