Ich muss Encoder ein wenig widersprechen. In der Praxis fangen die Projekte immer klein an. Bleiben sie klein hat Encoder vollkommen recht, dann bist du mit einer Funktion eventuell schneller. Werden sie größer wirst du irgendwann ein Problem haben. Zumal man beim entwickeln den Punkt eines Redesignes meistens verpasst.
Deshalb würde ich auch bei kleinen Sachen sofort auf saubere Objekte legen. Wird es größer ist es total super einfach die entsprechenden Klassen zu erweitern.
Hab meinen code auf 5 statt 3 Karten ausgelegt.
abstract class motherofallcards
{
protected $arCheck = null;
public function check( motherofallcards $objCheck )
{
return $this->arCheck[ get_class($objCheck) ];
}
}
//--- Ableiten und benutzen
class stein extends motherofallcards
{
public function __construct()
{
$this->arCheck = array(
"stein" => 0, //--- Unentschieden
"papier" => 1, //--- Stärker
"echse" => 1, //--- Stärker (weiß nicht ob das stimmt)
"schere" => -1, //--- Schwächer
"spock" => -1 //--- Schwächer
);
}
}
//--- aufruf im Controller
$objKarteSpieler1 = new stein(); //--- Welche Klasse aufgerufen wird, wird im HTML (oder sonstwo) definiert
$objKarteSpieler2 = new papier();
$intResult = $objKarteSpieler1->check( $objKarteSpieler2 );
if( $intResult == 1 )
{
echo "Spieler 1 hat gewonnen und ist zudem total sexy und überhaupt super geil!";
} else if( $intResult == -1 ) {
echo "Spieler 2 hat gewonnen und ist zudem total sexy und überhaupt super geil!";
} else {
echo "Beide Spieler stinken!";
}
Gruß
immer gewinnender
T-Rex