0

所以我用 PHP 制作这个 RPG 游戏是为了让自己更加熟悉这门语言。到目前为止,我已经建立了一个相当不错的系统。现在我在店里工作。我已经做到了,它通过使用数组存储变量,根据城市(村庄、城镇、城市等)的大小,在每个类别(武器、盔甲等)中选择一定数量的商品。这太棒了。

我现在要做的是列出我希望商店可能出售的每件商品,然后为商店将出售的每个插槽随机选择其中一件。例如,在最小的城市规模,商店出售两种武器。它会从武器列表中随机选择两把武器展示给玩家。我一直在使用包含作为一种简单的方法来存储这样的“列表”,所以我真正需要做的就是找到一种方法让游戏从包含提供的列表中随机选择 x 数量的项目并将其存储在数组中的一个变量。

如果您能够如此随机挑选物品,则奖励积分永远不会是相同的物品。(比如如果我们选择两个项目并且项目是“铁剑”、“钢剑”和“龙剑”之类的,它永远不会说“铁剑”和“铁剑”)

到目前为止,这是我的代码摘录。

确定要显示的项目数量。(显示“铁剑”的位置是存储变量的位置。这些是扔进去的虚拟物品。)

$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>";
}

提前一百万次谢谢你

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 回答