自分自身についての素早い背景。これは初めてのPHPでのコーディングです。私はコンピュータ情報システム学位を持ち、大学でC++、VB、Cobol、Javaを学んだことがあります(約15年前)。私がこれを学ぶと、何かが私に戻ってきています。乱数のグループを生成する
私はトレーディングカードゲームのカードの無作為化パックのオープンをシミュレートしようとしています。最終的な結果は4ページを印刷することになります。各ページには12枚のカード番号とそのカードに関するすべての情報が記載されます。
ステップ1: は異なる範囲から180個の乱数を生成する。ここ
は私が行う上で計画していたものです。各数字はゲーム内のカードを表します。
- 範囲1 = 35から74(116の番号)
- 範囲2 = 75から106(46の番号)
- 範囲3 = 107から134(16の番号、重複なし)
- 範囲4 = 135から142(2つの数字、重複なし)
ステップ2: は180個の数字を取り、90ペアにそれらを打破します。
ステップ3: 90ペアから、4ペアの6ペアに分割します。
ステップ4: 6組の4組から、各番号のカード情報をリストし、各セットごとに1つの印刷可能な4ページを作成します。
私は180個の乱数を作成しています。私はまだユニークな数字を手に入れています。私は必要な数の配列を作成しようとしましたが、それらのどれも動作しません。ここで私が必要とする180の数字を生成する最後の作業コードですが、範囲3と4は重複を許さないように修正する必要があります。
私は現在、このコード化されている方法は、単に画面に数字を表示します。それらを配列に格納する必要がありますか?私はちょうど間違った方法に完全に取り組んでいますか?
<?php
// generate 116 common cards
echo "Commons: " . '<br />';
for ($commonfeed = 0; $commonfeed < 116; $commonfeed++) {
echo mt_rand(35, 74). '<br />';
}
// generate 46 uncommon cards
echo "Uncommons: " . '<br />';
for ($uncommonfeed = 0; $uncommonfeed < 46; $uncommonfeed++) {
echo mt_rand(75, 106). '<br />';
}
// generate 16 rare cards
echo "Rares: " . '<br />';
for ($rarefeed = 0; $rarefeed < 16; $rarefeed++) {
echo mt_rand(107, 134). '<br />';
}
// generate 2 super rare cards
echo "Super Rares: " . '<br />';
for ($superrarefeed = 0; $superrarefeed < 2; $superrarefeed++) {
echo mt_rand(135, 142). '<br />';
}
?>
ませ本当にわからない私あなたのアルゴリズムは、行うことになっているもの、特にどのようなペアのセットに分解あなたが最初の範囲からランダムな数値を一意にすることを望むならば、 'range'関数で始まり、得られた配列をシャッフルし、最初のx要素を取り出すことをお勧めしますそれ。 – CBroe
90ペア(180枚)を6組4組に分割するにはどうしますか? 6組= 12枚、4組を掛けて48枚のカードを得る。 – hummingBird
申し訳ありませんが、私は明らかにすべきでした。上記のコードはステップ1にすぎません。これは、カードボックスに入っている180枚のカードを作成します。ステップ2はそれらを2のパックに分ける。ステップ3はパックの製図をシミュレートする。最後に、はい、48枚のカードが選択されます。 180枚のカードはすべて使用されません。これは、2人のプレーヤーのドラフトをシミュレートすることになっています。最終的には4または6に拡張したいと思っています。 – DigitalFirefly