2012-07-16 13 views
0

그래서이 언어로 더 익숙해 지도록 PHP로 RPG 게임을 만들고 있습니다. 지금까지 꽤 좋은 시스템을 구축했습니다. 지금 나는 가게에서 일하고있다. 나는 변수를 저장하기 위해 배열을 사용하여 도시 (마을, 마을, 도시 등)의 크기에 따라 각 카테고리 (무기, 갑옷 등)에서 일정량의 물건을 선택하도록했습니다. 그것은 대단한 일이다.리스트에서 임의의 변수를 그립니다.

내가 지금하고 싶은 것은 상점이 판매 할 가능성이있는 각 항목의 목록을 만든 다음 저장소가 판매 할 슬롯마다 해당 항목 중 하나를 임의로 선택하는 것입니다. 예를 들어, 가장 작은 도시 크기의 상점에서는 두 개의 무기를 판매합니다. 무작위로 무기 목록에서 두 개의 무기를 선택하여 플레이어를 표시합니다. 나는 이처럼 "목록"을 저장하는 쉬운 방법으로 include를 사용 했으므로, 정말로해야 할 일은 include가 제공하는 목록에서 임의로 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>"; 
} 

감사합니다 상점에서 항목을보기 전에 백만 번

+0

'$ indexes = array_rand ($ 배열, $ items_amount)' – Serjio

답변

0

이것은 매우 쉽습니다. 표시하기 전에 무기 배열에서 임의의 항목을 선택하면 배열에서 제거합니다. 이 방법으로 다른 무작위 무기를 선택하면 선택이 될 수 없습니다.

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

DisplayStoreHtml() 
+0

' weapon = NextWeapon()'<- 어떻게 임의입니까? :) – poncha

+0

그럴 경우 무작위 적이 아니기 때문에 .... weap 무기 = NextRandomWeapon() : P – sean

0

shuffle을 사용하여 배열 순서를 랜덤 화하는 것은 어떻습니까?

+0

흠 ...이 아이디어는 놀랍게도 작동 할 것입니다. 그러나 배열이 세션에 저장되어 있다면, 작업? – Zenox

+0

물론 차이점은 무엇입니까? '셔플 ($ _ 세션 [ 'ShopWeapons'])' – poncha

관련 문제