はしのした


ゲーム企画

このページでは、これまでのぷよレイヤーズブリッジのイベント内企画で使用したプログラムのソースコードを公開しています。

  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: 日本.