使用数组回显适当的图像

时间:2014-02-11 14:08:58

标签: php arrays

我使用PHP进行了一场纸牌游戏,而现在剩下的只是回声,而不是回声,10,3,Queen,King,例如,当我画一个国王时,它应该回应一个随机的国王。我真的不知道应该怎么做。

目前我有这个功能来显示玩家和经销商的手(这个是经销商):

function list_dealer_hand() {
    foreach($_SESSION["dealer_hand"] as $hand_item) {
         echo $hand_item . ', ';
         echo '<img src="cardImages/h10.jpeg" border=0> ';
    }
}

第一个回声将使用文本回应出经销商手中的内容,如10,Queen,Ace。例如。而在它下面的回声是一个回声,它将回应出h10.jpeg,在这种情况下是10个心脏。我在一个名为cardImages的文件夹中有所有西装的所有卡片。

有没有可能,例如,如果经销商手中有一个10,它会从图像文件夹中随机获取10个?

我目前用于卡片的阵列:

if(!isset($_SESSION["dealer_pile"])) $_SESSION["dealer_pile"] = array(
    'Jack', 'Queen', 'King', 'Ace', '10', '9', '8', '7', '6', '5', '4', '3', '2'
);

我感谢任何帮助或推动正确的方向!提前谢谢!

编辑:卡片案例:

// Case for each card, points
function get_card_value($card, $current_total) {
switch($card) {
    case "King":
    case "Queen":
    case "Jack":
    case "10":
        return 10;
    case "Ace":
       return ($current_total > 10) ? 1 : 11;
    case "9":
    case "8":
    case "7":
    case "6":
    case "5":
    case "4":
    case "3":
    case "2":
        return (int) $card;
   }
   return 0;
}

1 个答案:

答案 0 :(得分:2)

我知道你想要用相应的“套装”字母创建一堆卡片。如何使用此函数创建随机堆:

function createRandomPile($limit) {
    $suits = array('h', 's', 'd', 'c');
    $cards = array(
        'Jack', 'Queen', 'King', 'Ace',
        '10', '9', '8', '7', '6',
        '5', '4', '3', '2'

    );
    $pile  = array();

    foreach (range(1, $limit) as $i) {
        $card = $cards[array_rand($cards)];
        $suit = $suits[array_rand($suits)];
        $pile[] = array($card, $suit);
    }

    return $pile;
}

$pile = createRandomPile(2);
/*
Returns something like:

array(2) {
  [0]=>
  array(2) {
    [0]=>
    string(5) "Queen"
    [1]=>
    string(1) "c"
  }
  [1]=>
  array(2) {
    [0]=>
    string(1) "9"
    [1]=>
    string(1) "s"
  }
}
*/

该功能将创建一堆$ limit卡,这些卡随机和数字随机。你可以这样使用它:

foreach ($pile as $card) {
  $type = $card[0]; // King, 10, Ace, etc.
  $suit = $card[1]; // h, s, d or c.
  $image = $suit . $type; // hKing.
  // I don't know where $current_total comes from
  $value = get_card_value($type, $current_total);
}

我不知道这对你是否有用D: