0
私は後でBlackJackカードゲームを作成する複数のクラスに分割するクラスがあります。私はデッキを作成し、正しく説明しました。私は私のメソッド "deal"でプレーヤー配列の出力に問題があります。出力には1人のプレーヤーしか表示されませんが、出力の配列は2つ戻されます。私のデッキから欠落しているカードの数は、4枚のカードを失っていることを示しています.2名のカードを2枚扱っているので意味があります。誰かが私の両方のプレーヤーに戻って、それぞれのカードの両方を表示するのを手伝ってもらえますか?私の配列の出力に問題があります
for($i = 0; $i < $number; $i++){
for($j = 0; $j < $numberOfPlayers; $j++){
$this->player[$j] = $this->cards[0]; // <--- fix me!
array_shift($this->cards);
}
}
その外側のループが再び周りになると、それだけでまっすぐに上書き:ここ
<?php
/* creating a deck of cards class to be used in a blackJack game*/
class Deck{
public $cards = array();
public $player = [];
//creates an instance of a deck of cards (works)
public function __construct(){
$values =array('2','3','4','5','6','7','8','9','10','J','Q','K','A');
$suits =array('Diamond','Club','Heart','Spade');
foreach ($suits as $suit) {
foreach($values as $value){
$this->cards[] = "$value of $suit's";
//$deck = $this->cards;
}
}
}
/*add more decks to increase number of total cards
in my array (works)*/
public function numberOfDecks($number){
$cards = $this->cards;
$this->number = $number;
for($i = 0 ; $i < $number-1; $i++){
$this->cards = array_merge($this->cards, $cards);
}
return $cards;
}
/*adding elements to a player as expected need to return multiple players and their cards multiple players (does not currently work)*/
public function deal($numberOfPlayers){
$this->numberOfPlayers = $numberOfPlayers;
$player = $this->player;
$number = 2;
for($i = 0; $i < $number; $i++){
for($j = 0; $j < $numberOfPlayers; $j++){
$this->player[$j] = $this->cards[0];
array_shift($this->cards);
}
}
for($k = 0; $k < $numberOfPlayers; $k++)
return $player[$k];
}
}
$deck = new Deck();//works as expected
$deck->numberOfDecks(3);//works as expec
$shuffled = shuffle($deck->cards);//works as expected
$deck->deal(2);
var_dump($deck);
最後にvar_dumpを 'echo $ deck-> player [0]に置き換えてください。" "; echo $ deck-> player [1]; ' –