2014-02-11 2 views
1

Я сделал карточную игру, используя PHP, и все, что осталось сейчас, состоит в том, что вместо эха, 10, 3, Queen, King, например, он должен повторять случайный Король, когда я рисую короля. Я не знаю, как это должно быть сделано.echo Соответствующее изображение с использованием массива

В настоящее время у меня есть эта функция, чтобы показать руку игрока и дилера (это один для дилера):

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

Первое эхо отзовется, что находится в крупье его рука с помощью текста, Как 10, Королева, Туз. Например. И эхо под этим - эхо, которое выведет 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' 
); 

Я признателен за любую помощь или толчок в правильном направлении! Заранее спасибо!

EDIT: случаи карты:

// 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; 
} 
+0

Вы можете уточнить немного - руку дилера в '$ _SESSION [«dealer_pile»]' карты (а 10), но не указывать костюм (10 сердец)? Вы хотите случайным образом выбирать из изображений, приводящих к случайному костюму? –

+0

Например (игра BlackJack btw). Если я нажму на старт, он даст мне 2 карты и дилера 1, который, например, 2, генерируемый случайным образом из вышеупомянутого массива. Но вместо 'Echo 'Two',' он должен повторять случайное одно. Надеюсь, это все прояснит! –

+0

Он проясняет, что вы просите, но вы учитываете удаление этой карты + карточный костюм из колоды? Если вы выбираете случайным образом, возможно, вы оба получите ту же карточку и костюм (если я не знаю, как играть в Black Jack (многопалубный?)) –

ответ

2

я понял, вы хотели бы создать кучу cetrtain количества карт с их соответствующими «костюм» письмо. Как об использовании этой функции, чтобы создать случайную груду:

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" 
    } 
} 
*/ 

Этой функция создаст кучу $ предельных карт, карты будучи случайными в костюме и номере. Вы бы использовать его как это:

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:

+0

Спасибо за ваш ответ, но у меня также есть система корпусов для очков, которые идут с каждой карточкой, как бы я изменил ее так, чтобы она работала вместе с этими случаями? Я редактирую свой вопрос с делами. Кстати, на каждой карте есть «костюм», похожий на сердечник, кувшин лопаты, туз диамонтов. И т. Д. Они подсчитываются от 10, гнездо - 11, поэтому h11, d11 и т. Д. –

+0

Я вижу, что вы передаете $ current_total функции 'get_card_value'. Вам придется передать этот var в 'createRandomPile'. Это возможно? – Parziphal

+0

Не так ли? У меня есть случаи в функции, и насколько мне известно знание php, не очень легко переключить vars между функциями –

Смежные вопросы