0

だから私は言語にもっと慣れる方法として、この RPG ゲームを PHP で作っています。これまでのところ、私はかなり良いシステムを構築してきました。現在、お店の仕事をしています。変数を格納する配列を使用して、都市 (村、町、都市など) のサイズに応じて、各カテゴリ (武器、防具など) で一定量の商品を選択するようにしました。それはうまくいきました。

私が今やりたいことは、ショップで販売する可能性のある各アイテムのリストを作成し、ストアが販売するスロットごとにそれらのアイテムの 1 つをランダムに選択することです。たとえば、最小の都市サイズでは、店は 2 つの武器を販売しています。武器リストからランダムに 2 つの武器を選択してプレイヤーに表示します。このような「リスト」を保存する簡単な方法としてインクルードを使用してきたので、ゲームがインクルードによって提供されるリストから x 個のアイテムをランダムに選択して保存する方法を見つけるだけで済みます。配列内の変数。

アイテムをランダムに選んでも同じアイテムになることがないようにできれば、ボーナス ポイントです。(たとえば、アイテムを 2 つ選んで、そのアイテムが「鉄の剣」、「鋼の剣」、「龍の剣」などだった場合、「鉄の剣」と「鉄の剣」とは表示されません)

これまでの私のコードの抜粋です。

表示するアイテムの数を決定します。("Iron Sword"; が示されている場所は、変数が格納される場所です。これらは、投入されたダミー アイテムです。)

$Weapons = 2 * $citysize;
$Armor = 2 * $citysize;
$Misc = $citysize;

include 'weapons.php';

if ($Weapons == 2){
    $_SESSION['ShopWeapons'][0] = "Iron Sword";
    $_SESSION['ShopWeapons'][1] = "Everwood Staff";
} elseif ($Weapons == 4){
    $_SESSION['ShopWeapons'][0] = "Iron Sword";
    $_SESSION['ShopWeapons'][1] = "Everwood Staff";
    $_SESSION['ShopWeapons'][2] = "Steel Sword";
    $_SESSION['ShopWeapons'][3] = "Balsa Wand";
} elseif ($Weapons == 6){
    $_SESSION['ShopWeapons'][0] = "Iron Sword";
    $_SESSION['ShopWeapons'][1] = "Everwood Staff";
    $_SESSION['ShopWeapons'][2] = "Steel Sword";
    $_SESSION['ShopWeapons'][3] = "Balsa Wand";
    $_SESSION['ShopWeapons'][4] = "Steel Dagger";
    $_SESSION['ShopWeapons'][5] = "Balsa Bow";
}

店内の商品を見せる

echo $_SESSION['ShopWeapons'][0] . "<br>";
echo $_SESSION['ShopWeapons'][1] . "<br>";

if(($_SESSION["citysize"] == "town") || ($_SESSION["citysize"] == "city")){
    echo $_SESSION['ShopWeapons'][2] . "<br>";
    echo $_SESSION['ShopWeapons'][3] . "<br>";
}

if($_SESSION["citysize"] == "city"){
    echo $_SESSION['ShopWeapons'][4] . "<br>";
    echo $_SESSION['ShopWeapons'][5] . "<br>";
}

100万回よろしくお願いします

4

2 に答える 2

0

これは非常に簡単です。表示する前に武器配列からランダムなアイテムを選択すると、配列から削除されます。この方法では、別のランダムな武器を選択するときに、選択することはできません。

while NumberItems < MaxItems
    weapon = NextWeapon()
    RemoveWeapon( weapon )
    AddWeaponToStore( weapon )
    NumberItems++

DisplayStoreHtml()
于 2012-07-16T05:13:03.773 に答える
0

shuffle配列の順序をランダム化するために使用するのはどうですか?

于 2012-07-16T05:14:01.133 に答える