top of page
ティーマネジメント株式会社 Tmanagement
TM_ロゴ_決定分_ol2.png

Claris FileMakerで遊べるゲーム作ってみた 後編 1/2

  • 田中
  • 2024年9月12日
  • 読了時間: 4分

更新日:2024年10月24日

ree

こんにちは。ティーマネジメントの田中です。


こちらは後半記事 1/2となります。


前半記事で15パズルについての説明を行いました。

後半記事では、15パズルをどのようにFileMaker データベースで実現したかの考え方について、解説できればと思っています。

ご興味のある方はぜひご覧ください。


ゲームが遊べたらいい、という方は、前半記事の方にFileMakerファイルと、45日間の無料評価版FileMakerがダウンロードできる、Claris公式リンクをつけておりますので、前半記事をご覧ください。




マス番号とパネル

15パズルでは、16個のマスが必要になります。

まず、16個のマスに1~16までの番号をつけて、管理できるようにします。

これをマス番号とします。

ree

続いて、それぞれのマスについて、「行番号」と「列番号」を考えます。

ree

タテが行、ヨコが列です。


それぞれのマスについて、行番号と列番号を表にすると、

ree

このようになります。

行番号は、「マス番号を4で割った数から、切り上げた整数」

列番号は、「マス番号を4で割った余りの数(余りが0となる場合は4とする)」

という考え方で求めることができます。


この行番号と列番号は後の計算に使います。


次に、仮に1から15までのパネルを配置してみます。

これは、完成となる配置から規定回数ランダムに動かした配置なので、「詰み」の配置ではありません。

「詰み」となる配置についても、後に解説します。


説明用として作ったパネルの配置を使いましょう。

ree

正しい配置と、現在の番号について表に当てはめると、次のようになります。

ree

さて、ゲームをクリアするには、パネルを動かしていく必要があります。

つまり、今配置されているパネルの中で、「動かせるパネル」「動かせないパネル」が存在します。

ree

仮に配置した画像を見て頂くと分かるのですが、ここで動かせるのは「7」と「15」のパネルです。

ということは、マス番号でいうと「12」と「15」です。

空きマスとなるマス番号は「16」なので、

「16」が空いているときは、「12」「15」に配置されているパネルを、「16」に移動できる ということになります。



マスの選択とパネルの移動

先ほどの表に、「このパネルは移動することができるか」というステータスを設定してみます。

1と0の値で表します。1は可能、0は不可能です。

ree

マス番号が16に隣接するマス番号は、12 , 15 です。

隣接するマスは、行番号と列番号を使って、条件をつけることができます。

文章にしてみると、


①     空欄マス(16)と同じ行(4)にあり、列の値の差が1であること。

もしくは、

②     空欄マス(16)と同じ列(4)にあり、行の値の差が1であること。


です。


マス番号12について上記の条件を考えると、

空欄マスと同じ列(4)にあり、行の値の差は 4 - 3 = 1であることから、条件に当てはまります。


マス番号15について上記の条件を考えると、

空欄マスと同じ行(4)にあり、列の値の差は 4 - 3 = 1であることから、条件に当てはまります。


条件に当てはまったときは1 , 当てはまらないときは0として考えると、先ほどの表のようになります。



ユーザの操作を考える

スライドができるパネル、できないパネルを先ほどの表で示しました。

次に、ユーザの操作を考えます。

マス番号を選択して、空いているマスにスライドしますので、マス番号を選択したときにスクリプトを実行して、スクリプト引数としてはマス番号を設定しておけば、

選択したマスがスライドできる場合の処理、スライドできない場合の処理、という風に場合分けできます。


後は、この処理を繰り返していき、

正しい配置

ree

になっているか、判定すればOKです。


パズルを動かす方法と、ゲームクリアの判定について、実装方法はこれでよさそうです。

ゲームを始める前に、パネルをランダムに並べる必要があります。

これもスクリプトで行います。

次に、パネルの初期配置について考えていきます。


次回へ続きます… 次の記事へ (2024/10/24追記)  → Claris FileMakerで遊べるゲーム作ってみた 後編 2/2

CONTACT

お問い合わせ

滋賀県大津市別保三丁目11番32号

077-536-6330

平日10:00~18:00

労働者派遣事業 派 25-300477

有料職業紹介事業  25-ユ-300214 

問い合わせのご用件 必須項目

送信ありがとうございました

Copyright © ティーマネジメント株式会社 All Rights Reserved.

bottom of page