与えられたキューブの数で数を割ります

ここで問題に直面したため、ソリューションパスは私のものとは異なったものになり、できれば別の言語になりました。



条件は非常に単純です。 ランダムな数とゲームブロックの指定された数があります。 各キューブの値は1〜6です。出力が各キューブの値の配列になるように、数値を分割する必要があります。 さらに、呼び出しごとに、これらのキューブの値はランダムでなければなりません。

例:

18と4のサイコロ。 回答:[6,3,5,4];



私の決定はカットとネタバレです...



非表示のテキスト
public function splitDices($number, $dicesCount) { $dices = []; if ($number > $dicesCount * 6 || $number < $dicesCount) throw new \Exception('Wrong number for split'); $j = 0; for ($i = $dicesCount - 1 ; $i > 0; $i--) { $diff = $number - $i * 6; if ($diff > 0) $dices[$j] = rand($diff, 6); else { if ($number - $i * 1 > 6) $max = 6; elseif ($number - $i * 1 <= 0) $max = $number; else $max = $number - $i * 1; $dices[$j] = rand(1, $max); } if ($i > 1) $number -= $dices[$j]; $j++; } $dices[$j] = $number - $dices[$j-1]; return $dices; }
      
      








All Articles