JP7202006B2 - ブロックにコンテンツを関連付けする装置 - Google Patents

ブロックにコンテンツを関連付けする装置 Download PDF

Info

Publication number
JP7202006B2
JP7202006B2 JP2019147483A JP2019147483A JP7202006B2 JP 7202006 B2 JP7202006 B2 JP 7202006B2 JP 2019147483 A JP2019147483 A JP 2019147483A JP 2019147483 A JP2019147483 A JP 2019147483A JP 7202006 B2 JP7202006 B2 JP 7202006B2
Authority
JP
Japan
Prior art keywords
block
execution
blocks
content
content data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2019147483A
Other languages
English (en)
Other versions
JP2019205903A5 (ja
JP2019205903A (ja
Inventor
伸也 武岡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
L E Tech CO Ltd
Original Assignee
L E Tech CO Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by L E Tech CO Ltd filed Critical L E Tech CO Ltd
Priority to JP2019147483A priority Critical patent/JP7202006B2/ja
Publication of JP2019205903A publication Critical patent/JP2019205903A/ja
Publication of JP2019205903A5 publication Critical patent/JP2019205903A5/ja
Application granted granted Critical
Publication of JP7202006B2 publication Critical patent/JP7202006B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Toys (AREA)

Description

本発明は、ブロックにコンテンツを関連付けする装置に関する。
コンピュータプログラムなどのような動作を表すコンテンツの一部であるコンテンツデータなどを関連付けたブロックを並べて、その接続順に応じて、コンテンツの実行や、表示などを行う玩具が知られている。そのような玩具は、知育玩具、教育用玩具などとして知られている。従来のこのような玩具において、ユーザは、ブロックに関連付けされたコンテンツを変更することができない。
コンテンツデータを各ブロックに割り当てることによって、よりフレキシブルな遊び方を提供する玩具が望まれている。
本発明の実施例によるブロック玩具は、ブロック制御装置と、前記ブロック制御装置に接続された一又は二以上の玩具用ブロックとを備え、前記ブロック制御装置は、前記ブロックに関連付けされているコンテンツデータと前記ブロックとの対応関係の少なくとも一部を入れ替えることができる。
本発明の実施例によるブロック玩具において、前記玩具用ブロックは、所定のコンテンツを分割したコンテンツデータそれぞれに関連付けされている。
本発明の実施例によるブロック玩具において、前記玩具用ブロックは、互いが数珠繋ぎで接続されている。
本発明の実施例によるブロック玩具において、前記玩具用ブロックは、識別子を有する。
本発明の実施例によるブロック玩具において、前記ブロック制御装置は、前記識別子を前記ブロックから収集し、前記ブロックの接続順序を特定し、前記ブロック制御装置は、さらに、前記接続順序に応じて、前記ブロックに関連付けされたコンテンツデータの実行又は再生を制御する。
本発明の実施例によるブロック玩具において、前記ブロック制御装置は、シグナル情報に基づいて前記ブロックのインデントの情報を特定する。
本発明の実施例によるブロック制御装置は、一又は二以上の玩具用ブロックに接続され、前記ブロックに関連付けされているコンテンツデータと前記ブロックとの対応関係の少なくとも一部を入れ替えることができる。
本発明の実施例によるブロック制御装置は、玩具用ブロックと通信することができる。
本発明の実施例によるブロックの実施例を示す。 ブロックを備えたシステムを示す。 スタートブロックの内部の概要を示す。 コンテンツテーブル、識別子対応情報テーブル及びブロック接続情報テーブルを示す。 実行ブロックの内部の概要を示す。 コンテンツ識別子テーブルの変形例を示す。 識別子対応情報テーブルの変形例を示す。 (a):スタートブロックの内部の概要を示す。(b):スタートブロックの第2の面を示す。 (a):実行ブロック第1の面を示す。(b):実行ブロックの内部の概要を示す。(c):実行ブロックの第2の面を示す。 (a):制御ブロックの第1の面を示す。(b):制御ブロックの内部の概要を示す。(c):制御ブロックの第2の面を示す。 一つのスタートブロック及び3つの実行ブロックが接続されている状態を示す。 第4の実行ブロックを第3の実行ブロックに対して右にずらして配置している状態を示す。 関数定義ブロック及び関数呼び出し(ファンクションコール)ブロックによる制御ブロックを用いた例を示す。 制御ブロックとして、条件分岐(ブランチ)ブロックを用いた例を示す。 制御ブロックとして、繰り返し(ループ)ブロックを用いた例を示す。 設定ブロックの内部の概要を示す。 スタートブロック及び関数定義ブロックの接続例を示す。 制御ブロックとして、繰り返し(ループ)ブロック及び条件分岐(ブランチ)ブロックを用いた例を示す。
以下の説明において、図中の同様の参照番号は同様の要素を示すものとする。
概要
図1は、本発明の実施例によるブロックの実施例を示す。ブロックは、スタートブロック102、及び、実行ブロック105、110及び115を有する。実行ブロック105、110及び115は、例えば、プログラムの内容を表す命令又は命令を識別する情報を有する。実行ブロック105、110及び115は、それぞれのブロックに関連付けされたコンテンツに関する情報を少なくとも記憶する記憶媒体を備える。コンテンツに関する情報は、コンテンツそのものの情報、コンテンツを識別するための識別子などとすることができる。各ブロックの記憶媒体は、ブロックが接続されたときのブロックの位置や、接続順などの情報を記憶していてもよい。スタートブロック102は、記憶媒体を有しており、各ブロックと各コンテンツとの関係を表す情報、実行ブロック105、110及び115が接続されたときのブロックの位置や、接続順序などの情報を記憶していてもよい。記憶媒体は、不揮発性、揮発性もしくは両方でもよい。
ブロック102、105、110及び115は、例えば、立方体の形状とすることができる。立方体の形状は、例示であり、ブロックの形状は、直方体、球体、三角柱、棒などの幾何学的形状であってもよい。さらに、ブロックの形状は、幾何学的形状ではない動物などのぬいぐるみや、自動車やロボットのような形態を模した形状であってもよい。言い換えると、ブロックは、物体として定義することもできる。スタートブロック102、及び、実行ブロック105、110及び115は、有線を介して互いに接続することができる。有線は、例えば、シリアル接続、パラレル接続、USBなどの有線接続手段によって実現される。また、接続は無線で実現されてもよい。言い換えると、各実行ブロックは、スタートブロック102に通信できればよい。
図1において、実行ブロック105、110及び115それぞれは、プログラムの内容を表す命令(コンテンツ)又は命令を識別する情報を有している。実行ブロック105、110及び115における命令は、それぞれ、「↑」(上(前)に進む)、「→」(右に曲がる)及び「↑」(上(前)に進む)である。実行ブロック105、110及び115は、この順序にて数珠つなぎで物理的に接続される。これにより、実行ブロック105、110及び115は、互いに電気的に接続され、互いに通信を行う、もしくは、他の実行ブロックを介して少なくともスタートブロック102と通信を行うことができる。本実施例において、実行ブロック105、110及び115において、ブロック外部から認識可能なしるし「↑」、「→」及び「↑」は、それぞれのブロックの命令に関連付けされている。また、認識には、視覚的認識が含まれている。他の実施例において、認識は、触覚的認識や、聴覚的認識、嗅覚的認識及び味覚的認識などの少なくとも一つを含んでいてもよい。さらに、他の実施例において、認識がされなくてもよい。これにより、ブロックの命令を認識させないことで、ブロックを正しく配列することを困難にしてゲーム性を高めることができる。
スタートブロック102は、実行ブロックの一つであるブロック105に物理的に接続される。これにより、スタートブロック102は、実行ブロック105、110及び115に電気的に接続することができる。したがって、スタートブロック102、実行ブロック105、110及び115は、互いに通信可能、もしくは、スタートブロック102は、各ブロックと通信可能となる。これにより、スタートブロック102は、実行ブロック105が1番目、実行ブロック110が2番目及び実行ブロック115が3番目に接続されていること、すなわち、実行ブロック105、110及び115の接続順序を特定することができる。
図2は、ブロックを備えたシステムを示す。複数のブロック102、105、110、115、及び、コンピュータ装置150を備えている。
スタートブロック102は、特定した実行ブロックの接続順序に基づいて、実行ブロック105、110及び115の命令(コンテンツ)の実行順序を特定することができる。スタートブロック102又は他のブロックは、実行順序及びコンテンツを有線回線及び/又は無線回線125を介してコンピュータ装置150に送信することができる。
コンピュータ装置150は、表示装置152を有し、受信した実行順序及びコンテンツに基づいて処理を実行する。本実施例では、例えば、表示装置152は、マス目を有するマップ153及びキャラクタ154を表示する。コンピュータ装置150は、命令に基づいて、表示装置152のキャラクタ154を動かす。例えば、キャラクタ154は、実行ブロック105の命令「↑」に基づいて、スタートのマス155から160に移動し、実行ブロック110の命令「→」に基づいて、マス160から165に移動し、さらに、実行ブロック115の命令「↑」に基づいて、マス165から170に移動する。各ブロックの並び順により、子供や、初めてプログラムを作成する人であっても、コンピュータプログラミングの作成及び実行と同等の体験が楽しめる。
本実施例において、コンテンツは、オブジェクトなどの動作を示すコンピュータプログラムであり、その動作は、コンピュータ装置150で実行されたが、スタートブロック102において、動作が行われてもよい。他の実施例において、コンテンツが、音声、音楽、動画である場合も同様に、そのコンテンツは、コンピュータ装置150又はスタートブロック102において実行又は再生されてもよい。
実施例1
(実行ブロックのみを用いた例)
図3は、スタートブロックの内部の概要を示す。スタートブロック102は、プロセッサ305、ROM310、RAM315、コネクタ320を備える。さらに、スタートブロック102は、電源を備えていてもよい、又は、外部から電源が供給される電源用コネクタを備えていてもよい(電源に関する構成については図示せず)。コネクタ320は、後述する実行ブロックの上位コネクタ510に接続することができる。プロセッサ305は、ROM310に記憶されているコンピュータプログラムに基づいて命令を実行し、スタートブロック102自体を制御することができ、さらに、接続された実行ブロックを制御することもできる。例えば、プロセッサ305は、実行ブロックを制御することにより、接続された実行ブロックの接続順序を特定することができる。
RAM315は、不揮発性の記憶媒体とすることができる。RAM315は、図4に示すコンテンツテーブル410、識別子対応情報テーブル420、ブロック接続情報テーブル430を有する。コンテンツテーブル410は、コンテンツ識別子及びコンテンツデータを有する。コンテンツ識別子は、コンテンツデータごとにユニークである。コンテンツデータは、コンテンツがコンピュータプログラムである場合、コンピュータプログラムに対応する動作やステップに関する命令のデータであり、コンテンツが音楽である場合、1つの曲を適切に分割した音楽データであり、コンテンツが動画である場合、1つの動画を適切に分割した動画データとすることができる。他の実施例において、コンテンツは、コンピュータプログラム、音楽及び動画以外でもよく、他のコンテンツでもよい。コンテンツデータは、少なくともコンテンツの一部とすることができる。
識別子対応情報テーブル420は、ブロック識別子及びコンテンツ識別子を少なくとも有する。ブロック識別子は、各ブロックにユニークに割り当てられる識別子である。例えば、実行ブロック105、110及び115には、それぞれ、識別子対応情報テーブル420のブロック識別子に示される「0101」、「0102」及び「0103」が格納されている。また、ブロック識別子は、関連付けされるコンテンツ識別子と対応付けされる。例えば、実行ブロック105、110及び115には、コンテンツ識別子「001」、「002」及び「003」が対応付けされる。これにより、実行ブロック105、110及び115には、それぞれ、コンテンツデータ「AAA」、「BBB」及び「CCC」が対応付けされる。例えば、図2のように、コンテンツがコンピュータプログラムに関する場合、コンテンツデータ「AAA」、「BBB」及び「CCC」は、それぞれ、「↑」(上(前)に進む)、「→」(右に曲がる)及び「↑」(上(前)に進む)の命令となる。
ブロック接続情報テーブル430は、接続された実行ブロックの接続順序を特定するために用いられる。スタートブロック102は、実行ブロック105、110及び115に接続されると、プロセッサ305は、各実行ブロックのブロック識別子を後述する方法で実行ブロックのROM520又はRAM530から取得するととともに、接続の順序を特定する。プロセッサ305は、ブロック識別子及び接続の順序をブロック接続情報テーブルに作成又は更新する。図4のブロック接続情報テーブル430は、実行ブロック105(ブロック識別子:0101)、実行ブロック110(ブロック識別子:0102)及び実行ブロック115(ブロック識別子:0103)がこの順序で接続されていることを示す。具体的には、ブロック接続情報テーブル430では、実行ブロック105、110及び115が、それぞれ、ブロック識別子「0101」、「0102」及び「0103」に対応しており、スタートブロック102に近いブロックから、位置情報として「1」番目、「2」番目及び「3」番目に接続されていることが示されている。
したがって、スタートブロック102は、コンテンツデータの実行や再生の順序を実行ブロックの位置情報に基づいてテーブル410、420、430を用いて特定することができる。
図5は、実行ブロックの内部の概要を示す。実行ブロック105、110及び115は、それぞれ、上位コネクタ510、プロセッサ515、ROM520、RAM530、下位コネクタ535を備える。実行ブロックの上位コネクタ510は、スタートブロックのコネクタ320及び他の実行ブロックの下位コネクタ535に接続することができる。例えば、実行ブロック105の上位コネクタ510は、スタートブロック102のコネクタ320に接続され、実行ブロック105の下位コネクタ535は、他の実行ブロック110の上位コネクタ510に接続される。実行ブロックのROM520又はRAM530は、当該実行ブロックのブロック識別子を少なくとも記憶している。この場合、RAM530は、不揮発性の記憶媒体とすることができる。これにより、RAM530のブロック識別子は書き換えることができる。
実行ブロック105、110及び115がスタートブロック102に接続されると、スタートブロック102は、実行ブロック105、110及び115の接続順序を特定する命令を、各実行ブロックに送信する。例えば、実行ブロック105が接続順序を特定する命令を受信すると、それ自体のブロック識別子「0101」を下位のブロックである実行ブロック110に送信する。実行ブロック110は、ブロック識別子の情報「0101」を受信すると、それ自体のブロック識別子「0102」を付加して、ブロック識別子の情報「0101:0102」を下位のブロックである実行ブロック115に送信する。実行ブロック115は、下位コネクタ535に接続されている他の実行ブロックが無いことを検出すると、実行ブロック115より下位に接続が無いことを決定することができる。実行ブロック115は、ブロック識別子の情報「0101:0102」を受信すると、実行ブロック115より下位に接続が無いことに応じて、それ自体のブロック識別子「0103」を付加して、ブロック識別子の情報「0101:0102:0103」を実行ブロック105及び110を介してスタートブロック102に送信する。これにより、スタートブロック102は、受信したブロック識別子の情報「0101:0102:0103」に基づいて、接続順序として、ブロック識別子「0101」が1番目であり、ブロック識別子「0102」が2番目であり、及び、ブロック識別子「0103」が3番目であることを特定することができる。
上記の例において、コンテンツがコンピュータプログラムであることは例示であり、他の情報をコンテンツとすることができる。コンテンツは、例えば、音楽や、動画などとすることができる。
コンテンツが音楽や、動画などである場合、1曲や、1つのテレビ番組、1つの映画、1つの動画作品のようにコンテンツを1つの単位として区分けすることができる。このような例において、コンテンツ識別子テーブルは、1つの単位をテーブルの項目として追加してもよい。例えば、図6は、コンテンツ識別子テーブルの変形例を示す。図6において、コンテンツグループ「A」は、コンテンツ識別子「001」、「002」及び「003」に対応する3つのデータ「AAA」、「BBB」、「CCC」で、1つの曲又は1つの動画となる。コンテンツ識別子「001」、「002」及び「003」に対応するデータ「AAA」、「BBB」及び「CCC」は、それぞれ、曲の1節(1フレーズ)や、動画における1つのチャプタに対応する。コンテンツグループ「B」及び「C」は、コンテンツグループ「A」の曲又は動画とは別の作品であることを示す。他の実施例において、コンテンツデータは、音符又は音符に関する音、静止画など、コンテンツを構成する単位に基づくデータとすることができる。
コンテンツグループ「A」は、コンテンツデータ「AAA」、「BBB」及び「CCC」がこの順序で再生されると、正しい順序の曲又は動画として再生される。この場合、実行ブロックは、実行ブロック105、実行ブロック110、実行ブロック115の順序で接続されている。仮に、実行ブロックが、実行ブロック110、実行ブロック105、実行ブロック115の順序で接続された場合、コンテンツデータ「BBB」、「AAA」及び「CCC」がこの順序で再生される。この場合、誤った順序の曲又は動画として再生される。他の実施例において、接続順序が誤っていることをユーザに通知してもよい。したがって、玩具のユーザは、コンテンツデータが正しい順序の曲又は動画を再生するようにブロックを接続して遊ぶことができる。一方で、コンテンツグループ「A」のブロックを複数回遊ぶと、どのブロックがいずれのコンテンツデータと対応付けされているかが分かってしまう。すると、ユーザは、ブロックで遊ぶのに飽きてしまう。そこで、本発明の実施例では、ブロックで遊ぶたび、所定の回数遊んだとき、又は、ユーザの指示を受けたときに、識別子対応情報テーブルの対応関係を変更することによって、ブロックに割り当てるコンテンツデータを変更する。ブロックに割り当てるコンテンツデータを変更できるようにすることにより、ユーザに興味を掻き立てさせ、飽きさせないようにすることができる。図4では、ブロック識別子「0101」、「0102」及び「0103」は、それぞれ、コンテンツ識別子「001」、「002」及び「003」に対応している。例えば、次にブロックで遊ぶなどのスタートブロック102に電源が投入するときなどに、ブロック識別子とコンテンツ識別子との対応付けを動的に変更されてもよい。例えば、ブロック識別子「0101」、「0102」及び「0103」は、それぞれ、コンテンツ識別子「001」、「003」及び「002」に対応させる。これにより、実行ブロックに対応付けされたコンテンツデータを変更させることにより、ユーザは飽きることなく、ブロック玩具を末永く楽しむことができる。また、各実行ブロックには、他のコンテンツグループ「B」又は「C」のデータを対応付けしてもよい。
また、コンテンツがコンピュータプログラムであってもよい。ブロック識別子とコンピュータプログラムに係るコンテンツ識別子との対応付けを動的に変更することによって、コンピュータプログラムの作成において、よりゲーム性を高めて、ユーザが興味を掻き立てるようにすることができる。
実施例2
(制御ブロックを用いた例)
実行ブロックに加えて、制御ブロックを用いることによって、ユーザは、コンピュータプログラム作成の概念に近い考え方を身につけることができる。制御ブロックの例としては、繰り返し(ループ)や、条件分岐(ブランチ)、関数定義、関数呼び出し(ファンクションコール)機能などがある。本実施例において、各ブロックが、実行ブロック又は制御ブロックであるかを少なくとも識別できるようにする必要がある。一実施例において、制御ブロックは、実行ブロックと同様に、コネクタ、プロセッサ、RAM及びROMを少なくとも有する。
図7は、識別子対応情報テーブルの変形例を示す。識別子対応情報テーブル710は、ブロック識別子及びコンテンツ識別子に加えて、ブロック種別を有する。ブロック種別は、ブロックが実行ブロックであるか制御ブロックであるかなどを示す。例えば、ブロックが実行ブロックである場合、ブロック種別は「7」とすることができる。ブロック種別が「0」、「2」~「6」である場合、ブロックは制御ブロックとすることができる。各ブロックは、例えば、以下の通りとすることができる。
ブロック種別「0」:動作なし
ブロック種別「1」:スタート
ブロック種別「2」:関数定義
ブロック種別「3」:繰り返し(ループ)
ブロック種別「4」:条件分岐(ブランチ)
ブロック種別「5」:関数呼び出し(ファンクションコール)
ブロック種別「6」:設定
ブロック種別「7」:実行
(関数定義)
例えば、制御ブロックとして「関数定義」ブロックを用いる場合、接続は以下の順序で行うことができる。「関数定義」ブロックは、独立したコンテンツデータの実行又は再生の開始を定義するブロックである。
1.メインブロックグループ
(1-1)「スタート」ブロック
(1-2)第2の「実行」ブロック
(1-3)「関数呼び出し(ファンクションコール)」ブロック
2.関数定義ブロックグループ
(2-1)「関数定義」ブロック
(2-2)第1の「実行」ブロック
これにより、(2-1)「関数定義」ブロックの下に配置された(2-2)第1の「実行」ブロックは関数として定義される。(1-3)「関数呼び出し(ファンクションコール)」ブロックと(2-1)「関数定義」ブロックとは、予め関連付けされている。例えば、スタートブロック102が、関数呼び出し(ファンクションコール)ブロックの識別子と関数定義ブロックの識別子とを関連付けて記憶していてもよい。第1の関数定義ブロック及び第1の関数呼び出し(ファンクションコール)ブロックと第2の関数定義ブロック及び第2の関数呼び出し(ファンクションコール)ブロックとからなる関数定義ブロック及び関数呼び出し(ファンクションコール)ブロックの組を2つ準備することによって、複数の関数定義ブロックを定義することができる。組は3つ以上でもよい。関数呼び出し(ファンクションコール)ブロックと関数定義ブロックとの関連付けは、変更できてもよい。
(1-1)「スタート」ブロックと(2-1)「関数定義」ブロックとは、有線又は無線で接続することができる。例えば、図17に示す通り、スタートブロック102及び関数定義ブロックは、それぞれ、図3、及び、図5又は10に示した構成にコネクタ1720及び1730を加えた構成とすることができる。スタートブロック102は、関数定義用コネクタ1720を有し、関数定義ブロックは、第1の関数定義用コネクタ1730及び第2の関数定義用コネクタ1740を有する。スタートブロック102は、関数定義用コネクタ1720に接続されたブロックを関数定義ブロックとして認識する。当該関数定義ブロックは、第2の関数定義用コネクタ1740を介して他の関数定義ブロックの第1の関数定義用コネクタ1730に接続することができる。これにより、2以上の関数定義ブロックグループを接続することができる。
(1-1)「スタート」ブロックは、(1-2)第2の「実行」ブロックのコンテンツの実行又は再生を行う。そして、「スタート」ブロックは、(6)「関数呼び出し(ファンクションコール)」ブロックにおいて、関数定義ブロックグループで定義されている関数を実行する。関数定義ブロックグループにおける関数の内容は、上記で定義された(2-2)第1の「実行」ブロックのコンテンツの実行又は再生である。他の実施例において、(1-3)「関数呼び出し(ファンクションコール)」ブロックの後に、「動作なし」ブロックを配置してもよい。これにより、「スタート」ブロックは、関数を実行した後の復帰先を認識するように構成されていてもよい。
(繰り返し(ループ))
例えば、制御ブロックとして「繰り返し(ループ)」を用いる場合、接続は以下の順序で行うことができる。
(1)「スタート」ブロック
(2)「繰り返し(ループ)」ブロック
(3)「設定」ブロック
(4)第1の「実行」ブロック
(5)「動作なし」ブロック
これにより、(2)「繰り返し(ループ)」ブロック及び(3)「設定」ブロックと(5)「動作なし」ブロックとの間に配置された(4)第1の「実行」ブロックのコンテンツは、「設定」ブロックで引数として設定される値の数分繰り返して実行又は再生される。本実施例において、「設定」ブロックそれぞれは、対応する数値などの情報を予め有していてもよい。例えば、第1の「設定」ブロックは、値「1」を有し、第2の「設定」ブロックは、値「2」を有し、第3の「設定」ブロックは、値「3」を有していてもよい。
他の実施例において、「設定」ブロックに関し、ユーザが設定対象の値などの情報を入力可能にしてもよい。例えば、「設定」ブロックにボタンを設け、ユーザは、このボタンを用いて1、2、3・・・のいずれか一つの値を入力できる。本実施例では、図4に示したブロック接続情報テーブル430に「設定」の列(カラム)を追加してもよい。例えば、スタートブロック102は、各ブロックの情報を収集するときに、「設定」ブロックで入力された情報も収集し、ブロック接続情報テーブル430における当該「設定」のブロック識別子に対応するカラム「設定データ」の項目を収集した情報で更新する。他の実施例において、「設定」ブロックのボタンは、一例であり、「設定」ブロックは、ボタンに換えて又はボタンに加えて、他の形態の入力装置を有していても良い。他の実施例において、「設定」ブロックは、入力装置に換えて又は入力装置に加えて、他の装置から設定すべき情報を受信する受信装置を有していても良い。
上記の例において、設定ブロックは、繰り返し(ループ)ブロックの下に接続される。他の実施例において、繰り返し(ループ)ブロックの横面と設定ブロックの横面とがコネクタによって接続されてもよい。設定ブロックは、ループの回数を送ることができればよいので、送信される情報量は比較的小さい。したがって、コネクタは、光学送受信機でもよい。この場合、繰り返し(ループ)ブロックは光学受信機を有し、設定ブロックは、光学送信機を有する。これにより、設定ブロックは、設定すべき情報を光学的に繰り返し(ループ)ブロックに送信することができる。光学受信機の例としては、赤外線送受信機などがある。
(条件分岐(ブランチ))
例えば、制御ブロックとして「条件分岐(ブランチ)」ブロックを用いる場合、接続は以下の順序で行うことができる。
(1)「スタート」ブロック
(2)「条件分岐(ブランチ)」ブロック
(3)第1の「実行」ブロック
(4)「動作なし」ブロック
これにより、(2)「条件分岐(ブランチ)」ブロックと(4)「動作なし」ブロックとの間に配置された(3)第1の「実行」ブロックのコンテンツは、「条件分岐(ブランチ)」の条件を満たすときに実行又は再生される。「条件分岐(ブランチ)」の条件の例としては、所定の時刻のときに条件を満たすなどとすることができる(例えば、条件12:00~15:00の間であれば、第1の「実行」ブロックのコンテンツが実行又は再生される)。
(繰り返し(ループ)及び条件分岐(ブランチ))
例えば、制御ブロックとして「繰り返し(ループ)」ブロック及び「条件分岐(ブランチ)」ブロックを用いる場合、接続は以下の順序で行うことができる。
(1)「スタート」ブロック
(2)「繰り返し(ループ)」ブロック(3回繰り返し)
(3)第1の「実行」ブロック
(4)「条件分岐(ブランチ)」ブロック
(5)第2の「実行」ブロック
(6)第2の「動作なし」ブロック
(7)第1の「動作なし」ブロック
これにより、(2)「繰り返し(ループ)」ブロック(3回繰り返し)と(7)第1の「動作なし」ブロックとの間に配置された(3)第1の「実行」ブロックのコンテンツは、3回繰り返して実行又は再生される。また、(4)「条件分岐(ブランチ)」ブロックは、3回繰り返して、条件の判断が行われる。(4)「条件分岐(ブランチ)」ブロックと(6)第2の「動作なし」ブロックとの間に配置された(5)第2の「実行」ブロックのコンテンツは、「条件分岐(ブランチ)」の条件を満たすときに実行又は再生される。「条件分岐(ブランチ)」の条件の例としては、ループの回数が1回目である場合に条件分岐(ブランチ)内の処理が実行又は再生される。本実施例では、第1の「実行」ブロック及び第2の「実行」ブロックのコンテンツデータが実行又は再生された後、第1の「実行」ブロックのコンテンツデータが2回繰り返して実行又は再生される。他の実施例において、「繰り返し(ループ)」ブロックの「3回繰り返し」における数値「3」及び「条件分岐(ブランチ)」の条件「ループの回数が1回目」における数値「1」は、それぞれ、設定ブロックによって設定されてもよい。
実施例3
(ブロックにインデントを適用する例)
上記の実施例2において、「関数定義」ブロック、「繰り返し(ループ)」ブロック及び「条件分岐(ブランチ)」ブロックの制御対象となる「実行」ブロックを特定するために、制御対象となる「実行」ブロックは、「関数定義」ブロック、「繰り返し(ループ)」ブロック及び「条件分岐(ブランチ)」ブロックと「動作なし」ブロックとに挟まれることによって特定されていた。本実施例において、制御対象となる「実行」ブロックにインデントを適用することによって、ビジュアル的に制御対象のブロックがどれであるかを容易に理解できるようにする。また、インデントを用いたブロックの配置は、ユーザが実際のコンピュータプログラムに近い文法をより簡単に習得することに役立たせることができる。さらに、コンピュータプログラムにおいて、インデントは、処理対象のステップなどを桁下げすることによって視覚的に推奨されている。また、最近のコンピュータ言語では、インデントは、処理対象のステップを定義するために必須とされている。したがって、インデントの使いかたの習得は、実際のコンピュータプログラムの習得にも役立たせることができる。ブロックにおけるインデントの例としては、並べた2以上のブロックにおいて、前のブロックに対してブロックを揃えて並べずに、例えば、ブロックを一定の長さ分ずらして配置することによって実現され得る。
図8(a)は、スタートブロックの内部の概要を示す。スタートブロック102は、図3において示した通り、プロセッサ305、ROM310、RAM315及びコネクタ320を有する。図8(a)におけるコネクタ320の位置は、図3におけるコネクタ320の位置と異なり、スタートブロック102の第2の面の長手方向中心に位置するのではなく左側に寄っている。
図8(b)は、図8(a)におけるスタートブロック102を矢印805方向から見た様子を示しており、スタートブロック102の第2の面を示す。第2の面において、コネクタ320は、長手方向において左側に寄っており、短手方向において中心に位置する。図8(a)及び図8(b)を結ぶ点線は、図8(a)におけるコネクタ320の位置がスタートブロック102の第2の面の長手方向で対応していることを示す。
図9(b)は、実行ブロックの内部の概要を示す。実行ブロック105、110、115は、図5において示した通り、プロセッサ515、ROM520、RAM530及び下位コネクタ535を有する。本実施において、実行ブロック105、110、115は、図5における上位コネクタ510の代わりに、第1の上位コネクタ905及び第2の上位コネクタ910を有する。第1の上位コネクタ905は、実行ブロック第1の面の長手方向において左側に寄っている。第2の上位コネクタ910は、実行ブロック第1の面の長手方向において右側に寄っている。
図9(a)は、図9(b)における実行ブロック105、110、115を矢印950方向から見た様子を示しており、実行ブロック105、110、115の第1の面を示す。第1の面において、第1の上位コネクタ905は、長手方向において左側に寄っており、第2の上位コネクタ910は、長手方向において右側に寄って位置している。第1の面において、第1の上位コネクタ905及び第2の上位コネクタ910は、共に、短手方向において中心に位置する。図9(a)及び図9(b)を結ぶ点線は、図9(b)における第1の上位コネクタ905及び第2の上位コネクタ910の位置が実行ブロック105、110、115の第1の面の長手方向で対応していることを示す。
図9(c)は、図9(b)における実行ブロック105、110、115を矢印955方向から見た様子を示しており、実行ブロック105、110、115の第2の面を示す。第2の面において、下位コネクタ535は、図5における下位コネクタ535の位置と異なり、長手方向において左側に寄って位置している。第2の面において、下位コネクタ535は、短手方向において中心に位置する。図9(b)及び図9(c)を結ぶ点線は、図9(b)における下位コネクタ535の位置が実行ブロック105、110、115の第2の面の長手方向で対応していることを示す。
図10(b)は、制御ブロックの内部の概要を示す。制御ブロックは、少なくとも「関数定義」ブロックや、「関数呼び出し(ファンクションコール)」ブロック、「条件分岐(ブランチ)」ブロック、「繰り返し(ループ)」ブロックなどを含む。制御ブロック1005は、第1の上位コネクタ1010、第2の上位コネクタ1015、プロセッサ1020、ROM1030、RAM1040及び下位コネクタ1045を少なくとも有する。
図10(a)は、図10(b)における制御ブロック1005を矢印1060方向から見た様子を示しており、制御ブロック1005の第1の面を示す。第1の面において、第1の上位コネクタ1010は、長手方向において左側に寄っており、第2の上位コネクタ1015は、長手方向において右側に寄って位置している。第1の面において、第1の上位コネクタ1010及び第2の上位コネクタ1015は、共に、短手方向において中心に位置する。図10(a)及び図10(b)を結ぶ点線は、図10(b)における第1の上位コネクタ1010及び第2の上位コネクタ1015の位置が制御ブロック1005の第1の面の長手方向で対応していることを示す。
図10(c)は、図10(b)における制御ブロック1005を矢印1065方向から見た様子を示しており、制御ブロック1005の第2の面を示す。第2の面において、下位コネクタ1045は、長手方向において右側に寄って位置している。第2の面において、下位コネクタ1045は、短手方向において中心に位置する。図10(b)及び図10(c)を結ぶ点線は、図10(b)における下位コネクタ1045の位置が制御ブロック1005の第2の面の長手方向で対応していることを示す。
図11は、一つのスタートブロック及び3つの実行ブロックが接続されている状態を示す。スタートブロック102のコネクタ320は、第1の実行ブロック105の第1の上位コネクタ905に接続されている。第1の実行ブロック105の下位コネクタ535は、第2の実行ブロック110の第1の上位コネクタ905に接続されている。第2の実行ブロック110及び第3の実行ブロック115も、同様に、コネクタを用いて互いに接続される。
スタートブロック102は、第1の実行ブロック105、第2の実行ブロック110及び第3の実行ブロック115の接続により、各ブロックと通信し、各ブロックのブロック識別子及び位置情報を少なくとも取得することができる。これにより、スタートブロック102は、図4に示したようなブロック接続情報テーブル430を更新及び/又は作成することができる。スタートブロック102は、ブロック接続情報テーブル430及び識別子対応情報テーブル420に基づいて各ブロック識別子に対応するコンテンツ識別子を特定する。また、スタートブロック102は、識別子対応情報テーブル420及びコンテンツテーブル410に基づいて各コンテンツ識別子に対応するコンテンツデータを特定する。これにより、スタートブロック102は、位置情報による実行ブロックの接続順序と各実行ブロックに関連するコンテンツデータとを対応付けて特定し、当該接続順序でコンテンツデータを再生又は実行する(例えば、コンテンツデータ「AAA」、「BBB」、「CCC」の順序でこれらデータを再生又は実行する)。
図12は、図11で示したブロックに加えて第4の実行ブロック1105を第3の実行ブロック115に対して右にずらして配置している状態を示す。この場合、第4の実行ブロック1105の第1の上記コネクタ905及び第2の上記コネクタ910は、いずれも、第3の実行ブロック115の下位コネクタに接続されていない。したがって、この実施例では、スタートブロック102を第4の実行ブロック1105に接続することはできない。これは、実行ブロックのコネクタの物理的位置により、接続を制御することができる。より具体的には、第4の実行ブロック1105は、第3の実行ブロック115に対してインデントを付加したように配置されるが、第4の実行ブロック1105の接続は認識されないので、ユーザは、第4の実行ブロック1105の配置が正しくないことを認識することができる。言い換えると、ユーザは、実行ブロック同士の配置に関し、インデントを付加した配置ができないことを知ることができる。ユーザは、コンピュータプログラムの文法(例えば、コンピュータプログラム言語「Pythonなどで用いられるようなインデントの使い方)をブロックの外観で及び/又はブロック同士の接続可否(物理的及び/又は電気的接続可否を含む)や、ブロック同士の接続における感触などで知ることができる。したがって、幼児などの子供向けのブロック玩具において、プログラミングを直感的に学ぶことができる。
図13は、制御ブロックとして、関数定義ブロック及び関数呼び出し(ファンクションコール)ブロックを用いた例を示す。スタートブロック102のコネクタ320は、第2の実行ブロック110の第1の上位コネクタ905に接続される。第2の実行ブロック110の下位コネクタ535は、第2の制御ブロック(関数呼び出し(ファンクションコール))1005の第1の上位ブロック1010に接続される。
スタートブロック及び関数定義ブロックは、図17で示されているように、コネクタ1720及びコネクタ1730、1740をそれぞれ有する。スタートブロック102の関数定義用コネクタ1720は、第1の制御ブロック(関数定義)1305の第1の関数定義用コネクタ1730に接続される。なお、他の実施例において、第1の制御ブロック(関数定義)1305のコネクタ1740は、他の制御ブロック(関数定義)の第1の関数用コネクタ1730に接続されてもよい。これにより、2以上の関数を定義することができる。第1の制御ブロック1305の下位コネクタ1045は、第1の実行ブロック105の第2の上位コネクタ910に接続されている。これにより、関数として、第1の実行ブロック105のコンテンツが定義される。
図17の変形例として、スタートブロック及び関数定義ブロックのコネクタは、同じ構成としてもよい。例えば、スタートブロックは、一又は二以上の上位コネクタを有していてもよい。他の実施例において、関数定義ブロックの下位コネクタは、スタートブロックのコネクタの位置に配置してもよい。すなわち、関数定義ブロックの下位コネクタは、スタートブロックと同様に、第2面における長手方向の左側に寄るように構成されてもよい。他の実施例において、スタートブロック及び関数定義ブロックは、コネクタ及び内部の構成などを同じとすることができる。
スタートブロック102は、第1及び第2の制御ブロック、第1及び第2の実行ブロックの接続により、各ブロックと通信し、各ブロックから、各ブロックのブロック識別子及び位置情報を少なくとも取得することができる。これにより、第1制御ブロック(関数定義)、第2制御ブロック(関数呼び出し(ファンクションコール))、第1の実行ブロック及び第2の実行ブロックのブロック識別子が、それぞれ、「0003」、「0006」、「0101」、「0102」とすると、以下のようなブロック接続情報テーブル430を更新及び/又は作成することができる。位置情報「2-1」及び「2-2」における「2-」は、同じ関数定義ブロックのグループであることを示し、「-1」及び「-2」は、接続順序を示す。
Figure 0007202006000001
スタートブロック102は、図7に示した識別子対応情報テーブル710を参照することにより、第1の制御ブロック(ブロック識別子:0003)、第2の制御ブロック(ブロック識別子:0006)、第1の実行ブロック(ブロック識別子:0101)及び第2の実行ブロック(ブロック識別子:0102)のブロック種別を、それぞれ、「2」、「5」、「7」及び「7」として特定する。すなわち、第1の制御ブロック、第2の制御ブロック、第1の実行ブロック及び第2の実行ブロックは、それぞれ、関数定義ブロック、関数呼び出し(ファンクションコール)を行うブロック、実行ブロック及び実行ブロックとして特定される。さらに、第1の実行ブロック(ブロック識別子:0101)及び第2の実行ブロック(ブロック識別子:0102)に対応するコンテンツ識別子は、それぞれ、識別子対応情報テーブル710に基づいて、「001」及び「002」として特定される。スタートブロック102は、図4に示したコンテンツテーブル410から、コンテンツ識別子「001」及び「002」に対応するコンテンツデータ(それぞれ、「AAA」及び「BBB」)を特定する。
第1の実行ブロック105の下位コネクタ535及び第2の制御ブロック1005の下位コネクタ1045は、処理の終了(すなわち、ブロックが自身以降にブロックが接続されていないこと)を検出するセンサーとして機能してもよい。実行ブロック及び制御ブロックは、自身のブロックの下位コネクタに他のコネクタが接続されていないことを検出すると、処理の終了を検出したことをスタートブロック102に通知することができる。これにより、スタートブロック102は、処理の終了を特定する。
制御対象の実行ブロックに関し、例えば、(1)制御ブロックが関数定義ブロックである場合、制御対象の実行ブロックのコンテンツデータは関数として定義され、(2)制御ブロックが条件分岐(ブランチ)ブロックである場合、制御対象の実行ブロックのコンテンツデータは条件分岐(ブランチ)の条件を満たしたときに再生又は実行され、(3)制御ブロックがループブロックである場合、制御対象の実行ブロックのコンテンツデータは所定の数分繰り返して再生又は実行される。
スタートブロック102は、第2の制御ブロック1005のブロック種別が「5」(関数呼び出し(ファンクションコール))であるかを特定する。ブロック種別が「5」である場合、関数呼び出し(ファンクションコール)の処理として、関数として定義されているコンテンツデータの再生又は実行が行われる。
以上により、図13に示したブロックの配置から、スタートブロック102は、以下の処理順序でコンテンツデータの再生又は実行を行う。
(1)第1の制御ブロック(関数定義)1005に接続される第1の実行ブロック105のコンテンツデータ「AAA」を関数として定義する(第1の制御ブロック及び第1の実行ブロック)。
(2)第2の実行ブロック110のコンテンツデータ「BBB」の実行又は再生を行う。(3)第2の制御ブロック1305が関数呼び出し(ファンクションコール)のブロックであると特定すると、関数として定義されているコンテンツデータ「AAA」の実行又は再生を行う。
本実施例において、有線又は無線を用いて、スタートブロック及び関数定義ブロックは離れて接続及び配置されてもよい。これにより、関数定義ブロックグループが2以上ある場合であっても、関数定義ブロックグループ内で後述するインデントを付すことができる。他の実施例において、関数定義ブロックグループ内で、他の関数を呼び出すための他の関数呼び出し(ファンクションコール)ブロックが接続されてもよい。他の実施例において、スタートブロックは、関数定義ブロックと隣り合わせに接続されてもよい。この場合、スタートブロック及び関数定義ブロックの第1及び2面における長手方向の長さは、関数定義ブロック以外の制御ブロック及び実行ブロックの第1及び2面における長手方向の長さより長くすることができる。
他の実施例において、スタートブロックに接続される一又は二以上の関数定義ブロックは、並列に実行又は再生されるように制御されてもよい。これにより、スタートブロックのグループで定義される一又は二以上のコンテンツデータと一又は二以上の関数定義ブロックのグループで定義される一又は二以上のコンテンツデータとは、重畳的に実行又は演奏され、コンテンツが音楽である場合、輪唱や、複数楽器による演奏、作曲などが可能となる。他の実施例において、ブロック制御装置は、実行ブロックの接続順序に基づいて取得したコンテンツデータを合成して、新たなコンテンツを作成してもよい。
他の実施例において、関数呼び出し(ファンクションコール)のブロックが呼び出す関数定義ブロックは、設定ブロックによって定義されてもよい。2以上の関数定義ブロックを用いて、2以上の関数を定義した場合、関数呼び出し(ファンクションコール)が呼び出す関数定義ブロックは、設定ブロックを用いて変更することができる。他の実施例において、関数定義ブロックは、一又は二以上の関数呼び出し(ファンクションコール)ブロックによって2回以上呼び出されてもよい。
図13に関し、スタートブロック102の下位コネクタ320は、当該ブロックの第2の面にける長手方向左側に配置されているが、下位コネクタ320は、当該長手方向右側に配置してもよい。他の実施例において、スタートブロック102に対して、下位コネクタ320以降に接続されるブロックにインデントを付し、最後のブロックとして動作なしブロックを置いてインデントを戻すことによって、スタートブロック102が制御する範囲を明確にすることができる。
関数定義ブロックも同様に、関数定義ブロック1005の下位コネクタ1045と第1の実行ブロック105は実行ブロック105の長手方向右側の第2の上位コネクタ910を用いて接続されているが、長手方向左側の第1の上位コネクタ905を用いて接続することができる。これにより、関数定義ブロック1005に対して、第1の実行ブロック105にインデントを付し、最後のブロックとして動作なしブロックを置いてインデントを戻すことによって、関数定義ブロック1005が制御する範囲を明確にすることができる。図13の関数定義ブロックが以降のブロックをインデントしない場合、下位コネクタ1045は長手方向左側に配置されても良い。
図14は、制御ブロックとして、条件分岐(ブランチ)ブロックを用いた例を示す。スタートブロック102のコネクタ320は、第1の制御ブロック1005の第1の上位コネクタ1010に接続されている。第1の制御ブロック1005の下位コネクタ1045は、第1の実行ブロック105の第1の上位コネクタ905に接続されている。第1の実行ブロック105の下位ブロック535は、第2の実行ブロック110の第2の上位コネクタ910に接続される。すなわち、制御ブロックの後に接続される実行ブロックにおいて、第2の上位コネクタ910が接続に用いられると、スタートブロック102(及び/又は第2の実行ブロック110)は、第2の実行ブロック110が第1の実行ブロック105に対してインデントが戻されたことを検出する。これにより、第1の実行ブロック105は、第1の制御ブロック1005に対してインデントが付され、第2の実行ブロック110は、第1の実行ブロック105に対してインデントが戻される。したがって、ユーザは、インデントを用いた条件分岐(ブランチ)の定義手法を理解することができる。
スタートブロック102は、第1の制御ブロック、第1及び第2の実行ブロックの接続により、各ブロックと通信し、各ブロックから、各ブロックのブロック識別子及び位置情報を少なくとも取得することができる。これにより、第1制御ブロック(条件分岐(ブランチ))、第1の実行ブロック及び第2の実行ブロックのブロック識別子が、それぞれ、「0005」、「0101」、「0102」とすると、以下のようなブロック接続情報テーブル430を更新及び/又は作成することができる。
Figure 0007202006000002
スタートブロック102は、識別子対応情報テーブル710に基づいて、各ブロックのブロック種別を特定し、さらに、識別子対応情報テーブル710及びコンテンツテーブル410から、第1及び第2の実行ブロックのコンテンツ識別子「001」及び「002」に対応するコンテンツデータ(それぞれ、「AAA」及び「BBB」)を特定する。
以上により、図14に示したブロックの配置から、スタートブロック102は、以下の処理順序でコンテンツデータの再生又は実行を行う。
(1)条件分岐(ブランチ)の条件を満たすとき(第1の制御ブロック)、インデントの終了を検出した第2の実行ブロック105の一つ上(前)の第1の実行ブロック105のコンテンツデータ「AAA」を実行又は再生する(第1の実行ブロック)。条件分岐(ブランチ)の条件の例としては、現在時刻が所定の時刻(12:00から15:00)であるなどとすることができる。
(2)第2の実行ブロック110のコンテンツデータ「BBB」の実行又は再生を行う。これにより、コンテンツデータ「BBB」は、常に実行又は再生されるが、コンテンツデータ「AAA」は条件を満たすときのみ実行又は再生される。
図15は、制御ブロックとして、繰り返し(ループ)ブロックを用いた例を示す。スタートブロック102のコネクタ320は、第1の実行ブロック105の第1の上位コネクタ905に接続されている。第1の実行ブロック105の下位コネクタ535は、制御ブロック1005の第1の上位コネクタ1010に接続されている。制御ブロック1005の下位コネクタ1045は、第2の実行ブロック110の第1の上位コネクタ905に接続されている。また、制御ブロック1005は、上述した通り、制御ブロック1005の横面と設定ブロック1605の横面とがコネクタによって接続されてもよい。設定ブロック1605については、後述するが、設定ブロック1605は、制御ブロック1005で用いられる情報を実行ブロック及び/又は制御ブロック1005を介してスタートブロックに供給することができる。ここで、設定ブロック1605の情報は、制御ブロック1005が繰り返し(ループ)の場合、ループする回数として定義してもよい。ループを3回実行する場合、設定ブロック1605の情報は「3」となる。一実施例において、ループを2回実行する場合、設定ブロックは省略されてもよい。この場合、省略されると、ループする回数は「2」として扱われる。第2の実行ブロック110の下位コネクタ535は、第3の実行ブロック115の第1の上位コネクタ905に接続される。
スタートブロック102は、制御ブロック1005、設定ブロック1605、第1、第2及び第3の実行ブロック105、110、115の接続により、各ブロックと通信し、各ブロックから、各ブロックのブロック識別子及び位置情報を少なくとも取得することができる。これにより、制御ブロック(繰り返し(ループ))1005、制御ブロック(設定)1605、第1の実行ブロック、第2の実行ブロック及び第3の実行ブロックのブロック識別子が、それぞれ、「0004」、「0007」、「0101」、「0102」、「0103」とすると、以下のようなブロック接続情報テーブル430を更新及び/又は作成することができる。なお、スタートブロック102は、制御ブロック(設定)1605が接続されていることを検出しなくてもよい。この場合、スタートブロック102は、制御ブロック(繰り返し(ループ))1005を介して制御ブロック(設定)1605が有する設定情報を少なくとも取得できる。
Figure 0007202006000003
スタートブロック102は、上記ブロック識別子から、第1、第2、第3の実行ブロック105、110、115のコンテンツデータ「AAA」、「BBB」、「CCC」をそれぞれ特定し、第2及び第3の実行ブロック110、115が制御ブロック(繰り返し(ループ))1005の制御対象であることを特定する。また、スタートブロック102は、設定情報を設定ブロック1605から受ける、又は、制御ブロック(繰り返し(ループ))1005が取得した設定情報を受ける。ここでは、設定情報は「3」と仮定する。
以上により、図15に示したブロックの配置から、スタートブロック102は、以下の処理順序でコンテンツデータの再生又は実行を行う。
(1)第1の実行ブロック105のコンテンツデータ「AAA」の実行又は再生を行う
(2)第2の実行ブロック110のコンテンツデータ「BBB」及び第3の実行ブロック115のコンテンツデータ「CCC」の実行又は再生を3回繰り返す。これにより、コンテンツデータ「AAA」を1回実行又は再生した後、コンテンツデータ「BBB」及び「CCC」の実行又は再生が3回繰り返される。コンテンツデータが音楽である場合、特定のフレーズである「BBB」及び「CCC」が繰り返し再生される。
図16は、設定ブロックの内部の概要を示す。設定ブロック1605は、プロセッサ1610、ROM1615、RAM1620及びコネクタ1650を備える。RAM1620は、記憶媒体とすることができる。RAM1620又はROM1615は、自身のブロック識別子に加えて、設定ブロック自体が予め有する情報を記憶することができる。これにより、設定ブロックは、他のブロックに接続されたとき、設定すべき情報をスタートブロック102に供給することができる。他の実施例において、設定ブロックは、ユーザからの変数の値の入力を受ける入力装置を有していてもよい。入力装置は、例えば、ユーザが入力可能なダイヤル式入力装置、一又は二以上のボタン、タッチパネル式入力装置などとすることができる。これにより、ユーザは、設定ブロックの情報を変更することができる。コネクタ1650は、電気的接続、磁気的接続、光学的接続、及び、スイッチなどによる物理的接続の少なくとも一つによって制御ブロック1005に接続することができる。他の実施例において、設定ブロックが設定する情報は、設定ブロックが置かれている方向によって定義されてもよい。
図18は、制御ブロックとして、繰り返し(ループ)ブロック及び条件分岐(ブランチ)ブロックを用いた例を示す。スタートブロック102のコネクタ320は、第1の実行ブロック105の第1の上位コネクタ905に接続されている。第1の実行ブロック105の下位コネクタ535は、第1の制御ブロック(繰り返し(ループ))1805の第1の上位コネクタ1010に接続されている。
第1の制御ブロック1805の下位コネクタ1045は、第2の実行ブロック110の第1の上位コネクタ905に接続されている。これにより、第2の実行ブロック110は、第1の制御ブロック1805に対してインデントが付加される。また、第1の制御ブロック1805は、上述した通り、第1の制御ブロック1805の横面と第1の設定ブロック1605の横面とがコネクタによって接続されてもよい。本実施例では、第1の設定ブロック1605は、ループ回数が「3」であることを特定している。第2の実行ブロック110の下位コネクタ535は、第2の制御ブロック(第1の条件分岐(ブランチ))1810の第1の上位コネクタ1010に接続されている。
第2の制御ブロック(第1の条件分岐(ブランチ))1810の下位コネクタ1045は、第3の実行ブロック115の上位コネクタ905に接続されている。これにより、第3の実行ブロック115は、第2の制御ブロック1810に対してインデントが付加される。本実施例において、第2の制御ブロック1810の第1の条件分岐(ブランチ)の条件は、ループの回数が1回であることである。ループの回数が1回である条件は、第2の設定ブロック1860によって設定されてもよい。第3の実行ブロック115の下位コネクタ535は、第3の制御ブロック(第2の条件分岐(ブランチ))1820の第2の上位コネクタ1015に接続されている。第3の制御ブロック1820(及び/又はスタートブロック102)は、第1の上位コネクタ1010が上位ブロックに接続されておらず、第2の上位コネクタ1015が上位ブロックに接続されていることを検出する。すなわち、第3の制御ブロック1820(ブロック識別子「0008」)は、シグナル情報が「1」であることを検出する。スタートブロック102(及び/又は第3の制御ブロック1820)は、この検出に応じて、第3の制御ブロック1820が上位ブロックである第3の実行ブロック115に対してインデントが戻されたことを判定することができる。
第3の制御ブロック(第2の条件分岐(ブランチ))1820の下位コネクタ1045は、第4の実行ブロック1830の上位コネクタ905に接続されている。これにより、第4の実行ブロック1830は、第3の制御ブロック1820に対してインデントが付加される。本実施例において、第3の制御ブロック1820の第2の条件分岐(ブランチ)の条件は、ループの回数が2回であることである。ループの回数が2回である条件は、第3の設定ブロック1865によって設定されてもよい。
第4の実行ブロック1830の下位コネクタ535は、第5の実行ブロック1840の第2の上位コネクタ910に接続されている。第5の実行ブロック1840(及び/又はスタートブロック102)は、第1の上位コネクタ905が上位ブロックに接続されておらず、第2の上位コネクタ910が上位ブロックに接続されていることを検出する。すなわち、第5の実行ブロック1840(ブロック識別子「0105」)は、シグナル情報が「1」であることを検出する。スタートブロック102(及び/又は第5の実行ブロック1840)は、この検出に応じて、第5の実行ブロック1840が上位ブロックである第4の実行ブロック1830に対してインデントが戻されたことを判定することができる。
第5の実行ブロック1840の下位コネクタ535は、第6の実行ブロック1850の第2の上位コネクタ910に接続されている。第6の実行ブロック1850(及び/又はスタートブロック102)は、第1の上位コネクタ905が上位ブロックに接続されておらず、第2の上位コネクタ910が上位ブロックに接続されていることを検出する。すなわち、第6の実行ブロック1850(ブロック識別子「0106」)は、シグナル情報が「1」であることを検出する。スタートブロック102(及び/又は第6の実行ブロック1850)は、この検出に応じて、第6の実行ブロック1850が上位ブロックである第5の実行ブロック1840に対してインデントが戻されたことを判定することができる。上記の各実施例のように、実行ブロック、制御ブロック共に長手方向左側の第1の上位コネクタの上位ブロックへの接続情報をシグナル情報とし、シグナル情報は、第1の上位コネクタにおいて接続が有る場合「0」、接続が無い場合「1」としている。この「シグナル情報」により、スタートブロック及び/又はスタートブロック以外の各ブロックは、「シグナル情報」が「0」のときに制御範囲のインデントを認識でき、そして、「シグナル情報」が「1」のときに、インデントからの戻りを認識できる。
スタートブロック102は、各実行ブロック、各制御ブロック1805、1810、1820及び設定ブロック1605、1860、1865の接続により、各ブロックと通信し、各ブロックから、各ブロックのブロック識別子及び位置情報を少なくとも取得することができる。これにより、第1の制御ブロック(繰り返し(ループ))1805、第1の設定ブロック1605、第2の設定ブロック1860、第3の設定ブロック1865、第2の制御ブロック(第1の条件分岐(ブランチ))1810、第3の制御ブロック(第2の条件分岐(ブランチ))1820、第1の実行ブロック105、第2の実行ブロック110、第3の実行ブロック115、第4の実行ブロック1830、第5の実行ブロック1840及び第6の実行ブロック1850のブロック識別子が、それぞれ、「0004」、「0007」、「0009」、「0010」、「0005」、「0008」、「0101」、「0102」、「0103」、「0104」、「0105」、「0106」とすると、以下のようなブロック接続情報テーブル430を更新及び/又は作成することができる。なお、スタートブロック102は、第1の設定ブロック1605が接続されていることを検出しなくてもよい。この場合、スタートブロック102は、第1の制御ブロック(繰り返し(ループ))1805を介して第1の設定ブロック1605が有する情報(ループ回数が「3」)を少なくとも取得できる。また、第2及び3の設定ブロック1860、1865が用いられている場合、スタートブロック102は、各設定ブロックに対応する制御ブロックを介して設定ブロックの情報を取得してもよい。
Figure 0007202006000004
スタートブロック102は、識別子対応情報テーブル710を参照し、接続されている各ブロックの種別を特定する。さらに、スタートブロック102は、実行ブロックに関し、コンテンツテーブル410を参照し、各実行ブロックに対応するコンテンツデータを特定する。本実施例において、制御ブロックにおけるループ回数や条件分岐(ブランチ)の条件などの制御ブロックのコンテンツは、識別子対応情報テーブル710又はコンテンツテーブル410に記憶されていてもよい。他の実施例において、制御ブロックのコンテンツは、各制御ブロックの記憶媒体に記憶されていてもよい。
以上により、図18に示したブロックの配置から、スタートブロック102は、以下の処理順序でコンテンツデータの再生又は実行を行う。
(1)第1の実行ブロック105のコンテンツデータ「AAA」の実行又は再生を行う。(2)第2の実行ブロック110から第5の実行ブロック1840までに関して、実行又は再生が3回繰り返される。
以下において、(2-X-Y)における「X」は、ループの回数を示す。
(2-1-1)第2の実行ブロック110のコンテンツデータ「BBB」の(1回目の)実行又は再生を行う。
(2-1-2)第2の制御ブロック1810において、ループの回数が1回目であることに応じて、第3の実行ブロック115のコンテンツデータ「CCC」の実行又は再生を行う。
(2-1-3)第3の制御ブロック1820において、ループの回数が1回目であることに応じて、第4の実行ブロック1830のコンテンツデータは実行対象とされない。
(2-1-4)第5の実行ブロック1840のコンテンツデータ(例えば「EEE」)の(1回目の)実行又は再生を行う。
(2-2-1)第2の実行ブロック110のコンテンツデータ「BBB」の(2回目の)実行又は再生を行う。
(2-2-2)第2の制御ブロック1810において、ループの回数が2回目であることに応じて、第3の実行ブロック115のコンテンツデータは実行対象とされない。
(2-2-3)第3の制御ブロック1820において、ループの回数が2回目であることに応じて、第4の実行ブロック1830のコンテンツデータ(例えば「DDD」)の実行又は再生を行う。
(2-2-4)第5の実行ブロック1840のコンテンツデータ「EEE」の(2回目の)実行又は再生を行う。
(2-3-1)第2の実行ブロック110のコンテンツデータ「BBB」の(3回目の)実行又は再生を行う。
(2-3-2)第2の制御ブロック1810において、ループの回数が3回目であることに応じて、第3の実行ブロック115のコンテンツデータは実行対象とされない。
(2-3-3)第3の制御ブロック1820において、ループの回数が3回目であることに応じて、第4の実行ブロック1830のコンテンツデータは実行対象とされない。
(2-3-4)第5の実行ブロック1840のコンテンツデータ「EEE」の(3回目の)実行又は再生を行う。
(3)第1の制御ブロック1805に関するループの制御が終了する。
(4)第6の実行ブロック1850のコンテンツデータ(例えば「FFF」)の実行又は再生を行う。
本実施例において、シグナル情報を用いてインデントの検出を説明したが、当業者であれば理解されるように、他の実施例においてもシグナル情報を用いることができる。
実施例4
(ブロックに割り当てたコンテンツデータの動的変更)
本実施例によれば、実行ブロック(又は、実行ブロックの識別子)に割り当てられているコンテンツデータを動的に変更することができる。これにより、本実施例は、音楽や、動画、そして、ロボットや、ドローンなどの制御を行うための制御信号などのブロックに関連付けされたコンテンツデータを動的に変更することによって、よりフレキシブルな遊び方を可能にし、ユーザが飽きにくい玩具を提供することができる。
(1)コンテンツデータの再割り当て
例えば、初めに、曲「A」を分割したフレーズ「AAA」、「BBB、「CCC」それぞれを、第1のブロック、第2のブロック、第3のブロックに割り当ていたとする。ユーザがブロックを複数回配置して、コンテンツデータを再生する。この場合、ユーザは、正しいフレーズの並び順(すなわち、ブロックの配置順序)が分かると、ゲーム性がなくなり飽きてしまう。このようなときに、各ブロックに割り当てている曲「A」の一部であるフレーズを異なる実行ブロックへ再割り当てすることによって、ゲーム性を高めて、より魅力的な玩具を提供することができる。
本実施例では、再割り当ての実行は、ユーザが指示可能な再割り当てボタンをスタートブロック102に設ける、又は、他の装置から再割り当てについての指示を受ける回路をスタートブロック102に設けることによって実現される。他の装置とは、有線又は無線で接続することができる。スタートブロック102において、再割り当てボタンが押されると、又は、スタートブロック102が他の装置から再割り当てについての指示を受けると、再割り当てが実行される。
再割り当てが実行されると、図4で示したスタートブロック102におけるコンテンツテーブル410のコンテンツ識別子とコンテンツデータとの対応関係を入れ替える。これにより、各実行ブロックへのコンテンツデータの再割り当てが実現できる。他の実施例において、図6に示したコンテンツテーブル610を参照し、同一のコンテンツグループに対応するコンテンツ識別子に対して、コンテンツ識別子とコンテンツデータとの対応関係を入れ替えることによって再割り当てを行ってもよい。他の実施例において、図4に示した識別子対応情報テーブル420について、又は、図7で示した識別子対応情報テーブル710においてブロック種別(ブロック種別:7)が実行ブロックのものについて、ブロック識別子とコンテンツ識別子との対応関係を入れ替えることによって再割り当てを行ってもよい。
(2)新たなコンテンツの割り当て
スタートブロック102は、識別子対応情報テーブル420又は710において、コンテンツ識別子が割り当てられていないブロック識別子を特定する。スタートブロック102は、特定されたブロック識別子に新たなコンテンツのコンテンツ識別子を割り当てる。また、スタートブロック102は、新たに追加されるコンテンツのコンテンツ識別子及びコンテンツデータをコンテンツテーブルに追加する。一実施例において、特定されたブロック識別子の数に基づいて、コンテンツをどのように分割するかを決定することができる。コンテンツ識別子が割り当てられていないブロック識別子が存在しない場合、スタートブロック102は、コンテンツ識別子が既に割り当てられている所定のブロック識別子に新たなコンテンツのコンテンツ識別子を割り当てる。
(3)コンテンツの割り当てのタイミング
・スタートブロック102の電源をオンにしたときに、コンテンツの割り当てを行う。
・各ブロックの配置が完成したときにコンテンツの割り当てを行う。例えば、コンテンツが音楽である場合にブロックの配置により曲が完成したときにコンテンツの割り当てを行う。他の実施例において、各ブロックの配置が完成する途中で、誤りのある配置が所定の回数行われたことに応じて、コンテンツの割り当てを行ってもよい。
・電源が投入されてから(又は、先のコンテンツの割り当てが完了してから)、所定の時間経過したときにコンテンツの割り当てを行う。これにより、ブロックを配列させることの難易度を上げることができる。
・スタートブロック以外のブロックが、スタートブロック102に接続されたとき、接続されたブロックにコンテンツデータの割り当てが行われる。本実施例において、接続されるたびに、コンテンツデータの実行又は再生を行えるようにしてもよい。これにより、ユーザは、ブロックに割り当てられたコンテンツデータを認識することができる。ブロックの数が多い場合、コンテンツデータが割り当てられないブロックがあってもよい。この場合、コンテンツデータが割り当てられないブロック又はスタートブロック102において、音声装置や、表示装置を用いて、当該ブロックにコンテンツが割り当てられないことをユーザに通知してもよい(例えば、ビープ音など)。
上記の各実施例において、コンテンツが割り当てられるブロックは、実行ブロックのみとしたが、制御ブロックを含む全てのブロックとしてもよい。これにより、制御ブロック及び実行ブロックに関連付けされるコンテンツデータは、変更可能となる。この場合、ブロックに関連付けされるコンテンツデータは、コンテンツテーブル410(又は識別子対応テーブル710などの他のテーブル)において、ブロック識別子と関連付けされて記憶される。
実施例5
(スタートブロックの変形例)
上記の各実施例において、スタートブロック102が、各情報テーブルの保持や、各ブロックの制御などを実行しているが、これは一例であり、上記説明したスタートブロック102の一部は、一又は二以上の他の装置と共同して実現されてもよい。他の装置は、例として、スマートフォンや、タブレット、ノートパソコン、デスクトップパソコンなどでもよい。他の装置は、スタートブロック102と有線又は無線で接続することができる。スタートブロック102自体、又は、スタートブロック102及び他の装置の組み合わせは、ブロック制御装置と呼ぶことができる。ブロック制御装置は、インターネットを介して有線又は無線で、ブロック制御装置自体を制御するためのコンピュータプログラムや、実行ブロック、制御ブロック及び設定ブロックを制御するプログラム、実行ブロックに割り当てるコンテンツデータなどを外部サーバから取得できるようにしてもよい。上記説明したテーブルの一部又は全部は、スタートブロック102及び他の装置の一方が有していてもよい。他の実施例において、スタートブロック102の代わりに、スマートフォンや、タブレット、ノートパソコン、デスクトップパソコンなどのコンピュータ装置であるブロック制御装置が、スタートブロック102が行う機能を実現してもよい。他の実施例において、ブロック制御装置は、スタートブロック102及び/又はコンピュータ装置にコンテンツデータや各種のテーブルなどを供給する外部サーバを含んでいてもよい。他の実施例において、ブロック制御装置は、他のブロック制御装置と有線回線又は無線回線を介して通信を行うことができる。これにより、ブロック制御装置のそれぞれのユーザは、例えば、誰が早くブロックを正しく並べることができたかなどの競争を行うことができる。
上記の各実施例において、スタートブロック及び他の装置の一方又は両方からなるブロック制御装置は、コンテンツに適した出力装置を用いてコンテンツを再生又は実行できる。一例として、コンテンツが音楽あれば出力装置はスピーカであり、コンテンツが動画であれば出力装置はディスプレイ及び/又はスピーカであり、コンテンツがプログラムであればそれに適した装置とすることができる。ブロック制御装置が各ブロックから収集(準備)したコンテンツデータの実行又は再生は、例えば、ブロック制御装置や、スタートブロック及び他のブロック、又は、ロボットなどの外部装置などにおいて実現されてもよい。
上記の各実施例において、各ブロックの接続は、有線又は無線で接続される。有線の場合、第1のブロックの下位コネクタ及び第2の上位コネクタは、それぞれ、凸型及び凹型形状(又は、その逆)を有しており、一方のコネクタが他方のコネクタを受けるようにすることができる。また、無線の場合、各ブロックのコネクタの代わりに、無線通信送受信機を用いることができる。各ブロックは、無線通信送受信機を用いて無線通信を行う。無線通信送受信機は、例えば、RFIDタグ/リーダ、WIFI通信回路、Bluetooth通信回路、ZigBee通信回路などを用いて実現される。
他の実施例において、各ブロックの接続は、ブロックの形状による物理的接続であってもよい。物理的接続は、例えば、一方のブロックの凸型又は凹型形状が他方のブロックの凹型又は凸型形状と組み合わせることによって実現される。他の例として、物理的接続は、磁力によって実現される。例えば、磁力による物理的接続は、一方のブロックの磁石のS極と他方のブロックの磁石のN極とが組み合わさって実現される。物理的接続が用いられる場合、ブロック制御装置は、各ブロックを赤外線センサーやカメラなどのイメージセンサによる光学的認識を用いて特定してもよい。
例えば、ブロック制御装置は、イメージセンサなどである光学的に読み取り可能な装置を備え、光学的に読み取り可能な装置は、各ブロックの図柄を検出し、各ブロックのブロック識別子及び配置を特定する。他の実施例において、ブロック制御装置は、各ブロックを、無線通信技術を用いて特定してもよい。この場合、ブロック制御装置及び各ブロックは、それぞれ、無線通信受信機/リーダ(又はリーダ・ライタ)及び無線通信送信機(又は無線通信送信機及び無線通信受信機/リーダ(又はリーダ・ライタ))を有する。例えば、無線通信技術がRFID技術を用いた通信の場合、各ブロックはRFIDタグを有し、ブロック制御装置のRFIDリーダ(又はリーダ・ライタ)がこれらのRFIDタグを読み出すことによって、各ブロックのブロック識別子及び配置を特定する。
他の実施例において、各ブロックを受けるボードによって物理的接続が実現されてもよい。例えば、ボードは、2以上のブロックを受け入れるように構成されている。各ブロックは、ブロック識別子を少なくとも記憶した電気的に読み取り可能なタグ、磁気的に読み取り可能なタグ、光学的に読み取り可能なタグの少なくとも一つを備え、ボードは、電気的に読み取り可能な装置、磁気的に読み取り可能な装置、光学的に読み取り可能な装置の少なくとも一つを備える。ボードは、受け入れたブロックのブロック識別子及び配置を、電気的読み取り装置、磁気的読み取り装置、光学的読み取り装置の少なくとも一つを用いて特定するように構成されている。
実施例6
各ブロックの変形例)
各ブロックは、電子ペーパーや、液晶ディスプレイ、有機ELディスプレイなどの表示装置を備えていてもよい。表示装置は、各ブロックに関連付けされているコンテンツ又はコンテンツを表すしるしを表示することができる。例えば、コンテンツが音楽である場合、表示装置は、曲名、ブロックが有する音楽の秒数などを表示してもよい。
他の実施例において、各ブロックは、表示装置を含む出力装置を備えていてもよい。出力装置は、各ブロックに関連付けされている凹凸、振動、音声、静止画、動画、匂いなどの一又は二以上を発生させることができる。これにより、ユーザは、触覚、聴覚、視覚、嗅覚により、各ブロックを識別することができる。ブロック制御装置は、出力装置が出力する情報を割り当て及び/又は供給を行っても良い。
ブロック制御装置は、各ブロックのブロック識別子の書き換えができてもよい又は、ブロック識別子を拡張した識別子を作成し、各ブロックに記憶させてもよい。これにより、ブロックの遊び方や、ゲームの規則などの拡張が、より簡単に対応できる。
実施例7
(設定ブロックの変形例)
設定ブロックで設定可能な情報は、各実施例で説明したように、ループの回数やIF文の条件などを引数として設定可能な情報とすることができる。また、設定ブロックは、接続されたブロック群で使用可能な変数を設定できてもよい。さらに、所定の処理を行う命令に関する情報を変数として設定できてもよい。例えば、設定ブロックは、変数についての情報を各ブロックに提供する。また、設定ブロックは、当該変数の値が所定の値となったときに関数などの所定の処理を実行する命令を変数として各ブロックに設定できてもよい。所定の処理は、関数の実行の他、例えば、コンテンツの実行又は再生の停止や、各ブロックの出力装置の制御などとすることができる。
コンテンツデータ
コンテンツデータのコンピュータプログラムの動作の対象は、自動車や、飛行機、船などの乗り物及びそれら乗り物のラジコン玩具や、ロボット、ドローンなどでもよい。
コンテンツデータが音楽(音声)である場合、コンテンツデータは、フレーズより小さい単位のデータであってもよい。例えば、データの単位は、時間、小節、音符などとすることができる。
コンテンツデータは、コンピュータプログラム、音声、音楽、動画などに加えて、一又は二以上の文字とすることができる。例えば、正しく、実行ブロックを並べると、ブロック制御装置は、各実行ブロックに関連付けされた文字に基づいて、単語又は文章を特定する。例えば、正しい順序で実行ブロックが並べられた場合、ブロック制御装置は、正解の単語や文章を映像や音声に基づいて出力する。
図6に示したコンテンツテーブルのコンテンツグループ610に関し、実行ブロックに割り当てられるコンテンツデータは、異なるコンテンツグループのコンテンツデータでもよい。例えば、コンテンツグループ「A」及び「B」に属する5つのコンテンツデータがそれぞれ5つの実行ブロックに割当てられてもよい。これにより、実行ブロックの組み合わせが複雑になり、ゲーム性がより向上する。
各実行ブロックには、2以上のコンテンツデータが割当てられてもよい。例えば、同じ音楽のフレーズであるコンテンツデータであっても、各実行ブロックには、男声及び女声の2つのコンテンツデータが割り当てられてもよい。例えば、実行ブロックを設定ブロックを受け入れ可能に構成し、設定ブロックは、男声及び女声の一方又は両方が用いられるように切り替えるスイッチを備える。これにより、実行ブロックに割り当てられた男声及び女声の2つのコンテンツデータの切り替えが可能となり、男声及び女声の一方又は両方を用いて音楽が再生される。他の実施例において、各実行ブロックは、2以上のコンテンツデータのうちの一つを選択するための切り替え手段を有していてもよい。
上記の各実施例において、各ブロックの上位又は下位コネクタの数は、一又は二以上として説明したが、それぞれ、二又は三以上でもよい。
上記の各実施例において、各ブロックのコネクタは、所定の面において、短手方向の中心としたが、これは、例示であり、いずれかの方向によっていてもよい。
上記の各実施例において、「動作なし」ブロックは、省略してもよい。
他の実施例において、実施例3(ブロックにインデントを適用する例)などにおいて、「動作なし」ブロックは、インデントを戻す(インデントの解除)ために用いられてもよい。例えば、2以上のインデントが複数のブロックに付された場合、「動作なし」ブロック1つが、2以上のインデントを戻すように構成されていてもよい。本実施例において、「動作なし」ブロックの第1及び2の面における長手方向の長さは、2以上のインデントを戻すために十分な長さを有していてもよい。
上記の実施例において、ハードウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ソフトウエアで実現することができ、そして、ソフトウエアで実現するよう説明されたいくつかの要素の一部又は全ては、ハードウエアで実現することができることは理解されるであろう。
以上に説明した玩具は、子供及び幼児用の玩具として説明したが、玩具は、10~20歳代の学生用、大人用、老人用であってもよい。
以上に説明した処理又は処理順序において、ある処理において、その処理ではまだ利用することができないはずのデータを利用しているなどの処理又は処理順序上の矛盾が生じない限りにおいて、処理又は処理順序を自由に変更することができる。
以上に説明してきた各実施例に関し、各実施例の一部又は全部を組み合わせて一つの実施例として実現されてもよい。
以上に説明してきた各実施例は、本発明を説明するための例示であり、本発明はこれらの実施例に限定されるものではない。本発明は、その要旨を逸脱しない限り、種々の形態で実施することができる。
102 スタートブロック
105、110、115 実行ブロック
125 有線回線及び/又は無線回線
150 コンピュータ装置

スタートブロック
305 プロセッサ
310 ROM
315 RAM
320 コネクタ
1720 関数定義用コネクタ

スタートブロックが有するテーブル
410、610 コンテンツテーブル
420、710 識別子対応情報テーブル
430 ブロック接続情報テーブル

実行ブロック
510 上位コネクタ
515 プロセッサ
520 ROM
530 RAM
535 下位コネクタ
905 第1の上位コネクタ
910 第2の上位コネクタ

関数定義ブロック
510 上位コネクタ
515 プロセッサ
520 ROM
530 RAM
535 下位コネクタ
1730 第1の関数定義用コネクタ
1740 第2の関数定義用コネクタ

制御ブロック
1005 制御ブロック
1010 第1の上位コネクタ
1015 第2の上位コネクタ
1020 プロセッサ
1030 ROM
1040 RAM
1045 下位コネクタ

設定ブロック
1605 設定ブロック
1610 プロセッサ
1615 ROM
1620 RAM
1650 コネクタ

Claims (2)

  1. ブロック玩具であって、
    ブロック制御装置と、
    前記ブロック制御装置に接続されそれぞれが識別子を有する二以上の玩具用ブロックであって、互いが数珠繋ぎで接続され、ユーザによってそれぞれを区別するように認識され、1つのコンテンツが二以上に分割された二以上のコンテンツデータのいずれかを記憶することができる二以上の玩具用ブロックと、
    を備え、
    前記ブロック制御装置は、前記二以上の玩具用ブロックと前記二以上のコンテンツデータとの対応関係を記憶し、前記二以上の玩具用ブロックの接続順序と前記二以上の玩具用ブロックに関連付けされている前記二以上のコンテンツデータとを対応付け、前記二以上の玩具用ブロックと各コンテンツデータとの対応関係の一部又は全部を入れ替え可能に構成され、前記コンテンツは、前記二以上のコンテンツデータを前記接続順序に従って実行又は再生することにより形成され
    前記二以上の玩具ブロックは、複数のコンテンツを分割した二以上のコンテンツのコンテンツデータを記憶することができ、ブロック制御装置は、指定されたコンテンツの二以上のコンテンツデータを前記接続順序に従って実行又は再生することができる、
    ブロック玩具。
  2. ブロック制御装置であって、
    互いが数珠繋ぎで接続されそれぞれが識別子を有する二以上の玩具用ブロックであって、ユーザによってそれぞれを区別するように認識され、1つのコンテンツが二以上に分割された二以上のコンテンツデータのいずれかを記憶することができる二以上の玩具用ブロックに接続され、
    前記二以上の玩具用ブロックと前記二以上のコンテンツデータとの対応関係を記憶し、前記二以上の玩具用ブロックの接続順序と前記二以上の玩具用ブロックに関連付けされている前記二以上のコンテンツデータとを対応付け、前記二以上の玩具用ブロックと各コンテンツデータとの対応関係の一部又は全部を入れ替え可能に構成され、前記コンテンツを、前記二以上のコンテンツデータを前記接続順序に従って実行又は再生することにより形成し、
    前記二以上の玩具ブロックは、複数のコンテンツを分割した二以上のコンテンツのコンテンツデータを記憶することができ、指定されたコンテンツの二以上のコンテンツデータを前記接続順序に従って実行又は再生することができる、
    ブロック制御装置。
JP2019147483A 2019-08-09 2019-08-09 ブロックにコンテンツを関連付けする装置 Active JP7202006B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2019147483A JP7202006B2 (ja) 2019-08-09 2019-08-09 ブロックにコンテンツを関連付けする装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2019147483A JP7202006B2 (ja) 2019-08-09 2019-08-09 ブロックにコンテンツを関連付けする装置

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
JP2018003635A Division JP6793137B2 (ja) 2018-01-12 2018-01-12 ブロックにコンテンツを関連付けする装置

Publications (3)

Publication Number Publication Date
JP2019205903A JP2019205903A (ja) 2019-12-05
JP2019205903A5 JP2019205903A5 (ja) 2021-02-18
JP7202006B2 true JP7202006B2 (ja) 2023-01-11

Family

ID=68768141

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019147483A Active JP7202006B2 (ja) 2019-08-09 2019-08-09 ブロックにコンテンツを関連付けする装置

Country Status (1)

Country Link
JP (1) JP7202006B2 (ja)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002177656A (ja) 2000-12-15 2002-06-25 Yamaha Corp 電子玩具
JP2003190662A (ja) 2001-12-28 2003-07-08 Tomy Co Ltd ブロック玩具
JP2003334388A (ja) 2002-05-21 2003-11-25 Institute Of Network Technology Inc 音声発生玩具及びこの音声発生玩具を用いた遊戯方法
JP2009028438A (ja) 2007-07-30 2009-02-12 Eighting:Kk 合体玩具
JP2015123231A (ja) 2013-12-26 2015-07-06 株式会社ソニー・コンピュータエンタテインメント ブロック、ブロックシステム、情報処理装置、表示方法、および情報処理方法
WO2017203194A1 (en) 2016-05-27 2017-11-30 Swapbots Ltd Augmented reality toy

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002177656A (ja) 2000-12-15 2002-06-25 Yamaha Corp 電子玩具
JP2003190662A (ja) 2001-12-28 2003-07-08 Tomy Co Ltd ブロック玩具
JP2003334388A (ja) 2002-05-21 2003-11-25 Institute Of Network Technology Inc 音声発生玩具及びこの音声発生玩具を用いた遊戯方法
JP2009028438A (ja) 2007-07-30 2009-02-12 Eighting:Kk 合体玩具
JP2015123231A (ja) 2013-12-26 2015-07-06 株式会社ソニー・コンピュータエンタテインメント ブロック、ブロックシステム、情報処理装置、表示方法、および情報処理方法
WO2017203194A1 (en) 2016-05-27 2017-11-30 Swapbots Ltd Augmented reality toy

Also Published As

Publication number Publication date
JP2019205903A (ja) 2019-12-05

Similar Documents

Publication Publication Date Title
CN105536266B (zh) 智能积木游戏装置、智能积木游戏的控制方法及系统
JP4617322B2 (ja) 自律型ロボットとの相互作用の装置と方法
WO2015113399A1 (en) System and method for directing a targeted object on an interactive surface to produce a response
US20160147404A1 (en) New uses of smartphones and comparable mobile digital terminal devices
KR102126521B1 (ko) 유치원 및 초등학교 저학년기의 물리적 프로그래밍을 위한 텐저블 코딩 블록 시스템
KR960018998A (ko) 대화식 컴퓨터 게임기
CN101411948A (zh) 电子玩具
CN105709435A (zh) 智能互动积木系统及其控制方法
JP2015514468A (ja) 音楽教育用ブロック玩具
Barbareschi et al. TIP-Toy: a tactile, open-source computational toolkit to support learning across visual abilities
CN205796530U (zh) 智能型多媒体积木系统
WO2019138951A1 (ja) 玩具
JP6793137B2 (ja) ブロックにコンテンツを関連付けする装置
JP7202006B2 (ja) ブロックにコンテンツを関連付けする装置
KR101511313B1 (ko) 퍼즐 장난감의 제어 방법
CN114415924A (zh) 一种基于实物编程的多模态交互方法及相关设备
KR102196275B1 (ko) 창의력 향상을 위한 발레 관련 컨텐츠 프로그램과 제공 방법 및 장치
Millner Computer as chalk: cultivating and sustaining communities of youth as designers of tangible user interfaces
Al-Khalifa et al. Basma: An interactive IoT-based plush toy for Arabic-speaking children
US20200368630A1 (en) Apparatus and System for Providing Content to Paired Objects
Miller-Klugman et al. Low-Cost Open-Source Robotics for Education
US20230133173A1 (en) Group-controlled smart blocks and apparatus for controlling the same
Glowacki Mixed play spaces: Augmenting digital storytelling with tactile objects
CN110047341A (zh) 情景语言学习设备、系统和方法
TWI858021B (zh) 基於音訊的互動系統、互動方法和互動裝置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210106

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20210106

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20211117

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20211129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220128

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20220526

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220817

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20220817

C11 Written invitation by the commissioner to file amendments

Free format text: JAPANESE INTERMEDIATE CODE: C11

Effective date: 20220831

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20221011

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20221013

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20221212

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20221216

R150 Certificate of patent or registration of utility model

Ref document number: 7202006

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150