以下の説明において、複数の図中における同様の参照番号は同様の要素を示すものとする。
概要
図1は、本発明の実施例によるブロックの実施例を示す。ブロックは、スタートブロック102、及び、実行ブロック105、110及び115を有する。実行ブロック105、110及び115それぞれは、所定のコンテンツに関連付けされており、図1において、実行ブロック105、110及び115それぞれは、「↑」(上(前)に進む)、「→」(右に曲がる)及び「↑」(上(前)に進む)というコンテンツに関連付けされている。
実行ブロックとコンテンツデータとの関連付けに関し、実行ブロック105、110及び115が電気的に接続される場合や、実行ブロック105、110及び115が関連付けされているコンテンツデータを有線又は無線を介して送信を行う場合、実行ブロックは、コンテンツデータに関する情報(例えば、コンテンツデータ自体、コンテンツデータを識別する識別子など)を少なくとも記憶する記憶媒体や、記憶媒体に記憶されている命令を実行するプロセッサを備える。また、実行ブロックも、記憶媒体や、記憶媒体に記憶されている命令を実行するプロセッサを備えていてもよい。さらに、制御ブロック及び/又は実行ブロックは、電源を有していてもよい。記憶媒体は、不揮発性、揮発性もしくは両方でもよい。他の実施例において、実行ブロック105、110及び115のコンテンツは、カメラなどのセンサや、無線リーダなどによって取得されてもよい。コンテンツがセンサによって取得される場合、実行ブロックのコンテンツデータの識別は、センサが取得可能な形態とすることができる。センサが取得可能な形態は、例えば、図や、バーコード、QRコードなどである。図などのセンサが取得可能な形態は、実行ブロックが備える表示装置によって提供されてもよい。これにより、センサが取得可能な形態は、動的に変更することができる。コンテンツが無線リーダによって取得される場合、実行ブロックのコンテンツデータの識別は、無線リーダが取得可能な形態とすることができる。無線リーダが取得可能な形態は、例えば、無線リーダに対応するRFIDタグ、WIFI送受信回路や、Bluetooth送受信回路、ZigBee送受信回路などの無線送受信回路又は装置などがある。無線リーダは、例えば、RFIDリーダ、WIFI送受信回路や、Bluetooth送受信回路、ZigBee送受信回路などの無線送受信回路又は装置などとすることができる。
ブロック102、105、110及び115は、例えば、立方体の形状とすることができる。立方体の形状は、例示であり、ブロックの形状は、直方体、球体、三角柱、棒などの幾何学的形状であってもよい。
図1において、実行ブロック105、110及び115は、この順序にて数珠つなぎで物理的に接続される。実行ブロック105、110及び115において、ブロック外部から認識可能なしるし「↑」、「→」及び「↑」は、それぞれのブロックの命令に関連付けされている。
スタートブロック102は、実行ブロックの一つであるブロック105に物理的に接続される。これにより、ブロックが電気的に接続される場合のスタートブロック102、又は、センサや無線リーダは、実行ブロック105が1番目、実行ブロック110が2番目及び実行ブロック115が3番目に接続されていること、すなわち、実行ブロック105、110及び115の接続順序を特定することができる。他の実施例において、スタートブロック102を用いずに、実行ブロックのみが接続されるように用いられてもよい。この場合、実行ブロックのいずれか一つが、スタートブロック102の機能を実現してもよい。以下において、特段の説明がない場合、スタートブロック102を省略する。
図2は、ブロックを備えたシステムを示す。システム100は、複数のブロック102、105、110、115、及び、コンピュータ装置150を備えている。コンピュータ装置150は、センサや無線リーダを用いて、実行ブロックの接続順序を特定してもよい。他の実施例において、ブロックが電気的に接続される場合、スタートブロック102は、電気的接続に基づいて実行ブロックの接続順序を特定し、特定した順序を有線又は無線を介してコンピュータ装置150に送信してもよい。また、実行ブロックの接続順序は、コンピュータ装置150によって特定されてもよい。
コンピュータ装置150は、表示装置152を有し、受信した実行順序及びコンテンツに基づいて処理を実行する。本実施例では、例えば、表示装置152は、マス目を有するマップ153及びキャラクタ154を表示する。コンピュータ装置150は、命令に基づいて、表示装置152のキャラクタ154を動かす。例えば、キャラクタ154は、実行ブロック105の命令「↑」に基づいて、スタートのマス155から160に移動し、実行ブロック110の命令「→」に基づいて、マス160から165に移動し、さらに、実行ブロック115の命令「↑」に基づいて、マス165から170に移動する。各ブロックの並び順により、子供や、初めてプログラムを作成する人であっても、コンピュータプログラミングの作成及び実行と同等の体験が楽しめる。
本実施例において、コンテンツは、オブジェクトなどの動作を示すコンピュータプログラムであり、その動作は、コンピュータ装置150で実行されたが、スタートブロック102及び/又は実行ブロック105、110、115において、動作が行われてもよい。他の実施例において、コンテンツが、音声、音楽、動画である場合も同様に、そのコンテンツは、コンピュータ装置150又はスタートブロック102において実行又は再生されてもよい。他の実施例において、コンピュータ装置150は、コンテンツの再生などが行えるテレビや音楽プレーヤなどの装置に置き換えられてもよい。
図3は、制御ブロックを用いてブロックを接続した状態を示す。スタートブロック102は、実行ブロック105と接続され、実行ブロック105は、制御ブロック(ループブロック、仮に2回繰り返しとする)305に接続されている。制御ブロック305は、実行ブロック110に接続されている。実行ブロック110は、制御ブロック305に接続されるとともに、制御ブロック305から右側方向に所定の距離でスライドして配置される。実行ブロック115は、実行ブロック110に接続されるとともに、実行ブロック110から左側方向に前記所定の距離でスライドして配置される。これにより、実行ブロック110は制御ブロック305からインデントが付され、実行ブロック115は実行ブロック110からインデントが戻されるような視覚表現をもたらす。例えば、図3及び上記コンピュータプログラムが図2で示したシステムで動作する場合、コンピュータ装置150におけるキャラクタ154は、実行ブロック105の命令「↑」を実行し、制御ブロック305及び実行ブロック110の命令「→」に基づいて命令「→」を2回実行し、実行ブロック115の命令「↑」を実行する。本実施例において、制御ブロックがループのブロックであることは例示であり、他の制御機能と関連付けされていてもよい。制御ブロックの機能は、例えば、繰り返し(ループ)や、条件分岐(ブランチ)、関数定義、関数呼び出し(ファンクションコール)機能などでもよい。関数呼び出し機能は、関数定義機能によって定義された関数を呼び出す機能を含む。制御ブロックは、制御ブロックの記憶媒体や、図、バーコード、QRコードなどによって、当該制御ブロックの機能に関連する制御情報を有する。一実施例において、各制御ブロックの制御情報は、コネクタの電気的接触、センサ及び/又は無線リーダなどの有線又は無線接続を用いて取得される。他の実施例において、インデントを戻すブロックを実行ブロック115の代わりに、新たな制御ブロックが用いられてもよい。
図3に示したブロックの配置を疑似的なコンピュータプログラムで表すと、以下のとおりである。なお、左側の数値はステップ数(行数)を示す。
001:Start{
002:Step↑
003:Loop(2){
004: Step→
005:}
006:Step↑
007:}
図3及び上記疑似的なコンピュータプログラムの004行目の「Step→」から理解される通り、ブロックを用いたインデントが実現される。このとき、インデントされたブロックは制御ブロック305の制御対象となっていることが示される。これは、制御文(繰り返し(ループ)や、条件分岐(ブランチ)など)以下のインデントがプログラムにおける“begin”又は“{”に相当しインデント戻しは“end”又は“}”に相当することを意味する。これにより、インデントを通じて、コンピュータプログラムの概念を学ぶことができる。なお、繰り返しの回数が「2」であることは、例示であり、他の数値でもよい。また、本実施例では、制御ブロック305の制御対象は実行ブロック110だけであったが、インデントが付された他の実行ブロックを追加することによって、制御対象の実行ブロックを追加することができる。さらに、制御ブロック305及び/又は実行ブロック110に他の制御ブロックを接続することによって、右側にさらにインデントを付して実行ブロックを追加することができる。これにより、2以上のインデントを付したブロックの配置が可能となる。
他の実施例において、各実行ブロックに関連付けされているコンテンツデータが音楽の一部である場合、実行ブロック105に関連付けされているコンテンツデータが1回再生され、その後、実行ブロック110に関連付けされているコンテンツデータが2回再生され、実行ブロック115に関連付けされているコンテンツデータが1回再生される。
コネクタの配置
図4は、図3に示したインデントを有するブロックの配置を実現するための実行ブロックを示す。図4(b)は、実行ブロックを正面から見た状態を示す。実行ブロック105、110、115は、第1の上位コネクタ405及び第2の上位コネクタ410を有する。第1の上位コネクタ405は、実行ブロックの第1の面の長手方向において左側に寄っている。第2の上位コネクタ410は、実行ブロックの第1の面の長手方向において右側に寄っている。
図4(a)は、図4(b)における実行ブロック105、110、115を矢印450方向から見た様子を示しており、実行ブロック105、110、115の第1の面を示す。第1の面において、第1の上位コネクタ405は、長手方向において左側に寄っており、第2の上位コネクタ410は、長手方向において右側に寄って配置されている。第1の面において、第1の上位コネクタ405及び第2の上位コネクタ410は、共に、短手方向において中心に配置されている。図4(a)及び図4(b)を結ぶ点線は、図4(b)における第1の上位コネクタ405及び第2の上位コネクタ410の位置が図4(a)における実行ブロック105、110、115の第1の面の長手方向で対応していることを示す。
図4(c)は、図4(b)における実行ブロック105、110、115を矢印455方向から見た様子を示しており、実行ブロック105、110、115の第2の面を示す。第2の面において、下位コネクタ435は、長手方向において左側に寄って配置されている。第2の面において、下位コネクタ435は、短手方向において中心に配置されている。図4(b)及び図4(c)を結ぶ点線は、図4(b)における下位コネクタ435の位置が図4(c)における実行ブロック105、110、115の第2の面の長手方向で対応していることを示す。
実行ブロック105、110、115は、実行ブロックの第1の面及び第2の面それぞれにおいて、x軸及びy軸を有する。x軸は、インデントが付される方向の軸、すなわち、図4(a)及び(c)における長手方向の軸であり、y軸は、x軸に対して垂直の軸、すなわち、図4(a)及び(c)における短手方向の軸である。第1及び第2の上位コネクタ405及び410のy軸上の中心線は、第1の面におけるx軸の同一線上で配置される。他の実施例において、第1及び第2の上位コネクタ405及び410のy軸上の中心線は、第1の面におけるy軸上の中心線と一致する。図4において、コネクタのy軸上の中心線は、コネクタの短手方向の長さを半分に分ける点を中心点とし、その中心点でx軸に伸びる線とし、第1の面及び第2の面のy軸上の中心線は、第1の面及び第2の面の短手方向の長さを半分に分ける点を中心点とし、その中心点でx軸に伸びる線とする。以下、中心線について、同様とする。
実行ブロック105、110、115において、第1の面は第2の面に対応する。第1の上位コネクタ405の第1の面における位置は、下位コネクタ435の第2の面における位置に対応する。
図5は、図3に示したインデントを有するブロックの配置を実現するための制御ブロックを示す。制御ブロックは、少なくとも「関数定義」ブロックや、「関数呼び出し(ファンクションコール)」ブロック、「条件分岐(ブランチ)」ブロック、「繰り返し(ループ)」ブロックなどを含む。制御ブロック305は、第1の上位コネクタ510、第2の上位コネクタ515及び下位コネクタ545を少なくとも有する。
図5(a)は、図5(b)における制御ブロック305を矢印560方向から見た様子を示しており、制御ブロック305の第1の面を示す。第1の面において、第1の上位コネクタ510は、長手方向において左側に寄っており、第2の上位コネクタ515は、長手方向において右側に寄って配置されている。第1の面において、第1の上位コネクタ510及び第2の上位コネクタ515は、共に、短手方向において中心に配置されている。図5(a)及び図5(b)を結ぶ点線は、図5(b)における第1の上位コネクタ510及び第2の上位コネクタ515の位置が図5(a)における制御ブロック305の第1の面の長手方向で対応していることを示す。
図5(c)は、図5(b)における制御ブロック305を矢印565方向から見た様子を示しており、制御ブロック305の第2の面を示す。第2の面において、下位コネクタ545は、長手方向において右側に寄って配置されている。第2の面において、下位コネクタ545は、短手方向において中心に配置されている。図5(b)及び図5(c)を結ぶ点線は、図5(b)における下位コネクタ545の位置が図5(c)における制御ブロック305の第2の面の長手方向で対応していることを示す。
制御ブロック305は、制御ブロックの第1の面及び第2の面それぞれにおいて、x軸及びy軸を有する。x軸は、インデントが付される方向の軸、すなわち、図5(a)及び(c)における長手方向の軸であり、y軸は、x軸に対して垂直の軸、すなわち、図5(a)及び(c)における短手方向の軸である。第1及び第2の上位コネクタ510及び515のy軸上の中心線は、第1の面におけるx軸の同一線上で配置される。他の実施例において、第1及び第2の上位コネクタ510及び515のy軸上の中心線は、第1の面におけるy軸上の中心線と一致する。
制御ブロック305において、第1の面は第2の面に対応する。第1の上位コネクタ510の第1の面における位置は、下位コネクタ545の第2の面における位置に対応する。
インデントを用いたブロックの配置
(実行ブロックの配置)
図4及び5で示した実行ブロック及び制御ブロックを用いることによって、インデントを用いたブロックの配置が実現される。図6は、各ブロックの配置例を示す。図6(a)において、第1の実行ブロック605が第2の実行ブロック610に接続されている。第1の実行ブロック605の下位コネクタ435を第2の実行ブロック610の第1の上位コネクタ405に物理的に接続することによって、第1及び第2の実行ブロック605、610は接続される。図からも理解されるように、実行ブロック同士をインデントを用いて配置した場合(第2の実行ブロック610が第1の実行ブロック605から右側にずらして配置された場合)、第1の実行ブロック605の下位コネクタ435の位置は、第2の実行ブロック610の第1の上位コネクタ405及び第2の上位コネクタ410の位置に対応しないことから、第2の実行ブロック610は、第1の実行ブロック605に対してインデントを用いて接続することはできない。すなわち、実行ブロック同士は、インデントを用いて接続することができない。
(制御ブロック及び実行ブロックの配置)
図6(b)は、インデントを用いた制御ブロック及び実行ブロックの配置例を示す。第1の実行ブロック615の下位コネクタ435は、制御ブロック620の第1の上位コネクタ510に接続される。制御ブロック620の下位コネクタ545は、第2の実行ブロック625の第1の上位コネクタ405に接続される。これにより、第2の実行ブロック625は、制御ブロック620に対してインデントを用いて接続される。実行ブロック、制御ブロック、スタートブロック、及び/又はコンピュータ装置は、コネクタの電気的接触、センサ及び/又は無線リーダを用いて第2の実行ブロック625の第1の上位コネクタ405が制御ブロック620の下位コネクタ545に接続されていることを検出することによって、インデントが付されたことを特定することができる。本実施例において、制御ブロック620の下位コネクタ545及び第2の実行ブロック625の第2の上位コネクタ410は、下位コネクタ545が第2の上位コネクタ410を受け入れないような形状を有していても良い。これにより、制御ブロック620の下位コネクタ545が第2の実行ブロック625の第2の上位コネクタ410に接続できないようにすることができる。他の実施例において、制御ブロック620の下位コネクタ545及び第2の実行ブロック625の第2の上位コネクタ410は、下位コネクタ545が第2の上位コネクタ410を受け入れるような形状を有していてもよい。この場合、スタートブロック102やコンピュータ装置150などは、接続状態のチェックを行い、制御ブロック620及び第2の実行ブロック625の接続が正しくないことを検出してもよい。
第2の実行ブロック625の下位コネクタ435は、第3の実行ブロック630の第1の上位コネクタ405に接続される。第3の実行ブロック630の下位コネクタ435は、第4の実行ブロック635の第2の上位コネクタ410に接続される。これにより、第4の実行ブロック635は、第3の実行ブロック630に対してインデントを戻すことができる。実行ブロック、制御ブロック、スタートブロック及び/又はコンピュータ装置は、コネクタの電気的接触、センサ、及び/又は無線リーダを用いて第4の実行ブロック635の第2の上位コネクタ410が接続されていることを検出することによって、インデントが戻されていることを特定することができる。他の実施例において、インデントを戻す際に処理の実行を望まない場合、すなわち、インデントを戻したいが「No Operation」である場合、第4の実行ブロック635の代わりに、実行ブロックと同様のサイズや、コネクタを有する「No Operation」ブロックを用いてインデントを戻してもよい。他の実施例において、第4の実行ブロック635が無くプログラムを終了する場合、「No Operation」ブロックは無くても良い。この場合、第3の実行ブロック630において、プログラムが終了する。
(2以上のインデントを用いるブロックの配置)
図6(c)は、2以上のインデントを用いた制御ブロック及び実行ブロックの配置例を示す。第1の制御ブロック645の下位コネクタ545は、第2の制御ブロック650の第1の上位コネクタ510に接続される。これにより、第2の制御ブロック650は、第1の制御ブロック645に対して1つ目のインデントを用いて接続される。第2の制御ブロック650の下位コネクタ545は、第1の実行ブロック655の第1の上位コネクタ405に接続される。これにより、第1の実行ブロック655は、第2の制御ブロック650に対して2つ目のインデントを用いて接続される。したがって、本実施例において、2つ分のインデントを用いたブロックの配置が実現される。第1の実行ブロック655の下位コネクタ435は、第2の実行ブロック660の第2の上位コネクタ410に接続される。これにより、第2の実行ブロック660は、第1の実行ブロック655に対して1つ分のインデントを戻すことができる。第2の実行ブロック660の下位コネクタ435は、第3の実行ブロック665の第2の上位コネクタ410に接続される。これにより、第3の実行ブロック665は、第2の実行ブロック660に対して1つ分のインデントを戻すことができる。第2の実行ブロック660及び第3の実行ブロック665によって、2つ分のインデントを戻すことができる。各ブロックの配置による視覚表現によって、第1の制御ブロック645の制御範囲は第2の制御ブロック650、第1の実行ブロック655、第2の実行ブロック660であり、第2の制御ブロック650の制御範囲は第1の実行ブロック655であることが特定される。他の実施例において、第2の実行ブロック660及び第3の実行ブロック665の代わりに、2つの「No Operation」ブロックを用いてインデントを戻しても良い。他の実施例において、第2の実行ブロック660及び第3の実行ブロック665の代わりに、2つ分のインデントを戻すサイズの1つの「No Operation」ブロックを用いてインデントを戻しても良い。
上記のようにインデントを用いると制御ブロック等による制御範囲を示すネスト構造が明確になり、視覚的にネスト構造が分かりやすくなる。また、インデントの深さ(回数)はネストの深さ(回数)を示すこととなる。ここで、ネスト(又はネスティング)とは、あるものの中に、それと同じ形や同じ種類の(一回り小さくてもよい)ものが入っている状態や構造のことをいう。本実施例において、ネストの対象となるブロックは、全ての制御ブロック及び実行ブロックとすることができる。
2以上のインデントを戻すブロック
実行ブロックの第1の面及び第2の面の長手方向に関し、実行ブロックの長さより長いインデント戻し用ブロックを用いることによって、2以上のインデントを戻すことができる。図7は、インデント戻し用ブロックを用いた例を示す。
図7において、図6(c)と同様に、第1の制御ブロック705、第2の制御ブロック710及び第1の実行ブロック715が接続されている。第1の実行ブロック715の下位コネクタ435は、インデント戻し用ブロック720の上位コネクタ750に接続されている。インデント戻し用ブロック720の下位コネクタ755は、第2の実行ブロック725の第1の上位コネクタ405に接続されている。これにより、インデント戻し用ブロック720は、2つ分のインデントを戻すことができる。2つ分のインデントを戻す本実施例は、例示であり、当業者であれば理解されるように、第1の面及び第2の面の長手方向の長さを変更したインデント戻し用ブロック720を準備することによって、1つ分のインデント戻しや、3つ以上のインデント戻しも可能となる。これにより、より複雑なインデントの視覚表現が実現される。さらに、インデント戻し用ブロックは、第1の面及び第2の面の長手方向の長さを可変であるブロックによって実現されてもよい。
インデント戻し用ブロック720の機能は、インデントを戻す機能のみを少なくとも有することができる。したがって、インデント戻し用ブロック720の機能は、実質的には「No Operation」でもよい。他の実施例において、インデント戻し用ブロック720は、所定の実行ブロックのコンテンツデータに関連付けされていてもよい。この場合、インデント戻し用ブロック720を用いることによって、関連付けされているコンテンツデータのステップなどが実行される。
2以上のインデントを戻すブロックの変形例
図8は、2以上のインデントを戻すことができる実行ブロックを示す。図8(b)は、実行ブロックを正面から見た状態を示す。実行ブロック805は、第1の上位コネクタ820及び第2の上位コネクタ825を有する。第1の上位コネクタ820は、実行ブロックの第1の面の長手方向において左側に寄って配置される。第2の上位コネクタ825は、実行ブロックの第1の面の長手方向において右側に寄っている。
図8(a)は、図8(b)における実行ブロック805を矢印850方向から見た様子を示しており、実行ブロック805の第1の面を示す。第1の面において、第1の上位コネクタ820は、実行ブロックの第1の面の長手方向において左側に寄って配置され、第2の上位コネクタ825は、長手方向において右側に寄って配置されている。第1の面において、第1の上位コネクタ820及び第2の上位コネクタ825は、共に、短手方向において中心に配置されている。図8(a)及び図8(b)を結ぶ点線は、図8(b)における第1の上位コネクタ820及び第2の上位コネクタ825の位置が図8(a)における実行ブロック805の第1の面の長手方向で対応していることを示す。
図8(c)は、図8(b)における実行ブロック805を矢印855方向から見た様子を示しており、実行ブロック805の第2の面を示す。第2の面において、第1の下位コネクタ830は、長手方向において左側に寄って配置されている。第2の下位コネクタ835は、実行ブロックの第2の面の長手方向において中央に配置される。図8(b)及び図8(c)を結ぶ点線は、図8(b)における第1及び第2の下位コネクタ830、835の位置が図8(c)における実行ブロック805の第2の面の長手方向で対応していることを示す。
実行ブロック805は、実行ブロックの第1の面及び第2の面それぞれにおいて、x軸及びy軸を有する。x軸は、インデントが付される方向の軸、すなわち、図8(a)及び(c)における長手方向の軸であり、y軸は、x軸に対して垂直の軸、すなわち、図8(a)及び(c)における短手方向の軸である。第1及び第2の上位コネクタ820及び825のy軸上の中心線は、第1の面におけるx軸の同一線上で配置される。他の実施例において、第1及び第2の上位コネクタ820及び825のy軸上の中心線は、第1の面におけるy軸上の中心線と一致する。
本実施例において、図8(a)、(b)及び(c)において点線で示されている部分880及び885は、当該部分において、実行ブロック805がコネクタを有していないことを示す。点線部分880の位置は、第2の下位コネクタ835の位置に対応し、点線部分885の位置は、第2の上位コネクタ825の位置に対応させることができる。他の実施例において、実行ブロック805の上位コネクタ及び/又は下位コネクタの数は、3つでもよい。
図4及び図8に示した実施例において、実行ブロックの上位コネクタの数を下位コネクタの数と同じにしてもよい。すなわち、実行ブロックの上位コネクタの数がN(自然数)の場合、下位コネクタの数はNとなる。また、図4及び図8に示した実施例から理解される通り、実行ブロックの上位コネクタの数を下位コネクタの数より少なくすることができる。したがって、実行ブロックの上位コネクタの数がNの場合、下位コネクタの数は少なくともN−1以下とすることができる。
図9は、2以上のインデントを戻すことができる制御ブロックを示す。図9(b)は、制御ブロックを正面から見た状態を示す。制御ブロック905は、第1の上位コネクタ920及び第2の上位コネクタ925を有する。第1の上位コネクタ920は、制御ブロックの第1の面の長手方向において左側に寄っている。第2の上位コネクタ925は、制御ブロックの第1の面の長手方向において右側に寄っている。
図9(a)は、図9(b)における制御ブロック905を矢印950方向から見た様子を示しており、制御ブロック905の第1の面を示す。第1の面において、第1の上位コネクタ920は、制御ブロックの第1の面の長手方向において左側に寄って配置され、第2の上位コネクタ925は、長手方向において右側に寄って配置されている。第1の面において、第1の上位コネクタ920及び第2の上位コネクタ925は、共に、短手方向において中心に位置する。図9(a)及び図9(b)を結ぶ点線は、図9(b)における第1の上位コネクタ920及び第2の上位コネクタ925の位置が図9(a)における制御ブロック905の第1の面の長手方向で対応していることを示す。
図9(c)は、図9(b)における制御ブロック905を矢印955方向から見た様子を示しており、制御ブロック905の第2の面を示す。第2の面において、下位コネクタ930は、長手方向において中央に配置されている。図9(b)及び図9(c)を結ぶ点線は、図9(b)における下位コネクタ930の位置が図9(c)における制御ブロック905の第2の面の長手方向で対応していることを示す。
制御ブロック905は、制御ブロックの第1の面及び第2の面それぞれにおいて、x軸及びy軸を有する。x軸は、インデントが付される方向の軸、すなわち、図9(a)及び(c)における長手方向の軸であり、y軸は、x軸に対して垂直の軸、すなわち、図9(a)及び(c)における短手方向の軸である。第1及び第2の上位コネクタ920及び925のy軸上の中心線は、第1の面におけるx軸の同一線上で配置される。他の実施例において、第1及び第2の上位コネクタ920及び925のy軸上の中心線は、第1の面におけるy軸上の中心線と一致する。
本実施例において、図9(a)、(b)及び(c)において点線で示されている部分980、985及び990は、当該部分において、制御ブロック905がコネクタを有していないことを示す。点線部分980の位置は、下位コネクタ930の長手方向における位置に対応し、点線部分985の位置は、第1の上位コネクタ920の長手方向における位置に対応し、点線部分990の位置は、第2の上位コネクタ925の長手方向における位置に対応させることができる。実行ブロック805の第1の面における第1及び第2の上位コネクタ820、825の位置は、それぞれ、制御ブロック905の第1の面における第1及び第2の上位コネクタ920、925の位置に対応する。また、実行ブロック805の第2の面における第2の下位コネクタ835の位置は、制御ブロック905の第2の面における下位コネクタ930の位置に対応する。他の実施例において、制御ブロック905の上位コネクタ及び/又は下位コネクタの数は、3つでもよい。
図5及び図9に示した実施例において、制御ブロックの上位コネクタの数を下位コネクタの数と同じにしてもよい。他の実施例において、制御ブロックの上位コネクタの数を下位コネクタの数より少なくすることができる。すなわち、制御ブロックの上位コネクタの数がN(自然数)の場合、下位コネクタの数はN−1以下となる。
2以上のインデントを戻すブロックの配置
図10は、2以上のインデントを戻すブロックの配置を示す。第1の制御ブロック1005は、下位コネクタ930及び第1の上位コネクタ820を介して第1の実行ブロック1010に接続される。これにより、1つ目のインデントが付される。第1の実行ブロック1010は、第1の下位コネクタ830及び第1の上位コネクタ820を介して第2の実行ブロック1015に接続される。
第2の実行ブロック1015は、第1の下位コネクタ830及び第1の上位コネクタ920を介して第2の制御ブロック1020に接続される。第2の制御ブロック1020は、下位コネクタ930及び第1の上位コネクタ820を介して第3の実行ブロック1025に接続される。これにより、2つ目のインデントが付される。第3の実行ブロック1025は、第1の下位コネクタ830及び第2の上位コネクタ825を介して第4の実行ブロック1030に接続される。これにより、第4の実行ブロック1030は、2つ分のインデントを戻すことができる。
第4の実行ブロック1030は、第1の下位コネクタ830及び第1の上位コネクタ920を介して第3の制御ブロック1035に接続される。第3の制御ブロック1035は、下位コネクタ930及び第1の上位コネクタ820を介して第5の実行ブロック1040に接続される。これにより、1つ分のインデントが付される。第5の実行ブロック1040は、第2の下位コネクタ835及び第2の上位コネクタ825を介して第6の実行ブロック1045に接続される。これにより、第6の実行ブロック1045は、1つ分のインデントを戻すことができる。
本実施例において、各ブロックのコネクタの数及び位置は例示であり、当業者であれば理解されるように、インデントの付し方に応じて、コネクタの数及び位置を変更してもよい。
本実施例において、実行ブロック、制御ブロック、スタートブロック、及び/又はコンピュータ装置は、コネクタの電気的接触、センサ及び/又は無線リーダを用いて、各実行ブロック及び各制御ブロックについてインデントが付されたこと及び/又はインデントが戻されたことを特定することができる。
上記の各実施例において、1又は2以上のインデントを戻すブロックについて説明した。当業者であれば理解されるように、一実施例において、3以上のインデントを戻すブロックが用いられてもよい。また、上記実施例では、戻されるインデントの数が同じであるブロックを用いて実施例を説明したが、1のインデントを戻すブロックと2以上のインデントを戻すブロックとは混在してもよい。
コネクタの接続手段
図11は、磁石を用いたコネクタを有するブロックを示す。制御ブロック又は実行ブロックである第1のブロック1105及び第2のブロック1110は、磁石を有するコネクタ1115〜1160を備える。例えば、第1のブロック1105は、コネクタを介して第2のブロック1110に接続され、第1のブロック1105のコネクタ1130が第2のブロック1110のコネクタ1150に接続される。コネクタ1130及びコネクタ1150それぞれは、磁石1170、1175及び磁石1180、1190を有する。磁石1170には、第1のブロック1105の第2の面においてN極が配置され、磁石1180には、第2のブロック1110の第1の面においてS極が配置される。これにより、磁石1170及び1180は、互いに引き合う力を発生する。磁石1175及び1190も同様に、N極及びS極が対となるように配置される。これにより、コネクタ1130及びコネクタ1150は、磁石の引き合う力により接続が行える。他のコネクタも同様に磁石を有する。本実施例における磁石の配置や数、形状などは例示であり、接続されるべき2つのブロックの各コネクタにおいて、磁石が対となるような構成であれば、磁石の配置や数、形状などは、適宜変更できる。
図12は、凹凸部を用いたコネクタを有するブロックを示す。第1のブロック1205のコネクタ1230は、第2のブロック1210のコネクタ1250に接続される。コネクタ1230は、一又は二以上の凸部1280及び一又は二以上の凹部1285を有し、コネクタ1250は、一又は二以上の凸部1295及び一又は二以上の凹部1290を有する。コネクタ1250の一又は二以上の凹部1290は、コネクタ1230の一又は二以上の凸部1280に対応しており、受け入れることができる。また、コネクタ1230の一又は二以上の凹部1285は、コネクタ1250の一又は二以上の凸部1295に対応しており、受け入れることができる。これにより、コネクタ1230及びコネクタ1250は、嵌合により固定される。本実施例における凹凸部の配置や数、形状などは例示であり、接続されるべき2つのブロックの各コネクタにおいて、凹凸部が対となるような構成であれば、凹凸部の配置や数、形状などは、適宜変更できる。
図13は、コネクタ全体が凹凸部を構成するブロックを示す。第1のブロック1305のコネクタ1330は、凸部を形成し、第2のブロック1310のコネクタ1350は凹部を形成する。第1のブロック1305のコネクタ1330は、第2のブロック1310のコネクタ1350に接続される。これにより、コネクタ1330及びコネクタ1350は、嵌合により固定される。本実施例における凹凸部の配置や数、形状などは例示であり、接続されるべき2つのブロックの各コネクタにおいて、凹凸部が対となるような構成であれば、凹凸部の配置や数、形状などは、適宜変更できる。
図12及び13に示す実施例において、凹凸部は、それぞれ、対となる磁石を有し、固定をより簡単にすることができる。他の実施例において、凹凸部は、テーパー状に形成されており、より簡単に嵌合させることができる。他の実施例において、凹凸部は、ブロック自体の形状でもよい。
コネクタの接続手段の他の実施例として、コネクタの一部又は全部に、面ファスナー、吸盤などの第1のブロックと第2のブロックとを接続して固定する手段が用いられてもよい。
図11、12及び13に示した実施例及びコネクタの接続手段の他の実施例の一部又は全部は、組み合わせて用いられても良い。これにより、ブロックは、より正確な位置に配置され、固定される。
図14は、ブロックの第1の面におけるコネクタの配置を示す。線1450は、第1の面のy方向における中心線を示す。コネクタ1410及び1420は、第1の面のy方向の中心線からマイナス方向にずれて配置されている。また、コネクタ1410及び1420に対となって接続される他のブロックのコネクタも、同様に、y方向の中心線からマイナス方向にずれて配置される。他の実施例において、コネクタ1410及び1420は、凸(又は凹)部を有し、コネクタ1410及び1420に対となって接続されるコネクタは、凹(又は凸)部を有してもよい。さらなる他の実施例において、各コネクタは、図11で示されるような磁石を有していてもよい。これにより、2つのブロックを接続した場合、インデントであるx軸方向へのブロックのズレが維持されつつ、y軸方向へのブロックのズレが容易に検知される。。本実施例において、図14から理解されるように、各ブロックの第1の面及び第2の面において、インデントを付す方向の軸をx軸とし、x軸に垂直の軸をy軸とする。さらに、第1の面及び第2の面におけるy軸の中心線を「0」とし、y軸上の第1の方向をプラス方向とし、第1の方向と反対の方向をマイナス方向とする。本実施例では、コネクタ1410及び1420のy軸における中心線は、第1の面及び第2の面におけるy軸の中心線であるy軸上の「0」から、プラス方向又はマイナス方向にずれることから、コネクタのy軸における中心線は、ブロック第1の面及び第2の面のy軸における中心線と一致しない。
図15は、ブロックの第1の面におけるコネクタの形状を示す。コネクタ1510及び1520は、第1の面において、台形形状を有する。また、コネクタ1510及び1520に対となって接続される他のブロックのコネクタも、同様に、台形形状を有する。コネクタ1510及び1520は、台形形状の凸(又は凹)部を有し、コネクタ1510及び1520に対となって接続される他のブロックのコネクタは、台形形状の凹(又は凸)部を有する。これにより、2つのブロックを接続した場合、インデントであるx軸方向へのブロックのズレが維持されつつ、y軸方向へのブロックのズレが生じない。他の実施例において、コネクタ1510及び1520は、台形以外の形状、例えば、三角形、五角形などの他の多角形や、楕円形状や、左右非対称の形状、上下非対称の形状などでもよい。本実施例の多角形の形状部は、図12の実施例で示した凹凸部に適用してもよい。
図14及び15の実施例により、2つのブロックを接続するとき、2つのブロックは、インデントの方向であるx軸方向に移動して接続され、x軸方向に対して垂直方向であるy軸方向に対して移動する(ずれる)ことなく接続される。
上記コネクタの接続手段に関連して説明した実施例の一部又は全部は、組み合わせて用いても良い。組み合わせて用いることによって、2以上のブロックの接続をより正確な位置で行え、より強固に接続を行うことができる。
ブロックの接続チェック
接続できないブロックの組み合わせを、上記のコネクタの接続手段を用いて実現することができる。例えば、第1の実行ブロックの下位コネクタ435を第2の実行ブロックの第2の上位コネクタ410に接続することをできないようにする。本実施例において、第1の実行ブロックの下位コネクタ435及び第2の実行ブロックの第2の上位コネクタ410が接する部分について、磁石をN極又はS極同士にする、及び/又は、凹部又は凸部同士にすることによって、接続できないブロック(コネクタ)の組み合わせを実現してもよい。
接続できないブロック(コネクタ)の組み合わせは、以下のものが挙げられる。なお、これは、例示であり、他の組み合わせでも接続できない例があってもよい。
(1)制御ブロックの下位コネクタ545と実行ブロックの第2の上位コネクタ410との組み合わせ
(2)制御ブロックの下位コネクタ545と他の制御ブロックの第2の上位コネクタ515との組み合わせ
他の実施例において、ブロックの接続チェックを各ブロックのコネクタを接続できないようにするのではなく、各ブロックの接続は行えるが、接続が正しくないことを検出するようにしてもよい。これは、コンピュータプログラミングにおけるコンパイルと同等の機能に対応する。例えば、実行ブロック、制御ブロック、スタートブロック及び/又はコンピュータ装置などの一又は二以上である装置は、コネクタの電気的接触、センサ及び/又は無線リーダを用いて、ブロックが実行ブロックであるか又は制御ブロックであるかを特定するとともに、実行ブロック及び制御ブロックの接続順序を特定する。これにより、上述した接続できないブロック(コネクタ)の組み合わせが検出される。一実施例において、装置は、実行ブロック及び制御ブロックの接続順序を特定するとともに、コネクタの電気的接触、センサ及び/又は無線リーダを用いて、実行ブロック及び制御ブロックに関連付けされているコンテンツデータ又は制御情報を特定することによって、所定の命令を作成する。装置は、所定の命令をlintなどの文法チェックツールを使って、所定の命令がプログラムの文法などの所定の文法を満たすか否かをチェックする。したがって、装置は、コネクタの電気的接触、センサ及び/又は無線リーダを用いた有線又は無線接続を介して実行ブロック及び制御ブロックの接続順序及び実行ブロック及び制御ブロックに関連付けされているコンテンツデータ又は制御情報を特定する。
2以上のインデントを戻すブロックにおけるコネクタ位置の変形例
図16は、2つのインデントを戻すブロックにおけるコネクタ位置に関する第1の変形例を示す。図16において、実行ブロック1602、1606、1610、1612、1614、1620、1624、1628、1630及び制御ブロック1604、1608、1622、1626が用いられる。実行ブロック及び制御ブロックは、図に示される通り、6つの区画に分けられる。実行ブロックは、第1の区画1640、第2の区画1642、第3の区画1644、第4の区画1646、第5の区画1648及び第6の区画1650を含む。制御ブロックは、第1の区画1660、第2の区画1662、第3の区画1664、第4の区画1666、第5の区画1668及び第6の区画1670を含む。各ブロックにおいて、上側(第1の面側)において、第1の区画、第2の区画及び第3の区画は長手方向(インデント方向)に直列で並んでおり、下側(第2の面側)において、第4の区画、第5の区画及び第6の区画も長手方向に直列で並んでいる。第1の区画、第2の区画、第3の区画、第4の区画、第5の区画及び第6の区画の長手方向の長さは、それぞれ、同じとすることができる。
実行ブロックは、第1の区画1640において第1の上位コネクタ1652、第2の区画1642において第2の上位コネクタ1654、第3の区画1644において第3の上位コネクタ1656、及び第4の区画1646において下位コネクタ1658を有する。制御ブロックは、第1の区画1660において第1の上位コネクタ1672、第2の区画1662において第2の上位コネクタ1674、第3の区画1664において第3の上位コネクタ1676、及び第5の区画1668において下位コネクタ1678を有する。
図16(a)において、制御ブロック1604及び実行ブロック1606の接続により第1のインデントが付され、制御ブロック1608及び実行ブロック1610の接続により第2のインデントが付されている。実行ブロック1610、1612、1614の接続により、2つのインデントが2つの実行ブロック1612、1614を用いて戻される。
図16(b)において、制御ブロック1622及び実行ブロック1624の接続により第1のインデントが付され、制御ブロック1626及び実行ブロック1628の接続により第2のインデントが付されている。実行ブロック1628、1630の接続により、2つのインデントが一つの実行ブロック1630を用いて戻される。
本実施例において、インデントを付すために、制御ブロックの下位コネクタは、実行ブロックの下位コネクタの位置より右側に配置する必要がある。すなわち、制御ブロックの下位コネクタ1678は、第5の区画1668に配置され、実行ブロックの下位コネクタ1658は、第4の区画1646に配置される。
図17は、2つのインデントを戻すブロックにおけるコネクタ位置に関する第2の変形例を示す。図17において、実行ブロック1702、1706、1710、1712、1714、1720、1724、1728、1730及び制御ブロック1704、1708、1722、1726が用いられる。実行ブロック及び制御ブロックは、図に示される通り、6つの区画に分けられる。実行ブロックは、第1の区画1740、第2の区画1742、第3の区画1744、第4の区画1746、第5の区画1748及び第6の区画1750を含む。制御ブロックは、第1の区画1760、第2の区画1762、第3の区画1764、第4の区画1766、第5の区画1768及び第6の区画1770を含む。各ブロックにおいて、上側(第1の面側)において、第1の区画、第2の区画及び第3の区画は長手方向に直列で並んでおり、下側(第2の面側)において、第4の区画、第5の区画及び第6の区画も長手方向に直列で並んでいる。第1の区画、第2の区画、第3の区画、第4の区画、第5の区画及び第6の区画の長手方向の長さは、それぞれ、同じとすることができる。
実行ブロックは、第2の区画1742において第1の上位コネクタ1752、第3の区画1744において第2の上位コネクタ1754、第4の区画1746において第1の下位コネクタ1756及び第5の区画1748において第2の下位コネクタ1758を有する。制御ブロックは、第2の区画1762において第1の上位コネクタ1774、第3の区画1764において第2の上位コネクタ1776、及び第6の区画1770において下位コネクタ1778を有する。
図17(a)において、制御ブロック1704及び実行ブロック1706の接続により第1のインデントが付され、制御ブロック1708及び実行ブロック1710の接続により第2のインデントが付されている。実行ブロック1710、1712、1714の接続により、2つのインデントが2つの実行ブロック1712、1714を用いて戻される。
図17(b)において、制御ブロック1722及び実行ブロック1724の接続により第1のインデントが付され、制御ブロック1726及び実行ブロック1728の接続により第2のインデントが付されている。実行ブロック1728、1730の接続により、2つのインデントが一つの実行ブロック1730を用いて戻される。
本実施例において、インデントを付すために、制御ブロックの下位コネクタは、実行ブロックの最右に配置される下位コネクタの位置より右側に配置する必要がある。すなわち、制御ブロックの下位コネクタ1778は、第6の区画1770に配置され、実行ブロックの最右に配置される下位コネクタ1758は、第5の区画1748に配置される。実行ブロックの第2の下位コネクタ1758の左側の区画である第4の区画1746に対応する第1の面側の区画である第1の区画1740には、コネクタが配置されていなくてもよい。
図18は、3つのインデントを戻すブロックにおけるコネクタ位置に関する第1の実施例を示す。図18において、実行ブロック1802、1806、1810、1812、1814、1816、1820、1822、1824、1826、1828、1830、1832及び制御ブロック1804、1808が用いられる。図18(a)から理解されるように、さらに、制御ブロックを用いて、実行ブロック1810の後に、さらなるインデントが付されてもよい。各ブロックは、第1の区画1850、1880、第2の区画1852、1882、第3の区画1854、1884、第4の区画1856、1886、第5の区画1858、1888、第6の区画1860、1890、第7の区画1862、1892及び第8の区画1864、1894を含む。実行ブロックは、第3の区画1854において第1の上位コネクタ1870、第4の区画1856において第2の上位コネクタ1872、第5の区画1858において第1の下位コネクタ1874、第6の区画1860において第2の下位コネクタ1876、及び、第7の区画1862において第3の下位コネクタ1878を有する。制御ブロックは、第3の区画1884において第1の上位コネクタ1896、第4の区画1886において第2の上位コネクタ1897、及び、第8の区画1894において下位コネクタ1898を有する。
本実施例において、制御ブロックの下位コネクタは、実行ブロックの最右に配置される下位コネクタの位置より右側に配置される。すなわち、制御ブロックの下位コネクタ1898は、第8の区画1894に配置され、実行ブロックの最右に配置される下位コネクタ1878は、第7の区画1862に配置される。実行ブロックの第2の面側において最右に配置される下位コネクタ1878の位置の左側に対応する第1の面側において(第2の区画1852において)、上位コネクタは配置されていなくてもよい。すなわち、実行ブロックの第3の下位コネクタ1878の左側の区画である第6の区画1860に対応する第1の面側の区画である第2の区画1852には、コネクタが配置されていなくてもよい。また、第1の区画1850においても、コネクタが配置されていなくてもよい。
図18(a)は、実行ブロック及び制御ブロックの接続例を示す。図18(b)は、3つのインデントを戻す実行ブロックの接続例を示す。図18(c)は、2つのインデントを戻す実行ブロックの接続例を示す。図18(d)は、1つのインデントを戻す実行ブロックの接続例を示す。図18(e)は、インデントを戻さずに接続したときの実行ブロックの接続例を示す。
図19は、3つのインデントを戻すブロックにおけるコネクタ位置に関する第2の実施例を示す。図19において、実行ブロック1902、1906、1910、1912、1914、1916、1918、1920、1922、1924、1926及び制御ブロック1904、1908が用いられる。図19(a)から理解されるように、さらに、制御ブロックを用いて、実行ブロック1910の後に、さらなるインデントが付されてもよい。各ブロックは、第1の区画1950、1980、第2の区画1952、1982、第3の区画1954、1984、第4の区画1956、1986、第5の区画1958、1988、第6の区画1960、1990、第7の区画1962、1992及び第8の区画1964、1994を含む。実行ブロックは、第1の区画1950において第1の上位コネクタ1970、第2の区画1952において第2の上位コネクタ1972、第3の区画1954において第3の上位コネクタ1974、第4の区画1956において第4の上位コネクタ1976、及び第5の区画1958において下位コネクタ1978を有する。制御ブロックは、第1の区画1980において第1の上位コネクタ1995、第2の区画1982において第2の上位コネクタ1996、第3の区画1984において第3の上位コネクタ1997、第4の区画1986において第4の上位コネクタ1998、及び、第6の区画1990において下位コネクタ1999を有する。
本実施例において、制御ブロックの下位コネクタは、実行ブロックの最右に配置される下位コネクタの位置より右側に配置される。すなわち、制御ブロックの下位コネクタ1999は、第6の区画1890に配置され、実行ブロックの最右に配置される下位コネクタ1978は、第5の区画1958に配置される。
図19(a)は、実行ブロック及び制御ブロックの接続例を示す。図19(b)は、1つのインデントを戻す実行ブロックの接続例を示す。図19(c)は、2つのインデントを戻す実行ブロックの接続例を示す。図19(d)は、3つのインデントを戻す実行ブロックの接続例を示す。図19(e)は、インデントを戻さずに接続したときの実行ブロックの接続例を示す。
図20は、7つのインデントを戻すブロックにおけるコネクタ位置に関する実施例を示す。図20において、実行ブロック2002、2006、2010、2012、2014、2016、2018及び制御ブロック2004、2008が用いられる。図20(a)から理解されるように、さらに5つの制御ブロックを用いて、実行ブロック2010の後に、さらなるインデントが付されてもよい。各ブロックは、第1の区画2031、2061、第2の区画2032、2062、第3の区画2033、2063、第4の区画2034、2064、第5の区画2035、2065、第6の区画2036、2066、第7の区画2037、2067、第8の区画2038、2068、第9の区画2039、2069、第10の区画2040、2070、第11の区画2041、2071、第12の区画2042、2072、第13の区画2043、2073、第14の区画2044、2074、第15の区画2045、2075、及び、第16の区画2046、2076を含む。実行ブロックは、第4の区画2034において第1の上位コネクタ2050、第5の区画2035において第2の上位コネクタ2051、第6の区画2036において第3の上位コネクタ2052、第7の区画2037において第4の上位コネクタ2053、第8の区画2038において第5の上位コネクタ2054、第9の区画2039において第1の下位コネクタ2055、第10の区画2040において第2の下位コネクタ2056、第11の区画2041において第3の下位コネクタ2057、及び、第12の区画2042において第4の下位コネクタ2058を有する。制御ブロックは、第4の区画2064において第1の上位コネクタ2080、第5の区画2065において第2の上位コネクタ2081、第6の区画2066において第3の上位コネクタ2082、第7の区画2067において第4の上位コネクタ2083、第8の区画2068において第5の上位コネクタ2084、及び、第13の区画2073において下位コネクタ2085を有する。
本実施例において、制御ブロックの下位コネクタは、実行ブロックの最右に配置される下位コネクタの位置より右側に配置される。すなわち、制御ブロックの下位コネクタ2085は、第13の区画2073に配置され、実行ブロックの最右に配置される下位コネクタ2058は、第12の区画2042に配置される。実行ブロックの第2の面側において最右に配置される下位コネクタ2058の位置の左側に対応する第1の面側において(第3の区画2033において)、上位コネクタは配置されていなくてもよい。すなわち、実行ブロックの第4の下位コネクタ2058の左側の区画である第11の区画2041に対応する第1の面側の区画である第3の区画2033には、コネクタが配置されていなくてもよい。また、第1の区画2031及び/第2の区画2032においても、コネクタが配置されていなくてもよい。
図20(a)は、実行ブロック及び制御ブロックの接続例を示す。図20(b)は、5つのインデントを戻す実行ブロックの接続例を示す。
上記の各実施例において、コネクタはブロックの一部の形状として説明したが、他の実施例において、ブロック全体の形状がコネクタとして用いられるにようにしてもよい。
接続制限部を有するブロックの例
図21は、接続制限部を有する制御ブロックの第1の実施例を示す。本実施例において、制御ブロック305は、実行ブロック105に接続されている。制御ブロック305は、平面型コネクタ部510、515、545を有する。実行ブロック105は、平面型コネクタ部405、410、435を有する。制御ブロック305は、接続制限部2105を有する。接続制限部2105は、第2の面に配置され、第2の面において凸部が形成される。接続制限部2105は、第2の面から、第1の面から離れる方向に向けて先細るテーパー形状とすることができる。より具体的には、接続制限部2105は、少なくとも、接続制限部2105の下位コネクタ545側の面においてテーパーを形成する。
図22は、接続制限部を有する制御ブロックの第2の実施例を示す。本実施例において、制御ブロック305は、実行ブロック105に接続されている。制御ブロック305は、凹型コネクタ部510、515、545を有する。実行ブロック105は、凹型コネクタ部405、410、435を有する。制御ブロック305は、接続制限部2205を有する。接続制限部2205は、実行ブロック105の凹型コネクタ部405、410を受け入れないことから、実行ブロック105は、制御ブロック305に対してインデントを用いて接続される。
図23は、接続制限部を有する制御ブロックの第2の実施例を示す。本実施例において、制御ブロック305は、実行ブロック105に接続されている。制御ブロック305は、凸型コネクタ部510、515、545を有する。実行ブロック105は、凸型コネクタ部405、410、435を有する。制御ブロック305は、接続制限部2305を有する。接続制限部2305は、実行ブロック105の凸型コネクタ部405、410を受け入れないことから、実行ブロック105は、制御ブロック305に対してインデントを用いて接続される。
図24は、コネクタ部の形状を示す。図24(b)、(c)、(d)は、例えば、図24(a)を矢印2410方向から見た下面分の例を示す。図24(b)は、コネクタ部の凹部又は凸部の形状が下面部の短手方向に延びた形状であることを示す。図24(c)は、コネクタ部の凹部又は凸部の形状が下面部において、円形形状又は楕円形状であることを示す。図24(d)は、コネクタ部の凹部又は凸部の形状が下面部において台形形状であることを示す。他の実施例において、コネクタ部の凹部又は凸部の形状は、これらの形状以外の三角形、五角形などの他の多角形や、左右非対称の形状、上下非対称の形状などでもよい
上記各実施例において、接続制限部は、制御ブロック又は実行ブロックの一部であってもよい。他の実施例において、接続制限部は、制御ブロック又は実行ブロックに取り付け可能であってもよい。他の実施例において、接続制限部は、実施例に示した台形及び長方形の形状以外の形状、例えば、三角形、五角形などの他の多角形や、左右非対称の形状、上下非対称の形状などでもよい。他の実施例において、接続制限部の下面部は、上面部からさらに離れる方向に位置するように形成されてもよい。
上記実施例において、上に位置するブロックの下にブロックを追加する形態で実施例が示された。当業者であれば理解されるように、本実施例は、ブロックの第1の面と第2の面とを入れ替えて、上に積み上げていくブロックにしてもよい。
上記実施例において、ブロックを六面体として説明したが、ブロックは、所定の方向で面が平行となる2つの面を有する多面体であってもよい。
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウエアで実現することができ、そして、ソフトウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
以上に説明した玩具は、子供及び幼児用の玩具として説明したが、玩具は、10〜20歳代の学生用、大人用、老人用であってもよい。
以上に説明した処理又は処理順序において、ある処理において、その処理ではまだ利用することができないはずのデータを利用しているなどの処理又は処理順序上の矛盾が生じない限りにおいて、処理又は処理順序を自由に変更することができる。
以上に説明してきた各実施例に関し、各実施例の一部又は全部を組み合わせて一つの実施例として実現されてもよい。
特許請求の範囲の記載に関し、ブロックを上から下に接続する場合、特許請求の範囲における記載「第1の面のコネクタ」及び「第2の面のコネクタ」は、それぞれ、上記実施例における「上位コネクタ」及び「下位コネクタ」に対応する。ブロックを下から上に接続する場合、特許請求の範囲の記載「第1の面のコネクタ」及び「第2の面のコネクタ」は、それぞれ、上記実施例における「下位コネクタ」及び「上位コネクタ」に対応させてもよい。
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。