(57)【要約】      （修正有）【課題】プログラミングの学習効果を高めることができる情報処理方法、情報処理装置、およびプログラムを提供する。【解決手段】電子機器は、ディスプレイと、スクリプト実行エンジン２２ａとを備える。ディスプレイは、命令リストを表示する第１画面、または命令リストの実行結果を表示する第２画面を表示する。スクリプト実行エンジン２２ａは、第２画面に表示されるオブジェクトを編集するユーザ操作を受け付けるオブジェクト編集受付ルーチン２２ａ１と、編集されたオブジェクトに対応する命令リストを作成するスクリプト作成ルーチン２２ａ２と、作成された命令リストを第１画面に表示する表示制御ルーチン２２ａ３とを具備する。【選択図】図５
2020035147.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置の制御手段により実行される方法であって、
実行内容を編集する第１編集操作を受け付け、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成し、表示部に表示する第１処理を実行する、
情報処理方法。
【請求項２】
命令リストを編集する第２編集操作を受け付け、当該第２編集操作により編集された当該命令リストの実行内容を表示部に表示する第２処理を、さらに実行し、
前記第１処理で生成された前記命令リストを記憶部へ記憶し、
前記第２処理において、前記記憶部へ記憶された前記命令リストを読み出し、読み出した当該命令リストを編集する操作を前記第２編集操作として受け付ける、
請求項１に記載の情報処理方法。
【請求項３】
前記第１処理において、前記命令リストを生成する際の条件を設定し、設定された当該条件を満たす前記命令リストを１つ以上生成する、
請求項１または請求項２に記載の情報処理方法。
【請求項４】
前記第１処理において、
前記１つ以上の命令リストを生成する際に、少なくとも１つの命令を含む命令の組を繰り返し実行することを指示する命令を使用するか否かと、
前記１つ以上の命令リストを生成する際に、前記実行内容として前記表示部に表示される表示体の向きを指定するために、当該表示体の回転を指示する命令と、当該表示体の角度値を指定する命令との、いずれの命令を使用するかと、
前記１つ以上の命令リストを生成する際に、前記実行内容として前記表示部に表示される前記表示体の位置を指定するために、当該表示体の表示位置を指定する命令と、表示体の移動を指示する命令との、いずれの命令を使用するかと、
のいずれか少なくとも１つを、前記条件として設定する、
請求項３に記載の情報処理方法。
【請求項５】
実行内容を編集する第１編集操作を受け付け、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成し、表示部に表示する第１処理を実行する、
制御手段を備える情報処理装置。
【請求項６】
情報処理装置のコンピュータによって、
実行内容を編集する第１編集操作を受け付けさせ、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成させ、表示部に表示する第１処理を実行させる、
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理方法、情報処理装置、およびプログラムに関する。
【背景技術】
【０００２】
近年の電卓は高度な機能を有し、例えば、グラフの描画、連立方程式の計算、変数を用いた演算等の可能な関数電卓が知られている。テキスト情報や計算結果のグラフ等を表示するためのディスプレイを持つものもある。そこで、例えばプログラミングを教育するために関数電卓を利用することが考えられている。
【０００３】
この種の関数電卓は、デフォルトの計算モードに加えて、プログラムを記述することの可能なモードを備える。以下、このモードを『アルゴリズムモード』と称して説明する。ユーザは簡単な操作により、計算モードからアルゴリズムモードに移ることができる。
【０００４】
アルゴリズムモードでは、変数に値をセットしたり、簡単な制御構造を記述できるコンパクトなプログラムを作成することができる。以下、この種のプログラムを『スクリプト』と称して説明する。スクリプトは命令としての『コマンド』の集合であり、コマンドはそれぞれ特有の処理を実行する。例えば、ディスプレイ上にアバターを表示したり、移動させたりするコマンドがある。コマンドを組み合わせてスクリプトを作成すれば、ディスプレイ上に図形を描画することもできる。
【０００５】
ここで、アバターとは、ディスプレイに表示される画面に設定される座標系内の、コマンドに応じて定められる座標値に対応する位置に表示される表示体のことである。アバターは、動物などのキャラクターの画像であってもよいし、矢印やドットなどの抽象的な画像であってもよい。
【先行技術文献】
【非特許文献】
【０００６】
【非特許文献１】https://www.youtube.com/watch?v=eORDWe7vxdU（"Scratch - Why does my sprite get stuck on the edge"）（2017年12月14日検索）
【発明の概要】
【発明が解決しようとする課題】
【０００７】
アルゴリズムモードは、いわゆるビジュアルツール（Visual tools）といわれるプログラミング環境の一つであり、スクリプトでアバターを動かしていろいろな図形を描画することができる。現状では、ユーザがスクリプトを作成し、マシンが図形を描く、という時系列であるが、これを逆にして、ユーザが図形を描き、マシンがその図形に合わせたスクリプトを作成する、という機能は知られていない。描いた図形から作成されたスクリプトと自作のスクリプトとを比べることができれば、学習効果が大幅に高まることを期待できる。特に、初心者にとっては学習意欲を高めるうえでも非常に有益であるといえる。
【０００８】
本発明は、プログラミングの学習効果を高めることができる情報処理方法、情報処理装置、およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明に係る情報処理装置の制御手段により実行される方法は、実行内容を編集する第１編集操作を受け付け、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成し、表示部に表示する第１処理を実行する。
【図面の簡単な説明】
【００１０】
【図１】図１は、本発明の実施形態に係る表示制御方法が適用された電子機器の外観の一例を示す正面図である。
【図２】図２は、スクリプト編集画面の一例を示す図である。
【図３】図３は、スクリプト実行画面の一例を示す図である。
【図４】図４は、電子機器１０の一例を示す機能ブロック図である。
【図５】図５は、スクリプト実行エンジン２２ａに含まれるサブルーチンの一例を示す図である。
【図６】図６は、スクリプト実行画面上でのユーザ操作の一例を示す図である。
【図７】図７は、スクリプト実行画面に描画されるオブジェクトの一例を示す図である。
【図８】図８は、実施形態に係わる電子機器１０の処理手順の一例を示すフローチャートである。
【図９】図９は、実行モードの選択に際してディスプレイ１２に表示されるプロンプト画面の一例を示す図である。
【図１０】図１０は、Ｅｄｉｔ−＞Ｒｕｎモード、およびＲｕｎ−＞Ｅｄｉｔモードについて説明するための図である。
【図１１】図１１は、Ｒｕｎ−＞Ｅｄｉｔモードにおける処理手順の一例を示すフローチャートである。
【図１２】図１２は、優先順位の設定に際してディスプレイ１２に表示されるプロンプト画面の一例を示す図である。
【図１３】図１３は、図１２の『１：Ｔｕｒｎ』を優先して作成されたスクリプトの一例を示す図である。
【図１４】図１４は、図１２の『２：Ｄｉｒｅｃｔｉｏｎ』を優先して作成されたスクリプトの一例を示す図である。
【図１５】図１５は、図１２の『３：Ｇｏ ｔｏ ｘ，ｙ』を優先して作成されたスクリプトの一例を示す図である。
【図１６】図１６は、スクリプトの作成条件の指定に際してディスプレイ１２に表示されるプロンプト画面の一例を示す図である。
【図１７】図１７は、図１３のスクリプトにＲｅｐｅａｔ命令を適用して作成されたスクリプトの一例を示す図である。
【図１８】図１８は、スクリプトの自動作成に係わる処理手順の一例を示すフローチャートである。
【図１９】図１９は、この実施形態におけるユーザの操作手順の概略を説明するためのフローチャートである。
【図２０】図２０は、図形描画に係わる例題の一つを示す図である。
【図２１】図２１は、ユーザにより入力される図形の一例を示す図である。
【図２２】図２２は、位置指定の優先度『１：Ｔｕｒｎ』、Ｒｅｐｅａｔコマンド『不使用』の場合のスクリプトの一例を示す図である。
【図２３】図２３は、位置指定の優先度『２：Ｄｉｒｅｃｔｉｏｎ』、Ｒｅｐｅａｔコマンド『不使用』の場合のスクリプトの一例を示す図である。
【図２４】図２４は、位置指定の優先度『３：Ｇｏ ｔｏ』、Ｒｅｐｅａｔコマンド『不使用』または『使用』の場合のスクリプトの一例を示す図である。
【図２５】図２５は、位置指定の優先度『１：Ｔｕｒｎ』、Ｒｅｐｅａｔコマンド『使用』の場合のスクリプトの一例を示す図である。
【図２６】図２６は、位置指定の優先度『２：Ｄｉｒｅｃｔｉｏｎ』、Ｒｅｐｅａｔコマンド『使用』の場合のスクリプトの一例を示す図である。
【発明を実施するための形態】
【００１１】
以下に、本発明の実施形態に係る表示制御方法が適用された電子機器を、図面を参照して説明する。  
図１は、本発明の実施形態に係る表示制御方法が適用された電子機器の外観の一例を示す正面図である。図１は、電子機器１０を関数電卓として実施した場合を示す。なお関数電卓に限定されず、電子機器１０は、タブレット端末、スマートフォン、携帯電話機、タッチパネル式ＰＤＡ(Personal Digital Assistants)、電子ブック、携帯ゲーム機等として構成することもできる。物理的なキー（ボタン）を持たない、例えばタブレット端末のような電子機器（図示せず）は、関数電卓のキーと同様なソフトウェアキーボードを表示し、このソフトウェアキーボードに対するキー操作に応じて処理を実行する。
【００１２】
図１において、電子機器１０は、本体正面にキー入力部１１、およびディスプレイ１２を備える。キー入力部１１は、数値、数式、およびコマンドを入力したり、計算やスクリプトの実行を指示したりするための数値・演算記号キー群１１１、各種の関数を入力したりメモリ機能を立ち上げたりするための関数機能キー群１１２、計算モードやアルゴリズムモードといった各種動作モードのメニュー画面を表示させたり、これら動作モードの設定を指示したりするための設定キー群１１３、各種の機能を１回のキー操作で立ち上げるためのファンクションキー群１１４、ディスプレイ１２に表示されたカーソルの移動操作やデータ項目の選択操作などを行うためのカーソルキー１１５を含む。
【００１３】
数値・演算記号キー群１１１としては、［０］〜［９］（数値）キー、［＋］［−］［×］［÷］（四則記号）キー、［＝］（実行：ＥＸＥ）キー、［ＡＣ］（クリア）キーなどが配列される。  
関数機能キー群１１２としては、［ｓｉｎ］（サイン）キー、［ｃｏｓ］（コサイン）キー、［ｔａｎ］（タンジェント）キーなどが配列される。  
設定キー群１１３としては、［ＯＰＴＮ］（オプション）キー、［ＣＡＬＣ］（キーなどが配列される。  
ファンクションキー群１１４としては、［ＳＨＩＦＴ］キー、〜［ＡＬＰＨＡ］キーなどが配列される。
【００１４】
なお、数値・演算記号キー群１１１、関数機能キー群１１２、設定キー群１１３、ファンクションキー群１１４のキーは、［ＳＨＩＦＴ］キーが操作された後に続けて操作されることで、そのキートップに記載されたキー機能ではなく、そのキーの上方に記載されたキーとして機能できるようになっている。例えば、［ＳＨＩＦＴ］キー操作後に［ＤＥＬ］キーが操作（以下、［ＳＨＩＦＴ］＋［ＤＥＬ］キーと記す。）されると、［ＵＮＤＯ］（操作取消）キーとなる。
【００１５】
電子機器１０の動作モードは、例えば設定キー群１１３における『ＣＡＬＣ』キーが押下されるたびに、計算モードとアルゴリズムモードとで交互に切り替わる。すなわち、電子機器１０は、少なくとも、計算モードとアルゴリズムモードの２種類の動作モードを備える。もちろん、３つ以上のモードを備えていてもよく、その場合には『ＣＡＬＣ』キーを押下するたびに順次、モードを切り替えるようにすればよい。
【００１６】
ディスプレイ１２は、例えばドットマトリクス型の液晶表示ユニットである。電子機器１０がタブレット端末であれば、ディスプレイ１２は、タッチパネルを重ねて設けた液晶表示ユニットである。ディスプレイ１２は、スクリプト編集画面と、スクリプト実行画面との少なくとも２つの画面を、ユーザ操作に応じて切り替え表示する。
【００１７】
図２に示されるように、スクリプト編集画面は、命令リストとしてのスクリプトを、表示画面内の、例えば４行のスクリプト表示領域に縦スクロール可能に表示する。各行がコマンドに対応する。スクリプト編集画面上でスクリプトを編集することも可能である。
【００１８】
図３は、スクリプト実行画面の一例を示す図で、アバターＡが座標（ｘ、ｙ）＝（５，０）に表示されていることを示す。ちなみに図３は図２のスクリプトの実行結果を示しており、アバターＡは（０，−１）→（５，−１）→（５，０）の順に移動し、その移動軌跡が図３に直線で示される。実施形態では、スクリプト実行画面上で描画されるアバターの移動軌跡を、オブジェクトと称する。
【００１９】
図４は、電子機器１０の一例を示す機能ブロック図である。電子機器１０は、キー入力部１１およびディスプレイ１２に加えて、ＣＰＵ（Central Processing Unit）２１、メモリ２２、および記録媒体読取部２４を備える。つまり電子機器１０は、プロセッサとメモリとを有する、コンピュータである。
【００２０】
ＣＰＵ２１は、メモリ２２に書き込まれているプログラムに従って各部の動作を制御し、キー入力部１１からのキー入力信号に応じた各種の処理を実行する。プログラムは、メモリ２２に予め記録されていてもよいし、あるいはメモリカード等の外部記録媒体２３から記録媒体読取部２４を介してメモリ２２に読み込まれて記憶されたものであってもよい。
【００２１】
メモリ２２は、書き換え不可の領域に加えて、書込可能データエリア２２ｂを有する。書込可能データエリア２２ｂは、例えば、キー入力部１１によりキー入力されたキーコードのデータ、数式のデータ、表データ、グラフデータ、あるいはスクリプトのテキストデータ等を記憶するためのエリアである
例えば、メモリ２２の書き換え不可の領域に、プログラムとしてのスクリプト実行エンジン２２ａが記録される。スクリプト実行エンジン２２ａは、アルゴリズムモードにおけるスクリプトの編集、コンパイル、実行等の、スクリプトの作成から実行に係わる機能を制御するプログラムである。
【００２２】
電子機器１０は、プログラムに記述された命令に従ってＣＰＵ２１が各部の動作を制御し、ソフトウェアとハードウェアとが協働して動作することにより、以下に説明する機能を実現する。
【００２３】
図５は、スクリプト実行エンジン２２ａに含まれるサブルーチンの一例を示す図である。スクリプト実行エンジン２２ａは、オブジェクト編集受付ルーチン２２ａ１、スクリプト作成ルーチン２２ａ２、表示制御ルーチン２２ａ３、スクリプト編集受付ルーチン２２ａ４、および作成条件設定ルーチン２２ａ５を備える。
【００２４】
オブジェクト編集受付ルーチン２２ａ１は、スクリプト実行画面に表示されるオブジェクトを編集するためのユーザ操作を受け付ける。図６に示されるように、スクリプト実行画面上でアバターを移動させてゆくと、その移動軌跡がオブジェクトとして描画される。図６の白抜き矢印は、その位置で何らかのユーザ操作（カーソルキー１１５の押下など）がなされることを示す。
【００２５】
図６を用いて、オブジェクト編集受付ルーチン２２ａ１が実行する処理を、具体的に説明する。初期状態で、アバターの位置座標は原点（０，０）にあったとする。この状態から、「描画開始」を指示するペンダウン操作（例えば「＋」ボタンの押下）を行った後、カーソルキー１１５の右ボタンを操作して例えば座標（３０，０）にまでアバターを移動させ、実行キー（例えば「＝」ボタン）を押下する。そうするとアバターの軌跡が確定し、（０，０）と（３０，０）を結ぶ１本の線が画面上に描画される。
【００２６】
続いて、カーソルキー１１５の上ボタンを操作して例えば座標（３０，１０）にまでアバターを移動させ、実行キー「＝」を押下する。そうすると（３０，０）と（３０，１０）を結ぶ２本目の線が画面上に描画される。さらに、カーソルキー１１５の右ボタンを操作して例えば座標（６０，１０）にまでアバターを移動させ、実行キー「＝」を押下すると、（３０，１０）と（６０，１０）を結ぶ３本目の線が画面上に描画される。最後に、「描画終了」を指示するペンアップ操作（例えば「−」ボタンの押下）により、線の描画が終了する。このような手順により、図６に示されるようなかぎ型の図形を描画することができる。
【００２７】
オブジェクトの位置や形状は、スクリプト実行画面において、カーソルキー１１５を上下左右に押下して自由に編集することが可能である。例えば、ペンダウン「＋」→カーソルキー１１５の上ボタンで（０，２０）まで移動→実行キー「＝」→カーソルキー１１５の右ボタンで（２０，２０）まで移動→実行キー「＝」→カーソルキー１１５の下ボタンで（２０，０）まで移動→実行キー「＝」→カーソルキー１１５の左ボタンで（０，０）まで移動→実行キー「＝」→ペンアップ「−」の手順で、図７に示されるような正方形を描くことも可能である。
【００２８】
ここで、アバターの初期位置である原点（０，０）および実行キー「＝」を押下した各座標値が、図１８を用いて後述するスクリプトの自動作成に係わる処理における、スタート値（ｘ１，ｙ１）またはエンド値（ｘ２，ｙ２）として用いられる。なお、ディスプレイ１２がタッチパネルであれば、描画したい図形の頂点に対応するパネル上の位置に指先を接触させる操作（タッチ）や、パネルに指先を接触させたまま移動させる操作（タッチ＆スライド）により、図形を描画することも可能である。
【００２９】
スクリプト作成ルーチン２２ａ２は、スクリプト実行画面において編集されたオブジェクトに対応するスクリプトを、作成条件設定ルーチン２２ａ５により設定された作成条件に従って作成する。
【００３０】
表示制御ルーチン２２ａ３は、スクリプト作成ルーチン２２ａ２により作成されたスクリプトを、スクリプト編集画面に表示する。
【００３１】
スクリプト編集受付ルーチン２２ａ４は、スクリプト編集画面に表示されるスクリプトを編集するためのユーザ操作を受け付ける。『ＣＡＬＣ』キーの押下により電子機器１０がアルゴリズムモードになると、スクリプト編集受付ルーチン２２ａ４は、数値・演算記号キー群１１１から、コマンドの入力を受け付ける。例えば、ディスプレイ１２に表示されているアバターＡの表示位置を或る移動量で移動させるコマンドがある。ユーザは、数値・演算記号キー群１１１を操作して、引数としての移動量とともにコマンドを入力し、スクリプトを作成する。
【００３２】
作成条件設定ルーチン２２ａ５は、スクリプトの作成条件を指定するためのユーザ操作を受け付ける。そして、作成条件設定ルーチン２２ａ５は、指定された作成条件に基づいて、スクリプト作成ルーチン２２ａ２にスクリプトを作成させる。次に、上記構成における作用を説明する。
【００３３】
図８は、実施形態に係わる電子機器１０の処理手順の一例を示すフローチャートである。アルゴリズムモードに入ると、初期画面を表示したのち、電子機器１０は、ユーザによる実行モードの選択を受け付ける（ステップＳ３１）。ここでは、例えば図９に示されるようなプロンプトがディスプレイ１２に表示される。ユーザはカーソルキー１１５を操作して、Ｅｄｉｔ−＞Ｒｕｎモード（数値１に対応）、またはＲｕｎ−＞Ｅｄｉｔモード（数値２に対応）のいずれかを指定することができる。
【００３４】
図１０を参照して、これらの２つのモードについて説明する。Ｅｄｉｔ−＞Ｒｕｎモードは、ディスプレイ１２に表示されるスクリプトを編集するためのモードであり、例えば、コマンドに与えられる引数を変更するなどの操作を行うことができる。当該スクリプトを実行した結果として画面に表示される図形は、基本的には編集できないようになっている。Ｒｕｎ−＞Ｅｄｉｔモードは、ディスプレイ１２の画面に表示される図形を編集可能とするモードであり、図形の編集が完了した後に実行ボタン（例えばＥＸＥボタン）が押下されると、その図形に対応するスクリプトが自動で生成される。ここで、編集済のスクリプトのデータは、メモリ２２におけるそれぞれのモードからアクセス可能な記憶領域（共通データエリア）に記憶されている。
【００３５】
図８のフローチャートに戻って説明を続ける。ステップＳ３１においてＥｄｉｔ−＞Ｒｕｎモードが指定（１）されると、電子機器１０は、メモリ２２の共通データエリアに記憶されたスクリプトを読み出し、ディスプレイ１２に表示する（ステップＳ３２）。
【００３６】
次に、電子機器１０は、編集開始のユーザ操作（ステップＳ３３）、スクリプト実行のユーザ操作（ステップＳ３７）、およびアルゴリズムモード終了のユーザ操作（ステップＳ３９）を待ち受け、いずれの操作も無ければ（Ｎｏ）、ステップＳ３３〜ステップＳ３９のループが繰り返される。
【００３７】
ステップＳ３３で、編集開始のユーザ操作があれば（Ｙｅｓ）、ユーザによるスクリプトの編集操作が受け付けられる（ステップＳ３４）。編集終了のユーザ操作が有れば（ステップＳ３５でＹｅｓ）、最新の編集内容がメモリ２２の共通データエリアに反映され、記憶される（ステップＳ３６）。そして、スクリプトの実行のユーザ操作があれば（ステップＳ３７でＹｅｓ）、電子機器１０は共通データエリアのスクリプトを読み出し、実行する（ステップＳ３８）。
【００３８】
一方、図８のフローチャートのステップＳ３１においてＲｕｎ−＞Ｅｄｉｔモードが指定（２）されると、図１１のフローチャートに示される処理手順が開始される。このモードにおいて、電子機器１０は、最初にＲｕｎ−＞Ｅｄｉｔモードにおける初期画面を表示する（ステップＳ５１）。初期画面は、例えば図１０に示されるように、横方向（ｘ軸）および縦方向（ｙ軸）の各座標軸を備える。初期座標としての原点にｘ印を表示しても良い。
【００３９】
次に、電子機器１０は、スクリプト自動生成に係わる優先順位の設定を待ち受け（ステップＳ５２）、ユーザ操作が有れば（Ｙｅｓ）、優先順位設定のユーザ操作を受け付ける（ステップＳ５３）。優先順位の設定は、例えば図１２および図１６に示されるようなプロンプトを用いてユーザに促される。
【００４０】
図１２は、ディスプレイ１２に表示されるアバターＡの位置を指定するための、３つの条件（Ｐｒｉｏｒｉｔｙ−１）を示す。これらの条件のうちいずれを優先するかを、ユーザは、カーソルキー１１５を押下するなどの操作で指定する。
【００４１】
『１：Ｔｕｒｎ』は、アバターの位置を、ディスプレイ１２の座標系における現在の絶対角度に対する相対角度、および現在位置からの移動量で指定する、という条件である。この条件が指定されると、電子機器１０は、図１３に示されるように、回転を指示する命令（Ｔｕｒｎコマンド）と、移動を指示する命令（Ｍｏｖｅコマンド）との組み合わせでアバターを移動させるようなスクリプトを自動生成する。
【００４２】
『２：Ｄｉｒｅｃｔｉｏｎ』は、アバターの位置を、ディスプレイ１２の座標系における絶対角度、および現在位置からの移動量で指定する、という条件である。この条件が指定されると、電子機器１０は、図１４に示されるように、向きを指定する命令（Ｄｉｒｅｃｔｉｏｎコマンド）と、移動を指示する命令（Ｍｏｖｅコマンド）との組み合わせでアバターを移動させるようなスクリプトを自動生成する。
【００４３】
『３：Ｇｏ ｔｏ ｘ，ｙ』は、アバターの位置を、ディスプレイ１２の座標系における座標値で直接指定する、という条件である。この条件が指定されると、電子機器１０は、図１５に示されるように、アバターの座標を指定する命令（Ｇｏ ｔｏコマンド）でアバターを移動させるようなスクリプトを自動生成する。
【００４４】
図１６は、スクリプトの作成に係わる２つ目の優先度（Ｐｒｉｏｒｉｔｙ−２）を選択するためのプロンプト画面の一例を示す。図１６に示される画面において、ユーザは、『１：Ｓｅｑｕｅｎｃｅ』または『２：Ｒｅｐｅａｔ』のいずれかを、カーソルキー１１５を押下するなどの操作で指定する。
【００４５】
『１：Ｓｅｑｕｅｎｃｅ』は、順次型のアルゴリズムを優先してスクリプトを作成する、という条件である。この条件が指定されると、電子機器１０は、Ｒｅｐｅａｔ命令を考慮せず、図１３のようなシーケンス型のスクリプトを生成する。
【００４６】
『２：Ｒｅｐｅａｔ』は、ループ型のアルゴリズムを優先してスクリプトを作成する、という条件である。この条件が指定されると、電子機器１０は、Ｒｅｐｅａｔ命令を考慮し、この命令をできる限り使用してコンパクトなスクリプトを生成する。例えば図１３のスクリプトにＲｅｐｅａｔ命令を適用すれば、『Ｍｏｖｅ ２０ ｐｉｘｅｌｓ』と『Ｔｕｒｎ９０ ｄｅｇｒｅｅ』の４回の繰り返しが一つのＲｅｐｅａｔ構文でまとめられ、図１７に示されるようなスクリプトが作成される。
【００４７】
図１１のフローチャートに戻って説明を続ける。次のステップにおいて、電子機器１０は、図形描画に係わるユーザ操作を待ち受ける（ステップＳ５４）。ユーザ操作が無ければ（Ｎｏ）、処理手順はステップＳ５９にジャンプしてアルゴリズムモード終了のユーザ操作の有無を判定し、当該ユーザ操作が有れば（Ｙｅｓ）終了する（図８のＥｎｄ）。ステップＳ５９で（Ｎｏ）であれば、処理手順はステップＳ５２に戻る。
【００４８】
ステップＳ５４において、図形描画に係わるユーザ操作が有れば（Ｙｅｓ）、電子機器１０は、このユーザ操作を受け付ける（ステップＳ５５）。
【００４９】
そして、図形を描画するモードを終了するユーザ操作が有れば（ステップＳ５６でＹｅｓ）、電子機器１０は、指定された優先順位および指定された図形に基づいて、スクリプトを自動生成する（ステップＳ５７）。次に、電子機器１０は、作成したスクリプトをディスプレイ１２に表示したのち（ステップＳ５８）、アルゴリズムモード終了のユーザ操作を待つ状態となる。
【００５０】
図１８は、スクリプトの自動作成に係わる処理手順の一例を示すフローチャートである。ここで、初期状態において、アバターの座標は原点（０，０）であり、絶対角度は「０°」であるとする。図１８において、電子機器１０は、Ｒｕｎ−＞Ｅｄｉｔモードにおいて描画された図形（例えば図７）の各点の、スタート値（ｘ１，ｙ１）およびエンド値（ｘ２，ｙ２）をキャッシュメモリに格納し（ステップＳ１，Ｓ２）、Ｐｒｉｏｒｉｔｙ−１での優先順位をチェックする（ステップＳ３）。
【００５１】
ここで、図６を用いて説明したように、オブジェクトを描画する際、アバターの初期位置は原点（０，０）であり、アバターを移動させる毎に実行キー「＝」を押下する操作を複数回繰り返すことで、当該オブジェクトの複数の頂点が順次指定される。このとき、描画される当該オブジェクトの複数の頂点の中の隣接する２つの頂点のうち、時系列で先に指定した座標値をスタート値、後に指定した座標値をエンド値という。したがって、スタート値とエンド値の組が複数存在する場合がある。
【００５２】
例えば、図６においては、（０，０）と（３０，０）との組、（３０，０）と（３０，１０）との組、および、（３０，１０）と（６０，１０）との組がスタート値（ｘ１，ｙ１）とエンド値（ｘ２，ｙ２）との組である。また、図７においては、（０，０）と（２０，０）との組、（２０，０）と（２０，２０）との組、（２０，２０）と（０，２０）との組、および、（０，２０）と（０，０）との組がスタート値（ｘ１，ｙ１）とエンド値（ｘ２，ｙ２）との組である。
【００５３】
図１８において、『１：Ｔｕｒｎ』が指定されていれば、電子機器１０は、上記キャッシュされたスタート値、エンド値に基づいてＴｕｒｎコマンド、Ｍｏｖｅコマンドのそれぞれの引数を計算し、これらのコマンドを順に配置してスクリプトブロックを生成する（ステップＳ４）。
【００５４】
スタート値（０，０）からエンド値（２０，０）へのアバターの移動軌跡の場合、ディスプレイ１２の座標系における現在の絶対角度は「０°」であるので、当該絶対角度に対する相対角度は「０°」である。また、現在位置からの移動量は「２０」である。したがって、アバターの回転は不要であり、移動だけすればよいので、図１３の２行目に示すように「Ｍｏｖｅ  ２０  ｐｉｘｅｌｓ」だけが、コマンドとして生成される。
【００５５】
『２：Ｄｉｒｅｃｔｉｏｎ』が指定されていれば、電子機器１０は、上記キャッシュされたスタート値、エンド値に基づいてＤｉｒｅｃｔｉｏｎコマンド、Ｍｏｖｅコマンドのそれぞれの引数を計算し、これらのコマンドを順に配置してスクリプトブロックを生成する（ステップＳ５）。
【００５６】
スタート値（０，０）からエンド値（２０，０）へのアバターの移動軌跡の場合、ディスプレイ１２の座標系における絶対角度は「０°」である。また、現在位置からの移動量は「２０」である。したがって、アバターの回転は不要であり、移動だけすればよいので、図１３の２行目に示すように「Ｍｏｖｅ  ２０  ｐｉｘｅｌｓ」だけが、コマンドとして生成される。
【００５７】
『３：Ｇｏ ｔｏ』が指定されていれば、電子機器１０は、上記キャッシュされたスタート値、エンド値に基づいてＧｏ ｔｏコマンドの引数（座標値）を計算し、スクリプトブロックを生成する（ステップＳ６）。
【００５８】
スタート値（０，０）からエンド値（２０，０）へのアバターの移動軌跡の場合、スタート値の座標にかかわらず、現在位置からエンド値（２０，０）へ直接移動するコマンドとして、「Ｇｏ  ｔｏ  ｘ＝２０，ｙ＝０」が生成される。
【００５９】
ステップＳ１〜ステップＳ６までの処理は、点の終端に至るまで繰り返される（ステップＳ７）。終端に至ると（ステップＳ７でＹｅｓ）、電子機器１０は、Ｐｒｉｏｒｉｔｙ−２での優先順位をチェックする（ステップＳ８）。『Ｓｅｑｕｅｎｃｅ』が指定されていれば、電子機器１０は、上記生成されたブロックを順に配列してスクリプトを作成し、メモリ２２に記憶したのち、処理手順は図１１のステップＳ５８に移行する。
【００６０】
『Ｒｅｐｅａｔ』が指定されていれば、電子機器１０は、上記生成されたブロックのうち連続するブロックが有れば、それらを『Ｒｅｐｅａｔ』コマンドに置き換えてスクリプトを作成する。作成されたスクリプトはメモリ２２に記憶され、処理手順は図１１のステップＳ５８に移行する。
【００６１】
図１９は、この実施形態におけるユーザの操作手順の概略を説明するためのフローチャートである。ユーザは、実行画面（例えば図７）で目的の図形を描画し（ステップＳ２１）、Ｅｄｉｔ画面（例えば図２）で、その図形に対応して生成されたアルゴリズム（スクリプト）を確認する（ステップＳ２２）。そして、位置指定の優先度（『１：Ｔｕｒｎ』か、『２：Ｄｉｒｅｃｔｉｏｎ』か、『３：Ｇｏ ｔｏ』か）、および、コマンドの実行順序の制御形態の指定（Ｒｅｐｅａｔコマンドを用いるかそうでないか）の設定を変更する。そうすると、同じ図形について、変更後の設定内容に応じて、変更前とは異なる記述の新たなスクリプトが生成され、ユーザは再度、Ｅｄｉｔ画面に戻って新たなスクリプトを確認することができる（ステップＳ２３）。
【００６２】
例えば、図２０に示されるような図形を描く問題が与えられたとする。ユーザはカーソルキー１１５を操作して、実行画面上で図２１のような図形を描く。この図形を描くためのスクリプトは複数有るが、電子機器１０は、予め設定された優先順位を満たすスクリプトを自動生成し、Ｅｄｉｔ画面に表示する。この場合、設定条件に応じて自動生成されるスクリプトは、それぞれ図２２〜図２６に示すようになる。
【００６３】
図２２は、位置指定の優先度『１：Ｔｕｒｎ』、Ｒｅｐｅａｔコマンド『不使用』の場合のスクリプトの一例を示す図である。  
図２３は、位置指定の優先度『２：Ｄｉｒｅｃｔｉｏｎ』、Ｒｅｐｅａｔコマンド『不使用』の場合のスクリプトの一例を示す図である。図２２に比べてＴｕｒｎ命令が排除され、Ｄｉｒｅｃｔｉｏｎ命令が用いられていることが分かる。
【００６４】
図２４は、位置指定の優先度『３：Ｇｏ ｔｏ』、Ｒｅｐｅａｔコマンド『不使用』または『使用』の場合のスクリプトの一例を示す図である。Ｇｏ ｔｏ命令により座標の移動が指示されていることが分かる。
【００６５】
図２５は、位置指定の優先度『１：Ｔｕｒｎ』、Ｒｅｐｅａｔコマンド『使用』の場合のスクリプトの一例を示す図である。図２２と比較すると、同様の命令からなるブロックがＲｅｐｅａｔステートメントでまとめられ、効率的なスクリプトになっていることが分かる。
【００６６】
図２６は、位置指定の優先度『２：Ｄｉｒｅｃｔｉｏｎ』、Ｒｅｐｅａｔコマンド『使用』の場合のスクリプトの一例を示す図である。こちらも図２３と比較すると、Ｒｅｐｅａｔステートメントにより効率的なスクリプトになっていることが分かる。
【００６７】
以上説明したように、実施形態によれば、ユーザ操作により作成された図形からスクリプトが作成される。これにより、ユーザは、結果のイメージがあってもコマンドの並べ方がイメージできない場合、スクリプトの他の組み方があるのかどうかを確認したい場合、あるいは、さらに簡単なスクリプトな組み方で作成できないか、などを手軽に確認することができる。また、実行画面からＥｄｉｔ画面でスクリプトを作成することで、コマンドの並べ方を容易に理解することが可能となる。さらに、図形からスクリプトへの変換の優先順位を予め設定しておくことで、複数の形態のスクリプトを作成することが可能となる。これにより、複数のパターンのコマンドの並び方を確認でき、スクリプトの考え方を学べる効果がある。
【００６８】
これらのことから、プログラミングの学習効果を高めることができる情報処理方法、情報処理装置、およびプログラムを提供することが可能となる。
【００６９】
本発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組合せにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【００７０】
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
【００７１】
［１］
情報処理装置の制御手段により実行される方法であって、
実行内容を編集する第１編集操作を受け付け、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成し、表示部に表示する第１処理を実行する、
情報処理方法。
【００７２】
［２］
命令リストを編集する第２編集操作を受け付け、当該第２編集操作により編集された当該命令リストの実行内容を表示部に表示する第２処理を、さらに実行し、
前記第１処理で生成された前記命令リストを記憶部へ記憶し、
前記第２処理において、前記記憶部へ記憶された前記命令リストを読み出し、読み出した当該命令リストを編集する操作を前記第２編集操作として受け付ける、
請求項１に記載の情報処理方法。
【００７３】
［３］
前記第１処理において、前記命令リストを生成する際の条件を設定し、設定された当該条件を満たす前記命令リストを１つ以上生成する、
請求項１または請求項２に記載の情報処理方法。
【００７４】
［４］
前記第１処理において、
前記１つ以上の命令リストを生成する際に、少なくとも１つの命令を含む命令の組を繰り返し実行することを指示する命令を使用するか否かと、
前記１つ以上の命令リストを生成する際に、前記実行内容として前記表示部に表示される表示体の向きを指定するために、当該表示体の回転を指示する命令と、当該表示体の角度値を指定する命令との、いずれの命令を使用するかと、
前記１つ以上の命令リストを生成する際に、前記実行内容として前記表示部に表示される前記表示体の位置を指定するために、当該表示体の表示位置を指定する命令と、表示体の移動を指示する命令との、いずれの命令を使用するかと、
のいずれか少なくとも１つを、前記条件として設定する、
請求項３に記載の情報処理方法。
【００７５】
［５］
実行内容を編集する第１編集操作を受け付け、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成し、表示部に表示する第１処理を実行する、
制御手段を備える情報処理装置。
【００７６】
［６］
情報処理装置のコンピュータによって、
実行内容を編集する第１編集操作を受け付けさせ、当該第１編集操作により編集された当該実行内容に対応する命令リストを生成させ、表示部に表示する第１処理を実行させる、
プログラム。
【符号の説明】
【００７７】
１０…電子機器、１１…キー入力部、１２…ディスプレイ、２１…ＣＰＵ、２２…メモリ、２２ａ…スクリプト実行エンジン、２２ａ１…オブジェクト編集受付ルーチン、２２ａ２…スクリプト作成ルーチン、２２ａ３…表示制御ルーチン、２２ａ４…スクリプト編集受付ルーチン、２２ａ５…作成条件設定ルーチン、２２ｂ…書込可能データエリア、２３…外部記録媒体、２４…記録媒体読取部、１１１…数値・演算記号キー群、１１２…関数機能キー群、１１３…設定キー群、１１４…ファンクションキー群、１１５…カーソルキー。
【図１】
2020035147.tif 000003
【図２】
2020035147.tif 000004
【図３】
2020035147.tif 000005
【図４】
2020035147.tif 000006
【図５】
2020035147.tif 000007
【図６】
2020035147.tif 000008
【図７】
2020035147.tif 000009
【図８】
2020035147.tif 000010
【図９】
2020035147.tif 000011
【図１０】
2020035147.tif 000012
【図１１】
2020035147.tif 000013
【図１２】
2020035147.tif 000014
【図１３】
2020035147.tif 000015
【図１４】
2020035147.tif 000016
【図１５】
2020035147.tif 000017
【図１６】
2020035147.tif 000018
【図１７】
2020035147.tif 000019
【図１８】
2020035147.tif 000020
【図１９】
2020035147.tif 000021
【図２０】
2020035147.tif 000022
【図２１】
2020035147.tif 000023
【図２２】
2020035147.tif 000024
【図２３】
2020035147.tif 000025
【図２４】
2020035147.tif 000026
【図２５】
2020035147.tif 000027
【図２６】
2020035147.tif 000028