ゲーム企画
[ぷよ橋アーカイブ]
このページでは、これまでのぷよレイヤーズブリッジのイベント内企画で使用したプログラムのソースコードを公開しています。
bingo for PLB
ビンゴゲームの抽選を行うプログラムです。ただし、通常のビンゴと異なり、チェックされたマスが縦横斜めに1列揃ったときではなく、チェックされたマスが上下左右に4個以上隣接したときに、ビンゴと判定します(だってぷよだし)。ビンゴが発生する確率もプログラム内で自動計算されるので、抽選が楽しくなります。
bingo.html の28~36行目にある設定項目を変更することで、カードの縦横のマス数や数字の個数などを変更できます。
- maxNumberPerColumn: 各列に何個の数字を割り当てるか。
- maxColumn: カードの縦横のマス数。事実上4か5のどちらか。
- maxFileIndex: 各列の数字に対応する画像を何枚用意しているか.通常は maxNumberPerColumn と同じ数を指定する。
- columnName: 各列に対応する文字。要素数 maxColumn の配列で指定する。
- columnColor: 各列に対応する文字の輪郭色。同様に、~Fore と ~Back はそれぞれ文字内部の色と影の色。
- colorIndices: 各数字の文字色をどの色にするか。columnName のインデックスで指定する。
- slotFrameColor: スロット部分の外枠の色。
bingo.html のあるディレクトリの下に img フォルダを作り、そこに 256 x 256 サイズの jpg または png 画像を置いておくと、番号の書かれたマスの背景としてその画像が表示されます。ファイル名は、columnName の文字 + 1~maxFileIndex の連番 としてください。例えば、columnName が P, L, B, 4 で、maxFileIndex が 10 であるとしたら、P1, P2, ..., P10, L1, L2, ..., L10, B1, B2, ..., B10, 41, 42, ..., 410 という名前のファイル名をつけてください。拡張子 jpg と png が混在していても構いません。
ビンゴ確率計算のアルゴリズムは、4 x 4 のカードを想定して作成した、適当なものです。そのため、5 x 5 のカードでも動くことは動きますが、計算にそれなりの時間がかかってしまいます。ご了承ください。
ライセンスは CC0 とします。すなわち、作者は可能な限り全ての権利を放棄します。
To the extent possible under law, Shimeji Sola has waived all copyright and related or neighboring rights to bingo for PLB. This work is published from: 日本.
COOL 24+24
とある有名メダルゲームにインスパイアされたデジタルカードゲームです。トランプのうち24枚のカードを、所定のルールに従って順番に出していきます。出せるカードがなくなるか、2度続けて全てのカードを出すことができたら、ゲームは終了します。
ゲームの操作はフルキーの1~4とEnterキーで行います。Enterキーでゲームを開始します。1~4のキーで対応するカードを場に出します。マウス・タッチ操作には対応していません。
詳しいゲームのルールは以下のとおりです。
- トランプのうち各スート6枚(9~A)の計24枚を使います
- ゲーム開始時はすべてのカードが山札となります
- 手札は最大4枚で、山札が残っている限り自動的に補充されます
- 最初の1枚は任意のカードを、2枚目からは最後に場に出したカードと同じスートまたは数字のカード(連結するカードといいます)を、手札から場に出すことができます
- 手札が残っている状態で場に出せるカードがなくなった場合はゲーム終了です
- すべてのカードを場に出せた場合は、1回に限り全てのカードを山札に戻し「2周目」を行います。
- 点数は以下の合計で計算します
- 基本点: 場に出せたカードの枚数に応じて、1周目では0~100点、2周目では100~1,000点
- ボーナス点: 途中で手札が以下の条件を満たした場合、条件を満たすたびに加点
- スートが全て同じ、かつ連番(ストレートフラッシュ): 50点
- 数字が全て同じ(フォーカード): 20点
- スートが全て同じだが連番でない(フラッシュ): 10点
- 2周目に進出した場合、1周目に獲得したものも含めた全てのボーナス点を5倍する
- 1周目に限り、それまでに場に出せたカードの枚数に応じて、最後に場に出したカードや現在場に出せるカードと連結するカードが山札から補充されやすくする補正がされています
- 補正倍率は(3.0 - 場に出せたカードの枚数 x 0.1)倍
点数テーブルは、game.js の定数を変更することによりカスタマイズできます。
- cardWinTable: 出したカードの枚数に応じた基本点
- handWinTable: 手札が条件を満たしたときのボーナス点
- handWinMulti: 2周目に入ったときのボーナス点の倍率加算
cool24.html のあるディレクトリの下に cards フォルダを作り、そこに 256 x 256 サイズの jpg または png 画像を置いておくと、カード下部にその画像が表示されます。また、128 x 128 サイズの jpg または png 画像を置いておくと、カード左上にスートを表す画像が表示されます。ファイル名は、カード画像は「スート名 + カードの数字」、スート画像は「スート名」としてください。デフォルトではスートは r, g, b, y の4種類、カードの数字は 9, 10, J, Q, K, A の4種類です。例えば、赤のエースに対応する画像には、rA.png などと名前をつけてください。拡張子 jpg と png が混在していても構いません。
ソースコードの上では、スートあたりのカード枚数(numNumbers)や手札の枚数(numHands)などをカスタマイズできそうに見えますが、固定の値を前提にハードコーディングしている部分も多いため、そのままでは正しく動きません。もっとわかりやすく言えば、ちょっとの変更ではとある有名メダルゲームのシミュレータにはなりません。ご了承ください。
ライセンスは CC0 とします。すなわち、作者は可能な限り全ての権利を放棄します。
To the extent possible under law, Shimeji Sola has waived all copyright and related or neighboring rights to COOL 24+24. This work is published from: 日本.