IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 山下 健一の特許一覧

特許7224954パズル生成装置、パズル生成方法、及びパズル生成プログラム
<>
  • 特許-パズル生成装置、パズル生成方法、及びパズル生成プログラム 図1
  • 特許-パズル生成装置、パズル生成方法、及びパズル生成プログラム 図2
  • 特許-パズル生成装置、パズル生成方法、及びパズル生成プログラム 図3
  • 特許-パズル生成装置、パズル生成方法、及びパズル生成プログラム 図4
  • 特許-パズル生成装置、パズル生成方法、及びパズル生成プログラム 図5
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-02-10
(45)【発行日】2023-02-20
(54)【発明の名称】パズル生成装置、パズル生成方法、及びパズル生成プログラム
(51)【国際特許分類】
   A63F 13/80 20140101AFI20230213BHJP
   A63F 13/71 20140101ALI20230213BHJP
   G06K 7/14 20060101ALI20230213BHJP
【FI】
A63F13/80 E
A63F13/71
G06K7/14 017
【請求項の数】 5
(21)【出願番号】P 2019028585
(22)【出願日】2019-02-20
(65)【公開番号】P2020130641
(43)【公開日】2020-08-31
【審査請求日】2021-12-21
(73)【特許権者】
【識別番号】513183016
【氏名又は名称】山下 健一
(74)【代理人】
【識別番号】100124039
【弁理士】
【氏名又は名称】立花 顕治
(74)【代理人】
【識別番号】100179213
【弁理士】
【氏名又は名称】山下 未知子
(74)【代理人】
【識別番号】100170542
【弁理士】
【氏名又は名称】桝田 剛
(72)【発明者】
【氏名】山下 健一
【審査官】西村 民男
(56)【参考文献】
【文献】特開2010-110587(JP,A)
【文献】特開2009-066264(JP,A)
【文献】特開2008-188323(JP,A)
【文献】特開2004-097366(JP,A)
【文献】特開2003-024631(JP,A)
【文献】特開平9-075550(JP,A)
【文献】解けないイラストロジック 解けないイラロジって存在するのですか?,Yahoo!知恵袋[online],2013年05月13日,https://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q14107180549,[2023年01月06日検索]
【文献】イラストロジック自動解答,Hatena Blog 木曜不足[online],2012年05月10日,https://shuyo.hatenablog.com/entry/20120510/puzzle,[2023年01月06日検索]
(58)【調査した分野】(Int.Cl.,DB名)
A63F 9/24,13/00-13/98,
G06K 7/00- 7/14,
19/00-19/18,
G09C 1/00- 5/00,
H04K 1/00- 3/00,
H04L 9/00- 9/40
(57)【特許請求の範囲】
【請求項1】
二次元コードを取得するコード取得部と、
取得された前記二次元コードを複数の部分領域に分割し、マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成する問題生成部と、
前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解く問題解答部と、
前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定する重解判定部と、
生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるヒント付与部と、
を備える、
パズル生成装置。
【請求項2】
前記ヒント付与部は、前記問題におけるマトリクスの中央領域に存在する一部のセルに答えを与える、
請求項1に記載のパズル生成装置。
【請求項3】
前記二次元コードは、公開鍵暗号方式における公開鍵とペアとなり、当該公開鍵を特定可能な秘密鍵であって、当該公開鍵暗号方式に基づく電子暗号通貨における送金先及び出金元となる公開アドレスであって、前記公開鍵から生成される公開アドレスを出金元とする取引の電子署名に利用される秘密鍵を格納する、
請求項1又は2に記載のパズル生成装置。
【請求項4】
コンピュータが、
二次元コードを取得するステップと、
取得された前記二次元コードを複数の部分領域に分割するステップと、
マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成するステップと、
前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解くステップと、
前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定するステップと、
生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるステップと、
を実行する、
パズル生成方法。
【請求項5】
コンピュータに、
二次元コードを取得するステップと、
取得された前記二次元コードを複数の部分領域に分割するステップと、
マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成するステップと、
前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解くステップと、
前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定するステップと、
生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるステップと、
を実行させるための、
パズル生成プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、パズル生成装置、パズル生成方法、及びパズル生成プログラムに関する。
【背景技術】
【0002】
従来、ペンシルパズルの一つとしてお絵かきロジックが知られている。お絵かきロジックは、マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたパズルであり、数字表記に示される数に従ってセルを塗りつぶすことで、解答となる絵を浮かび上がらせることができる。お絵かきロジックは、ののぐらむ、イラストロジック、ピクチャークロスワード(ピクロス)等とも称される。
【0003】
特許文献1には、QRコード(登録商標)等の二次元コードを解答とするお絵かきロジックを生成するシステムが提案されている。このシステムでは、与えられたお絵かきロジックを解くことで、二次元コードを取得することができる。二次元コードには、例えば、画像データ、音楽データ等のコンテンツを提供するためのURL(Uniform Resource Locator)が格納されている。そのため、このシステムによれば、お絵かきロジックを解いたプレイヤのみが、そのURLからデータを取得するサービスを提供することができる。
【先行技術文献】
【特許文献】
【0004】
【文献】特開2004-097366号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
本件発明者は、上記のような二次元コードの絵が解答となるお絵かきロジックを生成した場合に、図1に示されるような問題点が生じることを見出した。図1は、従来の技術の問題点を説明するための図である。図1には、比較的に簡単なお絵かきロジックの一例が示されている。お絵かきロジック900は、2×2のマトリクスに配置された4つのセル901及び連続的に塗りつぶすセルの数を示す数字表記902により構成されている。
【0006】
このお絵かきロジック900には、2つの解答(910、920)が存在する。図1の例では、黒色のセルが塗りつぶしたセルを表しており、白色のセルが塗りつぶしていないセルを表している。2つの解答(910、920)において塗りつぶしたセルの数は共に数字表記902に示される数と一致しているため、それぞれが正解となる。つまり、お絵かきロジックでは、数字表記に示される数によっては、真の解答以外の解答が存在する可能性がある。
【0007】
例えば、風景、文字、キャラクタ等の一般的な絵が解答である場合、真の解答以外の解答が存在しても、プレイヤは、徐々に浮かび上がりつつある絵の意味に基づいて、真の解答以外の解答を除外することができる。しかしながら、二次元コードは、情報をエンコードすることで生成されるものであり、基本的には、人間にとって意味のある絵にはならない。そのため、二次元コードの絵が解答である場合、プレイヤは、真の解答以外の解答を除外することができず、真の解答にたどり着けない可能があるという問題点がある。
【0008】
本発明は、一側面では、このような実情を鑑みてなされたものであり、その目的は、二次元コードの絵が解答となるお絵かきロジックの問題を適切に生成可能な技術を提供することである。
【課題を解決するための手段】
【0009】
本発明は、上述した課題を解決するために、以下の構成を採用する。
【0010】
すなわち、本発明の一側面に係るパズル生成装置は、二次元コードを取得するコード取得部と、取得された前記二次元コードを複数の部分領域に分割し、マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成する問題生成部と、前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解く問題解答部と、前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定する重解判定部と、生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるヒント付与部と、を備える。
【0011】
当該構成に係るパズル生成装置は、取得された二次元コードを複数の部分領域に分割した後に、二次元コードの対応する部分領域の絵が解答となるようにお絵かきロジックの問題を部分領域毎に生成する。この各部分領域に分割することで、問題に複数の解答が発生する確率を低減することができる。加えて、当該構成に係るパズル生成装置は、各部分領域に対して生成した各問題を解き、二次元コードの対応する部分領域の絵以外の絵が浮かび上がる他の解答が存在するか否かを判定する。そして、他の解答が存在する場合には、パズル生成装置は、二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように問題の一部のセルに答えを与える。これにより、生成された問題から他の解答を除外することができる。したがって、当該構成に係るパズル生成装置によれば、二次元コードを複数の部分領域に分割することで、重解が発生する可能性を低減しつつ、それでも重解が発生してしまった場合には、他の解答が成立しないように真の解答の一部をヒントとして与えることができる。そのため、二次元コードの絵が解答となるお絵かきロジックの問題を適切に生成することができる。なお、二次元コードの種類は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、二次元コードは、QRコード(登録商標)等のマトリックス式であってもよく、PDF417等のスタック式であってもよい。
【0012】
上記一側面に係るパズル生成装置において、前記ヒント付与部は、前記問題におけるマトリクスの中央領域に存在する一部のセルに答えを与えてもよい。マトリクスの中央領域は、端部領域に比べて、連続的に塗りつぶすセルの並びに対して高い影響度を有している。そのため、中央領域の一部に答えを与えることで、他の解答を効率的に除外することができる。したがって、当該構成によれば、真の解答以外の他の解答を適切に除外することができる。
【0013】
上記一側面に係るパズル生成装置において、前記二次元コードは、公開鍵暗号方式における公開鍵とペアとなり、当該公開鍵を特定可能な秘密鍵であって、当該公開鍵暗号方式に基づく電子暗号通貨における送金先及び出金元となる公開アドレスであって、前記公開鍵から生成される公開アドレスを出金元とする取引の電子署名に利用される秘密鍵を格納してもよい。当該構成によれば、各部分領域に対して生成されたお絵かきロジックの全てを解いたプレイヤに電子暗号通貨における取引の電子署名に利用可能な秘密鍵を与えることができる。
【0014】
なお、上記各形態に係るパズル生成装置の別の態様として、本発明の一側面は、以上の各構成を実現する情報処理方法であってもよいし、プログラムであってもよいし、このようなプログラムを記憶した、コンピュータ等が読み取り可能な記憶媒体であってもよい。ここで、コンピュータ等が読み取り可能な記憶媒体とは、プログラム等の情報を、電気的、磁気的、光学的、機械的、又は、化学的作用によって蓄積する媒体である。
【0015】
例えば、本発明の一側面に係るパズル生成方法は、コンピュータが、二次元コードを取得するステップと、取得された前記二次元コードを複数の部分領域に分割するステップと、マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成するステップと、前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解くステップと、前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定するステップと、生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるステップと、を実行する、情報処理方法である。
【0016】
また、例えば、本発明の一側面に係るパズル生成プログラムは、コンピュータに、二次元コードを取得するステップと、取得された前記二次元コードを複数の部分領域に分割するステップと、マトリクスに配置された複数のセル、並びに各行及び各列それぞれに連続的に塗りつぶすセルの数を示す数字表記により構成されたお絵かきロジックの問題であって、取得された前記二次元コードの対応する部分領域の絵が解答となるように前記数字表記に示される数が決定されたお絵かきロジックの問題を部分領域毎に生成するステップと、前記数字表記に示される数に従って前記セルを塗りつぶすことで、前記部分領域毎に生成された前記問題を解くステップと、前記問題を解いた結果に基づいて、生成された前記問題に、前記二次元コードの対応する部分領域の絵以外の絵が現れる他の解答が存在するか否かを判定するステップと、生成された前記問題に前記他の解答が存在する場合、取得された前記二次元コードの対応する部分領域の絵が現れる解答が一意に定まるように前記問題の一部のセルに答えを与えるステップと、を実行させるための、プログラムである。
【発明の効果】
【0017】
本発明によれば、二次元コードの絵が解答となるお絵かきロジックの問題を適切に生成することができる。
【図面の簡単な説明】
【0018】
図1図1は、従来技術の問題点を説明するための図である。
図2図2は、本発明が適用される場面の一例を模式的に例示する。
図3図3は、実施の形態に係るパズル生成装置のハードウェア構成の一例を模式的に例示する。
図4図4は、実施の形態に係るパズル生成装置のソフトウェア構成の一例を模式的に例示する。
図5図5は、実施の形態に係るパズル生成装置の処理手順の一例を例示する。
【発明を実施するための形態】
【0019】
以下、本発明の一側面に係る実施の形態(以下、「本実施形態」とも表記する)を、図面に基づいて説明する。ただし、以下で説明する本実施形態は、あらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。つまり、本発明の実施にあたって、実施形態に応じた具体的構成が適宜採用されてもよい。なお、本実施形態において登場するデータを自然言語により説明しているが、より具体的には、コンピュータが認識可能な疑似言語、コマンド、パラメータ、マシン語等で指定される。
【0020】
§1 適用例
まず、図2を用いて、本発明が適用される場面の一例について説明する。図2は、本実施形態に係るパズル生成装置1の適用場面の一例を模式的に例示する。図2に示されるとおり、本実施形態に係るパズル生成装置1は、与えられた二次元コード40からお絵かきロジックの問題50を生成するように構成されたコンピュータである。
【0021】
具体的には、パズル生成装置1は、二次元コード40を取得し、取得された二次元コード40を複数の部分領域41に分割する。続いて、パズル生成装置1は、各部分領域41にそれぞれ対応するお絵かきロジックの複数の問題50を生成する。お絵かきロジックの各問題50は、マトリクスに配置された複数のセル51、並びに各行及び各列それぞれに連続的に塗りつぶすセル51の数を示す数字表記52により構成される。パズル生成装置1は、取得された二次元コード40の対応する部分領域41の絵が解答となるように数字表記52に示される数が決定されたお絵かきロジックの問題50を部分領域41毎に生成する。
【0022】
次に、パズル生成装置1は、数字表記52に示される数に従ってセル51を塗りつぶすことで、部分領域41毎に生成された各問題50を解く。そして、パズル生成装置1は、各問題50を解いた結果に基づいて、生成された各問題50に、二次元コード40の対応する部分領域41の絵以外の絵が現れる他の解答が存在するか否かを判定する。生成された問題50に他の解答が存在する場合、パズル生成装置1は、取得された二次元コード40の対応する部分領域41の絵が現れる解答が一意に定まるように問題50の一部のセル51に答えを与える。
【0023】
以上のとおり、本実施形態では、取得された二次元コード40を複数の部分領域41に分割することで、生成される問題50に真の解答以外の他の解答が発生する確率を低減することができる。加えて、それでも他の解答が発生してしまった場合には、他の解答が成立しないように真の解答の一部をヒントとして与えることができる。そのため、本実施形態に係るパズル生成装置1によれば、二次元コード40の絵が解答となるお絵かきロジックの複数の問題50を適切に生成することができる。
【0024】
なお、図2の例では、二次元コード40は4つの部分領域41に分割されており、各部分領域41にそれぞれ対応する4つの問題50が生成されている。ただし、部分領域41の数及び問題50の数はそれぞれ、このような例に限定されなくてもよい。また、二次元コード40を分割する方法は、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。二次元コード40は、全ての部分領域41の寸法が一致するように分割されてもよいし、少なくとも一部の部分領域41の寸法が他の部分領域41の寸法と異なるように分割されてもよい。同様に、各問題50のマトリクスのセル51の数は、一致していてもよいし、一致していなくてもよい。
【0025】
§2 構成例
[ハードウェア構成]
次に、図3を用いて、本実施形態に係るパズル生成装置1のハードウェア構成の一例について説明する。図3は、本実施形態に係るパズル生成装置1のハードウェア構成の一例を模式的に例示する。
【0026】
図3に示されるとおり、本実施形態に係るパズル生成装置1は、制御部11、記憶部12、通信インタフェース13、入力装置14、表示装置15、及びドライブ16が電気的に接続されたコンピュータである。なお、図3では、通信インタフェースを「通信I/F」と記載している。
【0027】
制御部11は、ハードウェアプロセッサであるCPU(Central Processing Unit)、RAM(Random Access Memory)、ROM(Read Only Memory)等を含み、プログラム及び各種データに基づいて情報処理を実行するように構成される。記憶部12は、メモリの一例であり、例えば、ハードディスクドライブ、ソリッドステートドライブ等の補助記憶装置により構成される。本実施形態では、記憶部12は、パズル生成プログラム81等の各種情報を記憶する。
【0028】
パズル生成プログラム81は、二次元コード40からお絵かきロジックの問題50を生成するための情報処理(後述する図5)をパズル生成装置1に実行させるためのプログラムである。パズル生成プログラム81は、当該情報処理の一連の命令群を含む。詳細は後述する。
【0029】
通信インタフェース13は、例えば、有線LAN(Local Area Network)モジュール、無線LANモジュール等であり、ネットワークを介した有線又は無線通信を行うためのインタフェースである。パズル生成装置1は、この通信インタフェース13により、他の情報処理装置との間でネットワークを介したデータ通信を行い、二次元コード40を取得したり、生成されたお絵かきロジックの問題50を提供したりすることができる。なお、ネットワークの種類は、例えば、インターネット、無線通信網、移動通信網、電話網、専用網等から適宜選択されてよい。
【0030】
入力装置14は、例えば、マウス、キーボード等の入力を行うための装置である。また、表示装置15は、出力装置の一例であり、例えば、ディスプレイである。オペレータは、入力装置14及び表示装置15を介して、パズル生成装置1を操作することができる。なお、表示装置15は、タッチパネルディスプレイであってもよい。この場合、入力装置14は省略されてもよい。
【0031】
ドライブ16は、例えば、CDドライブ、DVDドライブ等であり、記憶媒体91に記憶されたプログラムを読み込むためのドライブ装置である。ドライブ16の種類は、記憶媒体91の種類に応じて適宜選択されてよい。上記パズル生成プログラム81は、この記憶媒体91に記憶されていてもよい。
【0032】
記憶媒体91は、コンピュータその他装置、機械等が記録されたプログラム等の情報を読み取り可能なように、当該プログラム等の情報を、電気的、磁気的、光学的、機械的又は化学的作用によって蓄積する媒体である。パズル生成装置1は、この記憶媒体91から、上記パズル生成プログラム81を取得してもよい。
【0033】
ここで、図3では、記憶媒体91の一例として、CD、DVD等のディスク型の記憶媒体を例示している。しかしながら、記憶媒体91の種類は、ディスク型に限定される訳ではなく、ディスク型以外であってもよい。ディスク型以外の記憶媒体として、例えば、フラッシュメモリ等の半導体メモリを挙げることができる。
【0034】
なお、パズル生成装置1の具体的なハードウェア構成に関して、実施形態に応じて、適宜、構成要素の省略、置換及び追加が可能である。例えば、制御部11は、複数のハードウェアプロセッサを含んでもよい。ハードウェアプロセッサは、マイクロプロセッサ等で構成されてよい。記憶部12は、制御部11に含まれるRAM及びROMにより構成されてもよい。通信インタフェース13、入力装置14、表示装置15及びドライブ16の少なくともいずれかは省略されてもよい。パズル生成装置1は、例えば、スピーカ等の表示装置15以外の出力装置を更に備えてもよい。パズル生成装置1は、複数台のコンピュータで構成されてもよい。この場合、各コンピュータのハードウェア構成は、一致していてもよいし、一致していなくてもよい。また、パズル生成装置1は、提供されるサービス専用に設計された情報処理装置の他、デスクトップPC(Personal Computer)、タブレットPC等の汎用の情報処理装置、汎用のサーバ装置等であってもよい。
【0035】
[ソフトウェア構成]
次に、図4を用いて、本実施形態に係るパズル生成装置1のソフトウェア構成の一例を説明する。図4は、本実施形態に係るパズル生成装置1のソフトウェア構成の一例を模式的に例示する。
【0036】
パズル生成装置1の制御部11は、記憶部12に記憶されたパズル生成プログラム81をRAMに展開する。そして、制御部11は、RAMに展開されたパズル生成プログラム81をCPUにより解釈及び実行して、各構成要素を制御する。これによって、図4に示されるとおり、本実施形態に係るパズル生成装置1は、コード取得部111、問題生成部112、問題解答部113、重解判定部114、及びヒント付与部115をソフトウェアモジュールとして備えるコンピュータとして動作する。すなわち、本実施形態では、パズル生成装置1の各ソフトウェアモジュールは、制御部11(CPU)により実現される。
【0037】
コード取得部111は、二次元コード40を取得する。問題生成部112は、取得された二次元コード40を複数の部分領域41に分割する。そして、問題生成部112は、マトリクスに配置された複数のセル51、並びに各行及び各列それぞれに連続的に塗りつぶすセル51の数を示す数字表記52により構成されたお絵かきロジックの問題50であって、取得された二次元コード40の対応する部分領域41の絵が解答となるように数字表記52に示される数が決定されたお絵かきロジックの問題50を部分領域41毎に生成する。
【0038】
問題解答部113は、数字表記52に示される数に従ってセル51を塗りつぶすことで、部分領域41毎に生成された各問題50を解く。重解判定部114は、各問題50を解いた結果に基づいて、生成された問題50に、二次元コード40の対応する部分領域41の絵以外の絵が現れる他の解答が存在するか否かを判定する。ヒント付与部115は、生成された問題50に他の解答が存在する場合に、取得された二次元コード40の対応する部分領域41の絵が現れる解答が一意に定めるように問題50の一部のセル51に答えを与える。本実施形態では、ヒント付与部115は、問題50におけるマトリクスの中央領域55に存在する一部のセル51に答えを与えることができる。
【0039】
パズル生成装置1の各ソフトウェアモジュールに関しては後述する動作例で詳細に説明する。なお、本実施形態では、パズル生成装置1の各ソフトウェアモジュールがいずれも汎用のCPUにより実現される例について説明している。しかしながら、以上のソフトウェアモジュールの一部又は全部が、1又は複数の専用のハードウェアプロセッサにより実現されてもよい。また、パズル生成装置1のソフトウェア構成に関して、実施形態に応じて、適宜、ソフトウェアモジュールの省略、置換及び追加が行われてもよい。
【0040】
§3 動作例
次に、図5を用いて、パズル生成装置1の動作例について説明する。図5は、本実施形態に係るパズル生成装置1の処理手順の一例を例示する。以下で説明するパズル生成装置1の処理手順は、本発明の「パズル生成方法」の一例である。ただし、以下で説明する処理手順は一例に過ぎず、各処理は可能な限り変更されてもよい。また、以下で説明する処理手順について、実施の形態に応じて、適宜、ステップの省略、置換、及び追加が可能である。
【0041】
(ステップS101)
ステップS101では、制御部11は、コード取得部111として動作し、二次元コード40を取得する。制御部11は、二次元コード40を生成することで、当該二次元コード40を取得してもよい。あるいは、制御部11は、他のコンピュータにより生成された二次元コード40を、例えば、ネットワーク、記憶媒体91等を介して取得してもよい。二次元コード40の生成には、公知の符号化方法が用いられてよい。二次元コード40のデータ形式は、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、二次元コード40は、JPEG、GIF、PNG、ビットマップ等の画像データとして得られてもよいし、HTML、CSS等の構造化文書のデータとして得られてもよい。
【0042】
二次元コード40の種類、及び二次元コード40に格納される情報はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜選択されてよい。例えば、二次元コード40は、QRコード(登録商標)等のマトリックス式であってもよく、PDF417等のスタック式であってもよい。また、二次元コード40に格納される情報は、例えば、公開鍵暗号方式における公開鍵とペアとなり、当該公開鍵を特定可能な秘密鍵であって、当該公開鍵暗号方式に基づく電子暗号通貨における送金先及び出金元となる公開アドレスであって、当該公開鍵から生成される公開アドレスを出金元とする取引の電子署名に利用される秘密鍵であってもよい。
【0043】
電子暗号通貨とは、電子署名を利用して取引を行う仮想的な通貨であり、例えば、Bitcoin、Litecoin、Monacoin、Peercoin、Namecoin、Quarkcoin、Mastercoin、Ripplecoin、Megacoin等である。公開鍵暗号方式に基づく電子暗号通貨では、公開鍵及び秘密鍵の鍵ペアが発行される。また、発行された公開鍵から公開アドレスが生成される。この公開アドレスは、銀行の口座番号に例えられることがあり、電子暗号通貨の送金先及び出金元を示すアドレスとして活用される。一方、秘密鍵は、公開アドレスを出金元とする取引の電子署名に利用される。
【0044】
電子暗号通貨の取引はP2P(Peer-to-Peer)ネットワークの2つのノード間で行われ、その取引情報はP2Pネットワーク内の各ノードにブロードキャストされて共有される。これにより、P2Pネットワーク上において、分散型データベースである取引履歴データベースが形成され、電子暗号通貨の取引履歴が保存される。二次元コード40には、このような電子暗号通貨の取引の電子署名に利用可能な秘密鍵が格納されてよい。二次元コード40を取得すると、制御部11は、次のステップS102に処理を進める。
【0045】
(ステップS102)
ステップS102では、制御部11は、問題生成部112として動作し、取得された二次元コード40を複数の部分領域41に分割する。生成する部分領域41の数及び各部分領域41の寸法はそれぞれ、特に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。全ての部分領域41の寸法が同じであってもよいし、少なくとも一部の部分領域41の寸法が他の部分領域41の寸法と異なってもよい。制御部11は、例えば、4等分、9等分等のように二次元コード40を等分に分割することで、寸法の統一された複数の部分領域41を生成してもよい。二次元コード40を複数の部分領域41に分割すると、制御部11は、次のステップS103に処理を進める。
【0046】
(ステップS103)
ステップS103では、制御部11は、問題生成部112として動作し、制御部11は、対応する部分領域41の絵が解答となるように数字表記52に示される数が決定されたお絵かきロジックの問題50を部分領域41毎に生成する。これにより、制御部11は、生成された各部分領域41にそれぞれ対応するお絵かきロジックの複数の問題50を生成する。
【0047】
二次元コード40は、マトリクスに配置された複数のマスにより構成され、複数のマスは、コード部分のマス及び空白のマスを含む。そこで、生成方法の一例として、制御部11は、二次元コード40の各部分領域41にそれぞれ対応するセル51の複数のマトリクスを生成し、各部分領域41の各マスをマトリクスの各セル51に対応付けてよい。次に、制御部11は、各マトリクスにおいて、コード部分のマスを塗りつぶすセル51に設定するのに対して、空白のマスを塗りつぶさないセルに設定してもよい。そして、制御部11は、各マトリクスにおいて、各行及び各列それぞれに沿って、塗りつぶすセルに設定されたセルの数をカウントすることで、数字表記52に示す数を決定する。これにより、制御部11は、対応する部分領域41の絵が解答となるように数字表記52に示される数が決定されたお絵かきロジックの問題50を部分領域41毎に生成することができる。
【0048】
なお、各部分領域41に対応するお絵かきロジックの問題50を生成する方法は、このような例に限定されなくてもよく、実施の形態に応じて適宜決定されてよい。各問題50を生成する方法には、所望の絵からお絵かきロジックの問題を生成する公知の方法が採用されてよい。お絵かきロジックの問題50を部分領域41毎に生成すると、制御部11は、次のステップS104に処理を進める。
【0049】
(ステップS104)
ステップS104では、制御部11は、問題解答部113として動作し、数字表記52に示される数に従ってセル51を塗りつぶすことで、部分領域41毎に生成された各問題50を解く。
【0050】
各問題50を解くためのアルゴリズムは、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。お絵かきロジックでは、解くための様々な定石が知られている。定石の一例として、列又は行において、答えが一意に定まるケースが存在する。答えが一意に定めるケースとは、数字表記52に示される数字が「0」であるケース、数字表記52に示される数字が列又は行のセル51の数と一致するケース、及び数字表記52に複数の数字が示される場合に、各数字に応じて連続的に塗りつぶすセル51の群の間に1つの塗りつぶさないセル51を配置すると仮定したときに、塗りつぶすセル51と塗りつぶさないセル51との合計が列又は行のセル51の数と一致するケースである。このような場合、列又は行において、塗りつぶす又は塗りつぶさないセル51を一意に決定することができる。また、その他の定石の一例として、列又は行において、塗りつぶすセル51の配置パターンが複数存在し、かつ全ての配置パターンで共通に塗りつぶされるセル51が存在する場合、そのセル51は塗りつぶされるものとして決定することができる。
【0051】
これらの定石に基づいて、お絵かきロジックを解くためのアルゴリズムが設定されてもよい。そして、制御部11は、設定されたアルゴリズムを利用して、部分領域41毎に生成された各問題50を解いてもよい。部分領域41毎に生成された各問題50を解くと、制御部11は、次のステップS105に処理を進める。
【0052】
(ステップS105)
ステップS105では、制御部11は、重解判定部114として動作し、各問題50を解いた結果に基づいて、生成された問題50に、二次元コード40の対応する部分領域41の絵以外の絵が現れる他の解答が存在するか否かを判定する。数字表記52に示される数に適合する複数の解答パターンが存在する場合、生成された問題50には、対応する部分領域41の絵以外の絵が現れる他の解答が存在する。そのため、この場合、制御部11は、生成された問題50に他の解答が存在すると判定する。一方、数字表記52に示される数に適合する解答パターンが一意である場合、生成された問題50に他の解答は存在しない。そのため、この場合、制御部11は、生成された問題50には他の解答が存在しないと判定する。各問題50に対する判定が完了すると、制御部11は、次のステップS106に処理を進める。
【0053】
(ステップS106)
ステップS106では、制御部11は、ステップS105の判定結果に応じて、処理の分岐先を決定する。ステップS105において、生成された複数の問題50のうちの少なくともいずれかの問題50に他の解答が存在すると判定した場合、制御部11は、次のステップS107に処理を進める。一方、ステップS105において、全ての問題50に他の解答が存在しないと判定した場合、制御部11は、ステップS107の処理を省略して、本動作例に係る処理を終了する。
【0054】
(ステップS107)
ステップS107では、制御部11は、ヒント付与部115として動作し、生成された問題50に他の解答が存在する場合に、取得された二次元コード40の対応する部分領域41の絵が現れる解答が一意に定めるように問題50の一部のセル51に答えを与える。すなわち、制御部11は、他の解答が存在しなくなるように問題50の一部のセル51に答えを与える。
【0055】
答えを与えることには、塗りつぶすセル51を示すこと、及び塗りつぶさないセル51を示すことが含まれてよい。答えを与えるセル51の数は、特に限定されなくてもよく、実施の形態に応じて適宜設定されてよい。例えば、制御部11は、1又は複数個のセル51に答えを仮に与えた上で、対象の問題50を再度解く。問題50を解く方法は、ステップS104と同様であってよい。その結果、他の解答が存在しなくなった場合には、制御部11は、仮に答えを与えたセル51を、答えを与えるセル51として決定する。一方、他の解答が存在する場合には、制御部11は、仮に答えを与えるセル51の数を増やし、他の解答が存在しなくなるまで上記処理を繰り返す。これにより、制御部11は、他の解答が存在しなくなるように答えを与えるセル51を決定することができる。
【0056】
答えを与えるセル51の場所は、適宜決定されてよい。マトリクスの中央領域55は、端部領域に比べて、連続的に塗りつぶすセル51の並びに対して高い影響度を有している。そこで、制御部11は、問題50におけるマトリクスの中央領域55に存在する一部のセル51に答えを与えてもよい。これにより、真の解答以外の他の解答を適切に除外することができる。なお、中央領域55は、マトリクスの中央に位置し、少なくとも1つのセル51を含む。この中央領域55は、マトリクスの完全な中央に位置していなくてもよく、行方向及び列方向の少なくとも一方にやや偏っていてもよい。他の解答が存在しなくなるように一部のセル51に答えを与えると、制御部11は、本動作例に係る処理を終了する。
【0057】
本動作例に係る一連の処理により生成された各問題50は、プレイヤに適宜提供されてよい。例えば、各問題50は、ウェブページに掲載されてもよいし、紙媒体等に印刷されてもよい。また、例えば、各問題50は、電子メール等でプレイヤに送信されてもよい。プレイヤは、二次元コード40に対して設定された全ての問題50を解くことで、当該二次元コード40を取得することができる。この二次元コード40には、公開鍵暗号方式に基づく電子暗号通貨における電子署名に利用される秘密鍵が格納されていてもよい。この場合、全ての問題50を解いたプレイヤのみに、当該秘密鍵を提供することができる。当該プレイヤは、取得した秘密鍵を利用して、ペアの公開鍵から生成された公開アドレスを出金元とする取引を行うことができる。
【0058】
なお、各問題50をウェブページで提供する場合、解答である二次元コード40が画像データとして与えられていると、各問題50を解いたプレイヤにより、解答である二次元コード40を示す画像データがウェブページから抜き取られ、拡散される恐れがある。そのため、各問題50をウェブページで提供する場合には、二次元コード40は、そのような拡散のし難いスタイルシート(CSS)、HTML等の構造化文書のデータとして与えられているのが好ましい。
【0059】
[特徴]
以上のとおり、本実施形態では、ステップS102の処理により、取得された二次元コード40を複数の部分領域41に分割することで、生成される問題50に真の解答以外の他の解答が発生する確率を低減することができる。加えて、それでも他の解答が発生してしまった場合には、ステップS107の処理により、他の解答が成立しないように真の解答の一部をヒントとして与えることができる。そのため、本実施形態によれば、二次元コード40の絵が解答となるお絵かきロジックの複数の問題50を適切に生成することができる。
【0060】
§4 変形例
以上、本発明の実施の形態を詳細に説明してきたが、前述までの説明はあらゆる点において本発明の例示に過ぎない。本発明の範囲を逸脱することなく種々の改良や変形を行うことができることは言うまでもない。例えば、以下のような変更が可能である。なお、以下では、上記実施形態と同様の構成要素に関しては同様の符号を用い、上記実施形態と同様の点については、適宜説明を省略した。以下の変形例Sは適宜組み合わせ可能である。
【0061】
上記実施形態では、二次元コード40には、公開鍵暗号方式に基づく電子暗号通貨における電子署名に利用される秘密鍵が格納されていてもよい。しかしながら、二次元コード40に格納される情報は、このような例に限定されなくてもよい。二次元コード40には、あらゆる種類の情報が格納されてよい。例えば、二次元コード40には、画像データ、音楽データ等のコンテンツを提供するためのURLが格納されていてもよい。また、例えば、二次元コード40には、ギフトコード、メッセージ等の対象者に提供する情報そのものが格納されてもよい。
【0062】
また、上記実施形態では、ステップS107において、制御部11は、問題50におけるマトリクスの中央領域55に存在する一部のセル51に答えを与えてもよい。しかしながら、答えを与える場所は、このような例に限定されなくてもよい。例えば、制御部11は、マトリクスの端部領域に存在する一部のセル51に答えを与えてもよい。
【符号の説明】
【0063】
1…パズル生成装置、
11…制御部、12…記憶部、13…通信インタフェース、
14…入力装置、15…表示装置、16…ドライブ、
111…コード取得部、112…問題生成部、
113…問題解答部、114…重解判定部、
115…ヒント付与部、
40…二次元コード、41…部分領域、
50…(お絵かきロジックの)問題、
51…セル、52…数字表記、
81…パズル生成プログラム、91…記憶媒体
図1
図2
図3
図4
図5