LoginSignup
1
0

More than 1 year has passed since last update.

[jQuery]ヤッツィを作った

Last updated at Posted at 2022-06-09

ヤッツィというゲームをブラウザでできるようにしてみた。
BGAでやればよくない?

【操作方法】
①「ダイスを振る」ボタンを押す(□□□□□に1~6の数がランダムに与えられる)
②ダイスを振りなおすかセクション(スコア)を決定するフェイズ
・スコアを決定する場合は「This Score」列のセルをクリックする
・ダイスを振りなおす場合は、ダイス(□)をクリックして選択した後、「ダイスを振る」ボタンを押す。
(ダイスを振りなおせるのは2回まで)
③上記を、全てのセクションが埋まるまで続ける(計13ラウンド)

See the Pen Yahtzee by yulianess23 (@yulianess23) on CodePen.

特に解説することもないですが、できるだけ判定を簡単に(わかりやすく)する工夫だけしたかった部分。

var dice = [];
var sum = 0; // ダイスの合計値
var vals = [0, 0, 0, 0, 0, 0, 0]; // 各目の個数
var pair = [0, 0, 0, 0, 0, 0]; // ペアの数
$(".dice").each(function(i, e) {
    var v = $(e).text();
    sum += parseInt(v);
    vals[v]++;
    dice.push(v);
});
$.each(vals, function(i, v) {
    pair[v]++;
});

最初はPHPでやってたけどCodepenで表示させるためにjavascript化したのでやや冗長。
PHPだと以下。

$sum = array_sum($dice);
$acv = array_count_values($dice);
$pair = [1=>0,2=>0,3=>0,4=>0,5=>0];
foreach ($acv as $v) $pair[$v]++;

また、ストレートの判定はパターン数が少ないのでソート&重複削除でパターンと直接比較する等。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0