-
-
Save BlackScorp/fbfccb24b932c46ec097 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Klasse Farbrechner | |
* Berechnet aus den Farb-Gencodes der Eltern den Gencode des Fohlens | |
*/ | |
class Farbrechner { | |
/** | |
* Enthält das Fell der Mutter | |
*/ | |
private $mutter; | |
/** | |
* Enthält den Gencode der Mutter | |
*/ | |
private $gencodeMutter = array(); | |
/** | |
* Enthält das Fell des Vaters | |
*/ | |
private $vater; | |
/** | |
* Enthält den Gencode des Vaters | |
*/ | |
private $gencodeVater = array(); | |
/** | |
* Enthält den errechneten Gencode des Fohlens. | |
*/ | |
private $fohlen = array(); | |
/** | |
* Enthält die Abzeichen an Kopf und Beinen des Fohlens. | |
*/ | |
private $abzeichenKopf; | |
private $abzeichenBeine = array(); | |
/** | |
* Konstruktor | |
* @param obj $mutter | |
* @param obj $vater | |
*/ | |
public function __construct(Fellfarbe $mutter, Fellfarbe $vater) { | |
$this->setMutter($mutter); | |
$this->setVater($vater); | |
} | |
/** | |
* Speichert die Fellfarbe der Mutter | |
* @param obj $mutter | |
*/ | |
public function setMutter(Fellfarbe $mutter) { | |
$this->mutter = $mutter; | |
} | |
/** | |
* Speichert die Fellfarbe des Vaters | |
* @param obj $vater | |
*/ | |
public function setVater(Fellfarbe $vater) { | |
$this->vater = $vater; | |
} | |
/** | |
* Extrahiert den Gencode der Mutter und speichert ihn. | |
*/ | |
public function setGencodeMutter() { | |
$this->gencodeMutter = $this->mutter->gencodes; | |
} | |
/** | |
* Extrahiert den Gencode des Vaters und speichert ihn. | |
*/ | |
public function setGencodeVater() { | |
$this->gencodeVater = $this->vater->gencode; | |
} | |
/** | |
* Ermittelt den Wert eines einzelnen Gens. | |
*/ | |
private function calculateGen($muttergen, $vatergen) { | |
if (($muttergen == 0 && $vatergen == 2) || ($muttergen == 2 && $vatergen == 0)) { | |
$fohlengen = rand(0,2); | |
} else { | |
$fohlengen = rand($muttergen, $vatergen); | |
} | |
return $fohlengen; | |
} | |
/** | |
* Errechnet den Gencode der Fellfarbe | |
*/ | |
public function calculateGencode() { | |
$array_schluessel = array("extension", "agouti"); | |
foreach ($array_schluessel as $gen) { | |
$this->fohlen[$gen] = $this->calculateGen($this->gencodeMutter[$gen], $this->gencodeVater[$gen]); | |
} | |
} | |
/** | |
* Berechnet das Abzeichen des Pferdes am Kopf, indem eine zufällige ID der Abzeichenkennzeichnungen gewählt wird | |
* und speichert sie in einem Array. | |
*/ | |
public function calculateAbzeichenKopf($erwuenscht) { | |
if ($erwuenscht == true) { | |
$this->abzeichenKopf = rand(0,4); | |
} else { | |
$this->abzeichenKopf = 0; | |
} | |
} | |
/** | |
* Berechnet die Abzeichen an den Beinen des Fohlen, indem eine zufällige ID der Abzeichenkennzeichnungen gewählt wird | |
* und speichert sie in einem Array. | |
*/ | |
public function calculateAbzeichenBeine($erwuenscht) { | |
$array_schluessel = array("vornelinks", "vornerechts", "hintenlinks", "hintenrechts"); | |
if ($erwuenscht == true) { | |
foreach ($array_schluessel as $abzeichen) { | |
$this->abzeichenBeine[$abzeichen] = rand(0,8); | |
} | |
} else { | |
foreach ($array_schluessel as $abzeichen) { | |
$this->abzeichenBeine[$abzeichen] = 0; | |
} | |
} | |
} | |
/** | |
* Gibt den berechneten Gencode des Fohlen zurück. | |
*/ | |
public function getFohlen() { | |
return $this->fohlen; | |
} | |
/** | |
* Gibt $abzeichenKopf zurück. | |
*/ | |
public function getAbzeichenKopf() { | |
return $this->abzeichenKopf; | |
} | |
/** | |
* Gibt abzeichenBeine zurück. | |
*/ | |
public function getAbzeichenBeine() { | |
return $this->abzeichenBeine; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Klasse Fellfarbe | |
*/ | |
class Fellfarbe { | |
/** | |
* Enthält die ID der Fellfarbe | |
*/ | |
private $id; | |
/** | |
* Bezeichnung der Fellfarbe | |
*/ | |
private $name; | |
/** | |
* Die einzelnen Elemente des Gencodes einer Fellfarbe | |
*/ | |
private $gencodes = array(); | |
/** | |
* Die einzelnen Abzeichen an den jeweiligen Körperstellen | |
*/ | |
private $abzeichenBeine = array(); | |
private $kopf; | |
/** | |
* Enthält den Bildpfad der Fellfarbe. | |
*/ | |
private $bildpfad; | |
/** | |
* Arrays mit den IDs und Namen der Abzeichen. | |
*/ | |
private $alleAbzeichenBeine = array( 1 => "Weißer Ballen", 2 => "Weiße Fessel", | |
3 => "Weißer Fuß", 4 => "Hochweißer Fuß"); | |
private $abzeichenKopf = array( 1 => "schmale Blesse", 2 => "breite Blesse", | |
3 => "unregelmäßige Blesse", 4 => "Stern", | |
5 => "Laterne", 6 => "Flocke", 7 => "Keilstern", | |
8 => "Schnippe"); | |
/** | |
* @param int $id | |
* @param string $name | |
* @param string $bildpfad | |
* @param array $abzeichenBeine | |
* @param array $kopf | |
*/ | |
public function __construct($id, $name, $bildpfad, array $abzeichenBeine, $kopf) { | |
$this->setId($id); | |
$this->setName($name); | |
$this->setBildpfad($bildpfad); | |
$this->setAbzeichenBeine($abzeichenBeine); | |
$this->setKopf($kopf); | |
} | |
/** | |
* Speichert die Fellfarben-ID, falls sie im Array $fellfarben vorkommt. | |
* @param int $id | |
*/ | |
public function setId($id) { | |
if (is_numeric($id)) { | |
$this->id = $id; | |
} | |
else { | |
/* Ausnahmebehandlung, Exception */ | |
} | |
} | |
/** | |
* Gibt die ID einer Fellfarbe zurück | |
*/ | |
public function getId() { | |
return $this->id; | |
} | |
/** | |
* Speichert den Namen der Fellfarbe | |
* @param string $name | |
*/ | |
public function setName($name) { | |
$this->name = $name; | |
} | |
/** | |
* Gibt den Namen der Fellfarbe zurück. | |
*/ | |
public function getName() { | |
return $this->name; | |
} | |
/** | |
* Speichert die Gencodes. | |
* @param array $gencodes | |
*/ | |
public function setGencodes(array $gencodes) { | |
$this->gencodes = $gencodes; | |
} | |
/** | |
* Gibt die Gencodes zurück. | |
*/ | |
public function getGencodes() { | |
return $this->gencodes; | |
} | |
/** | |
* @param array $abzeichenBeine | |
*/ | |
public function setAbzeichenBeine(array $abzeichenBeine) { | |
$this->abzeichenBeine = $abzeichenBeine; | |
} | |
/** | |
* Gibt den Gencode der Abzeichen zurück | |
*/ | |
public function getAbzeichenBeine() { | |
return $this->abzeichenBeine; | |
} | |
/** | |
* Gibt die Abzeichen am gewünschten Bein mit Namen zurück. | |
* @param string $bein | |
*/ | |
public function getBein($bein) { | |
if (array_key_exists($bein, $this->abzeichenBeine)) { | |
return $this->alleAbzeichenBeine[$this->abzeichenBeine[$bein]]; | |
} | |
else { | |
// Exception. | |
} | |
} | |
/** | |
* Speichert die ID des Abzeichens am Kopf. | |
* @param int $kopf | |
*/ | |
public function setKopf($kopf) { | |
if (is_numeric($kopf)) { | |
$this->kopf = $kopf; | |
} | |
} | |
/** | |
* Gibt das Abzeichen zurück. | |
*/ | |
public function getKopf() { | |
return $this->kopf(); | |
} | |
/** | |
* Gibt den Namen des Abzeichens zurück. | |
*/ | |
public function showKopf() { | |
return $this->abzeichenKopf[$this->kopf]; | |
} | |
/** | |
* Speichert den Bildpfad. | |
* @param string $bildpfad | |
*/ | |
public function setBildpfad($bildpfad) { | |
$this->bildpfad = $bildpfad; | |
} | |
/** | |
* Gibt den Bildpfad zurück. | |
*/ | |
public function getBildpfad() { | |
return $this->bildpfad; | |
} | |
} | |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Klasse Pferd | |
* Basisklasse. | |
*/ | |
class Pferd { | |
private $id; | |
private $name; | |
private $alter; | |
private $stockmass; | |
private $gewicht; | |
private $geburtstag; | |
/** | |
* Ist eine Instanz der Klasse Rasse mit den Eigenschaften der Rasse des | |
* Pferdes. | |
*/ | |
private $rasse; | |
/** | |
* Ist eine Instanz der Klasse Fellfarbe mit den Eigenschaften der Fellfarbe | |
* des Pferdes. | |
*/ | |
private $fellfarbe; | |
/** | |
* Enthält die ID des Geschlechts aus dem Array $geschlechter. | |
*/ | |
private $geschlecht; | |
/** | |
* Array mit ID und Bezeichnung der Geschlechter. | |
*/ | |
private $geschlechter = array(0 => "Stute", 1 => "Hengst", 2 => "Wallach"); | |
/** | |
* Enthält die IDs der Eltern. | |
*/ | |
private $mutter; | |
private $vater; | |
/** | |
* Enthalten die ID des jeweiligen Users. | |
*/ | |
private $besitzer; | |
private $zuechter; | |
/** | |
* Enthält eine Instanz der Klasse Zustand | |
*/ | |
private $zustand; | |
/** | |
* @param int $pferdeid | |
* @param string $name | |
* @param int $alter | |
* @param int $geschlecht | |
* @param obj(?) $rasse | |
*/ | |
public function __construct($pferdeid, $name, $alter, $geschlecht, Rasse $rasse) { | |
$this->setId($pferdeid); | |
$this->setName($name); | |
$this->setAlter($alter); | |
$this->setGeschlecht($geschlecht); | |
$this->setRasse($rasse); | |
} | |
/** | |
* Speichert die ID des Pferdes. | |
* @param int $pferdeid | |
*/ | |
public function setId($pferdeid) { | |
if (is_numeric($pferdeid) && $pferdeid > 0) { | |
$this->id = $pferdeid; | |
} else { | |
// Ausnahmebehandlung | |
} | |
} | |
public function getId() { | |
return $this->id; | |
} | |
/** | |
* Speichert den Namen des Pferdes. | |
* @param string $name | |
*/ | |
public function setName($name) { | |
$this->name = $name; | |
} | |
public function getName() { | |
return $this->name; | |
} | |
/** | |
* Speichert das numerische Alter. | |
* @param int $alter | |
*/ | |
public function setAlter($alter) { | |
if (is_numeric($alter) & $alter >= 0) { | |
$this->alter = $alter; | |
} else { | |
// Ausnahmebehandlung | |
} | |
} | |
/** | |
* Gibt das numerische Alter des Pferdes zurück. | |
*/ | |
public function getAlter() { | |
return $this->alter; | |
} | |
/** | |
* Rechnet das Alter vom Wochenformat in Wochen, Monate und Jahre um. | |
*/ | |
public function showAlter() { | |
$jahr = null; | |
$monat = null; | |
$woche = null; | |
// Anzahl der Jahre? | |
$rest_wochen = $this->alter % 48; | |
$jahre = ($this->alter - $rest_wochen) / 48; | |
$wochen = $rest_wochen; | |
// Anzahl der Monate? | |
$rest_wochen = $wochen % 4; | |
$monate = ($wochen - $rest_wochen) / 4; | |
// Anzahl Wochen? | |
$wochen = $rest_wochen; | |
// Ausgabe: | |
$return = $jahre > 0 ? ($jahr == 1 ? $jahre.' Jahr ' : $jahre.' Jahre ') : ''; | |
$return .= $monate > 0 ? ($monate == 1 ? $monate.' Monat ' : $monate.' Monate ') : ''; | |
$return .= $wochen > 0 ? ($wochen == 1 ? $wochen.' Woche' : $wochen.' Wochen') : ''; | |
return $return; | |
} | |
/** | |
* Speichert die Größe des AUSGEWACHSENEN Pferdes. | |
* @param int $stockmass | |
*/ | |
public function setStockmass($stockmass) { | |
if (is_numeric($stockmass) && $stockmass > 0) { | |
$this->stockmass = $stockmass; | |
} else { | |
// Ausnahmebehandlung | |
} | |
} | |
/** | |
* Gibt die Größe des AUSGEWACHSENEN Pferdes zurück. | |
*/ | |
public function getStockmass() { | |
return $this->stockmass; | |
} | |
/** | |
* Gibt die aktuelle, tatsächliche Größe des Pferdes zurück. | |
*/ | |
public function showStockmass() { | |
$wachstum = (0.40 / 144) * $this->alter; | |
$groesse = $this->stockmass * (0.60 + $wachstum); | |
if ($groesse < $this->stockmass) { | |
return number_format($groesse); | |
} | |
elseif ($groesse >= $this->stockmass) { | |
return $this->stockmass; | |
} | |
else { | |
$this->stockmass; | |
} | |
} | |
/** | |
* Speichert das Gewicht. | |
* @param int $gewicht | |
*/ | |
public function setGewicht($gewicht) { | |
if (is_numeric($gewicht) && $gewicht > 0) { | |
$this->gewicht = $gewicht; | |
} | |
} | |
/** | |
* Gibt das Gewicht eines Pferdes zurück. | |
*/ | |
public function getGewicht() { | |
return $this->gewicht; | |
} | |
/** | |
* Falls $rasse ein Objekt der Klasse Rasse speichern. | |
* @param obj(?) $rasse | |
*/ | |
public function setRasse(Rasse $rasse) { | |
$this->rasse = $rasse; | |
} | |
public function getRasse() { | |
return $this->rasse; | |
} | |
/** | |
* Falls $fellfarbe ein Objekt der Rasse Fellfarbe ist speichern. | |
* @param obj(?) $fellfarbe | |
*/ | |
public function setFellfarbe(Fellfarbe $fellfarbe) { | |
$this->fellfarbe = $fellfarbe; | |
} | |
/** | |
* Gibt die Fellfarbe zurück. | |
*/ | |
public function getFellfarbe() { | |
return $this->fellfarbe; | |
} | |
/** | |
* Vergleicht, ob die in $geschlecht gegegebene ID mit einer der IDs in | |
* $geschlechter übereinstimmt. Wenn nicht, dann handelt es sich um keine | |
* gültige Angabe. | |
* @param int $geschlecht | |
*/ | |
public function setGeschlecht($geschlecht) { | |
if (array_key_exists($geschlecht, $this->geschlechter)) { | |
$this->geschlecht = $geschlecht; | |
} else { | |
// Ausnahmebehandlung | |
} | |
} | |
/** | |
* Gibt die ID des Geschlechts zurück. | |
*/ | |
public function getGeschlecht() { | |
return $this->geschlecht; | |
} | |
/** | |
* Sucht aus dem Array $geschlechter mithilfe der in $geschlecht gespeicherten | |
* id als Key die Schriftform des Geschlechts für die Ausgabe in HTML. | |
*/ | |
public function showGeschlecht() { | |
return $this->geschlechter[$this->geschlecht]; | |
} | |
/** | |
* Falls ID valide, Mutter-ID speichern. | |
* @param int $mutter | |
*/ | |
public function setMutter($mutter) { | |
if (is_numeric($mutter)) { | |
$this->mutter = $mutter; | |
} else { | |
// Exception. | |
} | |
} | |
public function getMutter() { | |
return $this->mutter; | |
} | |
/** | |
* Falls ID valide, Vater-ID speichern. | |
* @param int $vater | |
*/ | |
public function setVater($vater) { | |
if (is_numeric($vater)) { | |
$this->vater = $vater; | |
} else { | |
// Exception. | |
} | |
} | |
public function getVater($vater) { | |
return $this->vater; | |
} | |
/** | |
* Falls ID valide, Besitzer-ID speichern. | |
* @param int $besitzer | |
*/ | |
public function setBesitzer($besitzer) { | |
if (is_numeric($besitzer)) { | |
$this->besitzer = $besitzer; | |
} | |
else { | |
// Exception. | |
} | |
} | |
public function getBesitzer() { | |
return $this->besitzer; | |
} | |
/** | |
* Falls ID valide, Züchter-ID speichern. | |
* @param int $zuechter | |
*/ | |
public function setZuechter($zuechter) { | |
if (is_numeric($zuechter)) { | |
$this->zuechter = $zuechter; | |
} | |
else { | |
// Exception. | |
} | |
} | |
public function getZuechter() { | |
return $this->zuechter; | |
} | |
/** | |
* Speichert eine Instnz von Zustand. | |
* @param obj $zustand | |
*/ | |
public function setZustand(Zustand $zustand) { | |
$this->zustand = $zustand; | |
} | |
public function getZustand() { | |
return $this->zustand; | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Klasse Rasse | |
* Daten der Rassen stammen aus einer Datenbank und werden in ein Array verpackt. | |
*/ | |
class Rasse { | |
/** | |
* Enthält die ID der Rasse aus dem Array $rassen der Daten aus der Datenbank. | |
*/ | |
private $id; | |
private $name; | |
private $beschreibung; | |
/** | |
* ID des Typen. Gibt an, ob eine Rasse zu den Ponys, Warmblütern, Kaltblütern oder | |
* Vollblütern gehört. | |
*/ | |
private $typ; | |
/** | |
* Array mit den Typen. | |
*/ | |
private $typen = array(0 => "Warmblut", 1 => "Kaltblut", 2 => "Vollblut", 3 => "Pony"); | |
/** | |
* Erlaubt Abzeichen? 0 = nein, 1 = ja. | |
*/ | |
private $abzeichen; | |
/** | |
* @param int $id | |
* @param string $name | |
* @param int $typ | |
*/ | |
public function __construct($id, $name, $typ) { | |
$this->setID($id); | |
$this->setName($name); | |
$this->setTyp($typ); | |
} | |
/** | |
* Speichert die Rasse-ID. | |
* @param int $id | |
*/ | |
public function setId($id) { | |
if (is_numeric($id) && $id > 0) { | |
$this->id = $id; | |
} | |
else { | |
// Ausnahmebehandlung, Exception | |
} | |
} | |
public function getId() { | |
return $this->id; | |
} | |
/** | |
* Speichert den Namen der Rasse. | |
* @param string $name | |
*/ | |
private function setName($name) { | |
$this->name = $name; | |
} | |
public function getName() { | |
return $this->name; | |
} | |
/** | |
* Speichert die Beschreibung. | |
*/ | |
private function setBeschreibung($beschreibung) { | |
$this->beschreibung = $beschreibung; | |
} | |
public function getBeschreibung() { | |
return $this->beschreibung; | |
} | |
/** | |
* Speichert die Typ-ID | |
* @param int $typ | |
*/ | |
private function setTyp($typ) { | |
if (is_numeric($typ)) { | |
$this->typ = $typ; | |
} else { | |
// Exception, Ausnahmebehandlung. | |
} | |
} | |
/** | |
* Gibt die Typ-ID zurück. | |
*/ | |
public function getTyp() { | |
return $this->typ; | |
} | |
/** | |
* Gibt die Typenbezeichnung zurück. | |
*/ | |
public function showTyp() { | |
return $this->typen[$this->typ]; | |
} | |
/** | |
* @param int $abzeichen | |
*/ | |
public function setAbzeichen($abzeichen) { | |
if (is_numeric($abzeichen) && $abzeichen >= 0 && $abzeichen <= 1) { | |
$this->abzeichen = $abzeichen; | |
} else { | |
// Exception. | |
} | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
/** | |
* Klasse Zustand | |
* Enthält alle Werte des momentanen Zustands eines Pferdes. | |
*/ | |
class Zustand { | |
/** | |
* Angabe in Zahlenwerten von 0-5000. | |
*/ | |
private $energie; | |
/** | |
* Angaben in Prozent | |
*/ | |
private $kondition; | |
private $gesundheit; | |
private $konstitution; | |
/** | |
* Konstruktor | |
* @param int $energie | |
* @param int $kondition | |
* @param int $gesundheit | |
* @param int $konstitution | |
*/ | |
public function __construct($energie, $kondition, $gesundheit, $konstitution) { | |
$this->setEnergie($energie); | |
$this->setKondition($kondition); | |
$this->setGesundheit($gesundheit); | |
$this->setKonstitution($konstitution); | |
} | |
/** | |
* Speichert die Energie des Pferdes | |
* @param int $energie | |
*/ | |
public function setEnergie($energie) { | |
if ($energie >= 0 && $energie <= 5000) { | |
$this->energie = $energie; | |
} else { | |
// Exception. | |
} | |
} | |
public function getEnergie() { | |
return $this->energie; | |
} | |
/** | |
* Speichert die Kondition des Pferdes | |
* @param int $kondition | |
*/ | |
public function setKondition($kondition) { | |
if ($kondition >= 0 && $kondition <= 100) { | |
$this->kondition = $kondition; | |
} else { | |
// Exception | |
} | |
} | |
public function getKondition() { | |
return $this->kondition; | |
} | |
/** | |
* Speichert die Gesundheit des Pferdes | |
* @param int $gesundheit | |
*/ | |
public function setGesundheit($gesundheit) { | |
if ($gesundheit >= 0 && $gesundheit <= 100) { | |
$this->gesundheit = $gesundheit; | |
} else { | |
// Exception | |
} | |
} | |
public function getGesundheit() { | |
return $this->gesundheit; | |
} | |
/** | |
* Speichert die Konstitution des Pferdes | |
* @param int $konstitution | |
*/ | |
public function setKonstitution($konstitution) { | |
if ($konstitution >= 0 && $konstitution <= 100) { | |
$this->konstitution = $konstitution; | |
} else { | |
// Exception | |
} | |
} | |
public function getKonstitution() { | |
return $this->konstitution; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment