2011-07-22 16 views
0

私はプログラミングに全く触発されておらず、少なくとも2時間以上これを苦労してきました。それは単に5枚のカードをプレイヤーに渡すだけです。これは私が持っているコードです:forループの値を配列に格納するにはどうすればよいですか?

<?php 
//setting up arrays 
$cardLocation = array(); 
$suits = array("Hearts", "Diamonds", "Spades", "Clubs"); 
$ranks = array("Ace", 2, 3, 4, 5, 6, 7, 8, 9, 10, "Jack","Queen", "King"); 

//filling the deck 
for($rank=0; $rank<13; $rank++){ 
    for($suit=0; $suit<4; $suit++){ 
    $cardLocation[$rank][$suit] = "deck"; 
    } 
} 

//dealing the cards to a player 
for($i=0; $i<5; $i++){ 

$duplicate = true; 

while($duplicate){ 
    $suit = rand(1, 4); 
    $rank = rand(1, 13); 
    if($cardLocation[$rank][$suit] == "deck"){ 
     $cardLocation[$rank][$suit] = "player"; 
     $duplicate = false; 

    } 
    } 
} 

?> 

私は配列にするループの各値を格納し、それをプリントアウトする方法を把握しようとしています。いくつかのアイデアがありましたが、すべてが失敗しました。どんな援助も歓迎されるだろう。

+0

ビットofftopic: 'foreach'ループをチェックすることをお勧めします。基本的には配列の各値に対してループを実行するので、後で配列を変更する場合には長さを制限する必要はありません。加えて、書くのが簡単で簡単です。 'foreach($ ranks as $ value)'を試してみてください。 – switz

答えて

0

のようなものについてはどう:

$playerCards = array(); 

... 
for ($i=0; $i<5; $i++) { 

... 
    $playerCards[$i]["rank"] = $rank; 
    $playerCards[$i]["suit"] = $suit; 
... 
} 
1

私は2次元配列が要件であることをわからないんだけど、そうでない場合は、このような何か考えることができます:

//setting up arrays 
$suits = array('Hearts', 'Diamonds', 'Spades', 'Clubs'); 
$ranks = array('Ace', 2, 3, 4, 5, 6, 7, 8, 9, 10, 'Jack','Queen', 'King'); 

$deck = array(); 
foreach ($suits as $suit) { 
    foreach ($ranks as $rank) { 
     $deck[] = $rank . ' of ' $suit; 
    } 
} 

$playerHand = array(); 
for ($i=0; $i<5; $i++) { 
    $card = array_rand($card); // choose a random card 
    $playerHand[] = $deck[$card]; // add to the end of the player hand 
    unset($deck[$card]);   // prevent duplicate cards being dealt 
} 

foreach ($playerHand as $playerCard) { 
    echo $playerCard . '<br />'; 
} 

// just by the way a useful way to debug arrays is like this: echo '<pre>' . print_r($playerHand,true) . '</pre>'; 
関連する問題