プログラミングによってボードゲーム用のツールを作れないかと思い、本日の朝に思いついたものを実現化しました。
「コードネーム」というボードゲームをプレーする際に使用するものをプログラミングで作成してみました。
「コードネーム」とは
あなたはボードゲームの「コードネーム」をご存じでしょうか?
協力して味方のスパイを当てていくという強力型ボードゲームです。
僕も所有していて、以前の会社の同僚や、妻のご家族とプレーしたときにとても盛り上がったゲームです。
コードネームはいろんな種類が出ていまして、どれを買っても楽しめること間違いなしです!
ルールはこちらのもぎのボードゲームブログさんがわかりやすく解説していましたので、記載しておきます。 よろずメモでもいつかルール紹介ページや動画を作成していこうと思います。
『コードネーム (Codenames) ルール概要』
「コードネーム」 は2 チームに分かれてスパイマスターのヒントを頼りに味方のスパイを当てるゲームです。ルールの概要を紹介します。ゲーム自体は、英語版が CGE…
プログラミングでツールを作成
今回も僕の普段仕事で使用しているPHPを使用してのプログラミングです。
作るものはコードネームに使用する25の言葉カードとそれをグループ分けするカードを作りたいと考えました。
フリーワード25枚と赤チーム(先行として)9枚 青チーム8枚 市民7枚 暗殺者1枚 をランダムで選び配置するツールです。
実際に作成したのがこちらです。
今回はコードは載せませんが、考え方としては下記のステップを踏みました。
① 1~25の値を持つ配列をセット
② 配列から赤グループになるものの数字をランダムで9個取得し配列にセット
③ 元配列から赤数字を削除
④ ③の配列から青グループ数字をランダムで8個取得してセット
⑤ 再度全数字配列から青数字を削除
⑥ 暗殺者用数字を1つランダムで決定 (市民は残りの数字を使えばいいのでセット不要)
⑦ 元配列から暗殺者数字を削除
⑧ それぞれのマス目の色をつけるための条件をforeachで回しながら設定
⑨フリーワードを配列にして用意 & そこから25個取得する
⑩ テーブルを作成していく処理で⑨で作成したフリーワードをセットしながら、⑧で設定した条件に応じてマスの色を変えていく
② 配列から赤グループになるものの数字をランダムで9個取得し配列にセット
③ 元配列から赤数字を削除
④ ③の配列から青グループ数字をランダムで8個取得してセット
⑤ 再度全数字配列から青数字を削除
⑥ 暗殺者用数字を1つランダムで決定 (市民は残りの数字を使えばいいのでセット不要)
⑦ 元配列から暗殺者数字を削除
⑧ それぞれのマス目の色をつけるための条件をforeachで回しながら設定
⑨フリーワードを配列にして用意 & そこから25個取得する
⑩ テーブルを作成していく処理で⑨で作成したフリーワードをセットしながら、⑧で設定した条件に応じてマスの色を変えていく
こちらの工程を踏んで作成し、更新するごとにフリーワードと、色の配置が変化する表ができました。
まとめ
ボードゲームのツールや、ルールをプログラミングで表現するのは面白いので今後もどんどん作っていきたいと思います。