Hallo zusammen,
ich bin an einem Kartenspiel dran und habe ein Denkfehler.
Das Spiel ist ganz einfach immer die höhere Karte gewinnt und im falle von 2 gleich hohen Karten wird eine Karte von jeden Spieler verdeckt auf den Tisch gelegt und und die nächste Karte entscheidet wer den kompletten stapel gewinnt
Nun ist mein problem wenn ich 2 gleiche Karten habe dann muss ich ja die 2 gleichen Karten vergleichen welche die Gewinner Karte ist, und da gehts los wie löse ich das am geschicktesten??
Danke im vorraus
ich bin an einem Kartenspiel dran und habe ein Denkfehler.
Das Spiel ist ganz einfach immer die höhere Karte gewinnt und im falle von 2 gleich hohen Karten wird eine Karte von jeden Spieler verdeckt auf den Tisch gelegt und und die nächste Karte entscheidet wer den kompletten stapel gewinnt
PHP-Code:
while ($hasWinner != 10)
{
$arrGewonneneKarten = array();
$gleicheKarten = array();
$karte = array();
while ($rundenSieger === false)
{
if($stechen == 0)
{
#$karte = array();
foreach($arrSpieler as $objSpieler)
{
$karte[] = $objSpieler->getHand()->spielKarte();
//Überprüfen ob noch Karten auf dem Stapel leigen
if ($karte[$k] == null) {
echo "Spieler $k hat keine Karten mehr!!!!!!";
}
$k++;
}
$k = 0;
for($i = 0; $i < $anzSpieler; $i++)
{
echo "\n HHHH Spieler $i: $karte[$i] \n";
}
$maxKartenWert = $karte[0]->getSpielwert();
$maxKarteSpieler = $karte[0]->getSpieler();
$maxKarte = $karte[0];
$rundenSieger = true;
$arrGewonneneKarten[] = $maxKarte;
}
for($i = 0; $i < $anzSpieler; $i++)
{
if ($maxKartenWert < $karte[$i]->getSpielwert())
{
$maxKarte = $karte[$i];
$arrGewonneneKarten[] = $karte[$i];
$maxKartenWert = $karte[$i]->getSpielwert();
$maxKarteSpieler = $karte[$i]->getSpieler();
$gewinner = $karte[$i]->getSpieler();
if($i < $anzSpieler)
{
$rundenSieger = true;
}
$stechen = 0;
}
else if ( $maxKartenWert > $karte[$i]->getSpielwert() )
{
$arrGewonneneKarten[] = $karte[$i];
$gewinner = $maxKarteSpieler;
if($i < $anzSpieler)
{
$rundenSieger = true;
}
$stechen = 0;
}
else if ($maxKartenWert === $karte[$i]->getSpielwert())
{
if($maxKarte == $karte[$i])
{
}
else
{
$gleicheKarten[] = $maxKarte;
$gleicheKarten[] = $karte[$i];
//Die Verdeckte Karten die der Gewinner gewinnt
$maxKarte = $maxKarte->getSpieler()->getHand()->spielKarte();
$karte[$i] = $karte[$i]->getSpieler()->getHand()->spielKarte();
$gleicheKarten[] = $maxKarte;
$gleicheKarten[] = $karte[$i];
$maxKarte = $maxKarte->getSpieler()->getHand()->spielKarte();
$karte[$i] = $karte[$i]->getSpieler()->getHand()->spielKarte();
$maxKartenWert = $maxKarte->getSpielwert();
$gleicheKarten[] = $maxKarte;
$gleicheKarten[] = $karte[$i];;
$arrGewonneneKarten = $arrGewonneneKarten + $gleicheKarten;
$gleicheKarten = array();
$stechen = 1;
$rundenSieger = false;
}
}
}
}
if($stechen == 0 && $rundenSieger = true)
{
echo count($arrGewonneneKarten);
$gewinner->getHand()->nehmKartenAuf($arrGewonneneKarten);
echo "\n\n Gewinner {$gewinner->getName()}\n";
$rundenSieger = false;
$hasWinner++;
}
}
Danke im vorraus
Kommentar