Quantcast
Channel: 円周率近似値の日に生まれて理系じゃないわけないだろ! - knifeのblog
Viewing all articles
Browse latest Browse all 5376

開発中パズルゲームの進捗状況

$
0
0

ちょっとネタバレ。



まだ開発段階だけど、これがゲームの初期画面。

ピタゴラスの定理で一番有名な3:4:5の直角三角形ですね。


このパズルゲームの基本操作は、12個ある点のいずれかをクリックすることで、
図形が変形していくというものです。

但し、変形するには、いくつかの条件を満たしている必要があります。

変形出来る例を上げてみます。



まず、2点をクリックする。
この2点のクリックする順番はどちらが先でも後でも良く、クリックされると二重丸になり、
2点が確定すると青い線が引かれています。



3点目をクリックすると、先にクリックした2点を固定して、3点目で糸をピンと張った状態にしようとします。



今回の3点のクリック操作で、3:4:5の直角三角形が3×3の正方形に変形されましたね。
この3点をクリックする操作を1手=1ctとして、その変形した図形の持つ様々なポテンシャルによって、ポイントが計算されます。

今回の図形は、ポイント=209715200000ptです。
赤い大きな文字は、この図形の面積を表しています。
隣り合った点と点の距離を10としています。

これで図形が変形されたわけですが、変形するには以下の変形条件があります。

変形条件1
最初の2点で変形前図形が分割される際、分割された面積が整数である。

変形条件2
最後の3点で変形後図形の面積が整数である。

今度は、最初の2点は同じでも、3点目のクリックする場所によっての挙動の違いを説明します。

初期状態の直角三角形において、二重丸の2点と、大黒丸の3点目で、どのように変形するのでしょうか。



このように、そもそもピンと張られているものの頂点を3点目にクリックした場合、



面積を減らすように頂点をピンと張って凹みます。
当然ですが、凹んだ頂点を3点目にすれば、面積を増やすように凸ります。



今度は、頂点ではない点を3点目にしてみると、



当然ですが、頂点の位置が変わりましたね。

では、どんな点を選んだとしても、面積さえ整数であれば変形するのかというと、実はそうではありません。

変形条件3
青線で分割された際、どちらか一方が三角形である。

これは、現状の面積が解っていて、マイナスされる面積と、プラスされる面積を容易に計算出来るからです。
180˚を超える角などが多くなると、面積の計算が面倒になるということでもあります。
数学的に出来ないわけではないが、複雑な図形の正確な面積は面倒です。


このような操作を繰り返すことで、初期状態の面積600の直角二等辺三角形から、様々な面積が整数の図形に変形してコレクションしていくパズルゲームです。

12個の点から2個の点を選ぶのは12C2=66
残りの10個の点から1個の点を選ぶのは10C1=10
よって、1手のパターンは66×10=660通りあることになります。


さて、操作画像でお気づきかとは思いますが、ptがマイナスになっていることがありますね。

これは、凸形は正数と凹形は負数ということにして、ptが正の場合のみ、つまり凸形の場合のみ、この図形の形状とctとptを保存出来ます。

保存したものからの再スタートは出来ません。

保存出来るのは、あくまでもセーブしたときの図形の角度情報と手数と面積だけです。
保存できるのは凸形のみで、途中に凹形が出てくることも多々あり、凹形は保存出来ないので、ミッシング・リンクとなります。

つまり、記憶を頼りに新しい形状を探すことになります。

全ての操作を動画や静止画などで保存していれば、同じルートで同じ形にたどり着けるでしょう。

そういうこともあって、動画なり、一連の静止画を並べると、それは完全なネタバレになってしまいますね。

保存した凸形の画像をSNS等に公開することは、全然OKというか、コレクションとなっているものはハッシュタグ付きでツイートしたり出来るようにしたいですね。


さて、様々なポテンシャルを持った図形を、出来るだけ少ない手数で集めていく。
それらのptの合計は、そのプレイヤーの評価の一つとなります。

高得点を上げるには、まったく同じ図形であっても、手数が少ないほうがより高得点となるようになっています。

但し、11手以上の手数では、同じ図形であれば、同じポイントとなります。

私が今のところ経験している最高得点は、



2016000000000pt=2兆160億ポイントです。

先の1手、面積900の正方形よりも高ポイントになっていることが、このゲームの重要な要素でもあるかと思っています。

10ct=10手掛かっているので、同型でも手数がもっと少なければポイントも高く、手数がもっと多ければポイントは低くなるので、もっと無駄な手を減らす方法を考えることになるかと思います。


他にも隠し条件として、







のように、12個の点だったものが、ある条件を満たす変形を行ったことによって、点の個数が減って、不可能だと思われていた面積400や面積100の正方形も作ることが出来ます。

画像から解る通り、面積900が1手、面積400が2手、面積100が4手となっていることからも、それほど難しくなく作り出すことが出来るかとは思いますので、隠し条件はあっさりと見破られるかとは思います。

正方形(全3種)の他にも、長方形(全6種)、菱形(10種?)、平行四辺形(44種?)、凧形(29種?)なども、コンプリート要素になりますが、菱形、平行四辺形、凧形などは、まだまだ私自身のやりこみが少なく、まだまだ可能性が十分にあるので、種類も増えることが予想されます。

個数が判明しているものは、コンプリートとして、プレイヤーの評価が上がる要素の一つとなります。


さて、このパズルゲームで作れたとして、最大角数の図形は十二角形です。
仮に、1辺が10の正十二角形だとしても、面積は1119.6…と無理数になって、このパズルゲームの性質上、面積は正の整数に限るので、最大でも1119、最小でも1ということになります。

実際は、そんなギリギリまで大きなものや小さなものは作れず、今のところ最大が1080、最小が28となっているが、どちらも記録更新する可能性はまだまだあるかと思われます。

コレクションの最大面積と最小面積の差も、プレイヤーの評価要素の一つとなります。
当然、差が大きいほど評価が高いということです。

当然、コレクション数も多い方が評価が高く、それらがより高得点である方が評価が高くなるようにしたいと考えています。


今考えている要素として、面積100、200、300、400、500、600、800、900、1000と凸形の図形を作り出すことは出来ているのですが、面積700が未だ作れずにいます。
凹形であれば、容易に面積700は作れますので、凸形でも見つかると信じて探してはいます。

こんな感じで、まだまだ未完成のパズルゲームなのですが、自分自身のテストプレイが足りていない状況といったところです。


まだまだやることが沢山あります。

今現在はHTML5+JavaScriptで開発していますが、ゆくゆくはAndroidスマホアプリにしたいですね。

そうなると、20年以上扱ってなかったJavaを使うことになるかとは思うんだけど、スマホアプリの開発環境の構築とか全くわからないので、誰からか教えを乞う必要がありそうです。


ではでは


Viewing all articles
Browse latest Browse all 5376

Trending Articles