从列表中绘制一个随机变量?

时间:2012-07-16 05:08:53

标签: php arrays list variables random

所以我用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>";
}

提前一百万次谢谢你

2 个答案:

答案 0 :(得分:0)

这很容易。当您在显示武器阵列之前从武器阵列中选择一个随机物品时,将其从阵列中移除。这样当你去挑选另一种随机武器时,它就不是一个选择。

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

DisplayStoreHtml()

答案 1 :(得分:0)

如何使用shuffle随机化数组顺序?