パズルゲームのアルゴリズム
Posted: 2012年12月22日(土) 18:42
現在パズルゲームを製作中で、以下の状態に躓いています。
パズルゲームの規則
1.数種類の色のブロックが10x10でボードの上に存在する
2.上下左右に列(行)ごとブロックを動かすことができる
3.任意のブロックをクリックする事でブロックを消去できる
4.ブロックを消去すると、その上にあるブロックが落ちてくる
1、2、4の実装は問題なくできました。
そして3のブロックの消去なのですが
このブロックの消去も一定の条件を設けようと思ってます。
条件
・同じ色のブロックが複数並んでいる
・その複数のブロックが四角になっていること
・四角からはぶかれた同じ色のブロックは消さずに残す
以上です。
補足として、複数のブロックは四角になっていれば消せるので、
2x2、2x3、3x3...等、色々な四角に対応させたいです。
この四角になっていることを調べるためのアルゴリズムに苦戦しています。
地道に同じ色を探すようなアルゴリズムでは工夫が見られないので
繰り返しを用いた、できるだけ短いコードにしたいと思ってます。
何か良い方法はないでしょうか?
パズルゲームの規則
1.数種類の色のブロックが10x10でボードの上に存在する
2.上下左右に列(行)ごとブロックを動かすことができる
3.任意のブロックをクリックする事でブロックを消去できる
4.ブロックを消去すると、その上にあるブロックが落ちてくる
1、2、4の実装は問題なくできました。
そして3のブロックの消去なのですが
このブロックの消去も一定の条件を設けようと思ってます。
条件
・同じ色のブロックが複数並んでいる
・その複数のブロックが四角になっていること
・四角からはぶかれた同じ色のブロックは消さずに残す
以上です。
補足として、複数のブロックは四角になっていれば消せるので、
2x2、2x3、3x3...等、色々な四角に対応させたいです。
この四角になっていることを調べるためのアルゴリズムに苦戦しています。
地道に同じ色を探すようなアルゴリズムでは工夫が見られないので
繰り返しを用いた、できるだけ短いコードにしたいと思ってます。
何か良い方法はないでしょうか?