Tippspiel-Wetten abgleichen in PHP

EM-Tippspiel PHPPassend zur bevorstehenden EM entwickelte ich für die Website GenerationLove ein Tippspiel mit. Wie bei solchen Tippspielen üblich, sollen die Teilnehmer die Ergebnisse der Fußballspiele vorhersagen. Es gibt dabei drei Gewinnkategorien: Exaktes Ergebnis, korrekte Tordifferenz und korrekte Tendenz. Das exakte Ergebnis bedarf sicher keiner näheren Erläuterung. Gleiche Tordifferenz bedeutet, dass ein getipptes 2:4 einem 0:2 gleichkommt (nämlich zwei Tore Unterschied bei gleichem Sieger). Eine korrekte Tendenz besteht dann, wenn der Spieler zwar nicht das richtige Ergebnis und auch nicht die richtige Differenz hervorgesagt, aber immerhin den richtigen Sieger bzw. Unentschieden getippt hat. Für die unterschiedlichen Kategorien gibt es dann verschiedene Punkte und am Ende des Turniers gewinnt der mit den meisten Punkten.

Damit die richtige Gewinnkategorie ermittelt werden kann, braucht man eine entsprechende (recht simple) Vergleichslogik. Diese habe ich in einer Klasse verpackt und einen Test dazu geschrieben.

Im folgenden Beispiel war das echte Spielergebnis ein „2:1“ und der Spieler hat „2:0“ getippt.


$betResultAnalyzer = new \rvilbrandt\lostandfound\BetResultAnalyzer();

$betResultAnalyzer->setRealResult(2, 1);
$betResultAnalyzer->setBetResult(2, 0);

var_dump($betResultAnalyzer->isExactResult()); // false
var_dump($betResultAnalyzer->isSameScoreDifference()); // false
var_dump($betResultAnalyzer->isSameTendency()); // true

Damit lassen sich dann einfach und sicher die Tipps der Teilnehmer auswerten. Wer es nicht mehr zur EM braucht, der kann es vielleicht in zwei Jahren für die WM in Russland gebrauchen – oder für die kommende Bundesliga-Saison? :)

Die Klasse und der zugehörige Unit Test befinden sich in meinem „Lost & Found“-Repository auf Github. Rückmeldungen jeglicher Art sind wie immer erwünscht.

War dieser Artikel hilfreich für Sie?
[Gesamt: 0 Durchschnitt: 0]

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind markiert *