Poker Tabelle

    • HerzBube84
      HerzBube84
      Bronze
      Dabei seit: 21.08.2006 Beiträge: 24
      Hallo Poker Freunde,
      ich spiele regelmäßig mit Freunden offline Tuniere, dabei sind wir meistens 4-8 Spieler.
      Nun kam der Vorschlag mal eine Tabelle anzufertige, in der alle Spiele aufgenommen werden und somit ein ranking zeigt. (Wir wollen also nach 10 - 20 Spielen mal gucken wer von uns der beste ist)

      Es stellt sich nun aber die Frage, wie man so eine Tabelle errechnen soll, da wir von Spiel zu Spiel mit unterschiedlicher Besatzung spielen und auch nicht immer gleich viele Leute sind, also mal 5 oder mal 7 etc.

      Im Grunde haben wir aber schon einen Festen Spielerkreis, es kommt halt nur mal vor, dass der eine nicht kann, dafür aber jemand anders mehr...

      Das problem ist nun, dass man einen ersten Platz bei 4 Leuten nicht so stark werten darf, wie einen bei 7 leuten...

      Andererseits ist ein 4. Platz bei einer 7bener Runde weniger wert als ein Sieg bei einer 4 Runde, oder?

      Vielleicht habt ihr ja Ideen wie man das machen kann...

      Zur zeit lösen wir das so, dass wir einfach den erzielten Platz aufeinader adiieren und durch die Anzahl der Mitgespielten Partien teilen, also quasi den Schnitt errechnen. Hierbei ist natürlich die gewichtung bei einem Sieg mit 4 Leuten genauso stark gewichtet bei einem Spiel mit 7 Leuten...

      Ich freue mich auf zahlreiche antworten
  • 12 Antworten
    • Flushholic
      Flushholic
      Bronze
      Dabei seit: 05.06.2006 Beiträge: 129
      Bei mir in der Runde gibt es folgende Statistikwerte...


      gespielte Partien
      gesamten und durchschnittlicher CashIn
      gesamter und durchschnittlicher CasOut
      gesamter und durchscnittlicher Rebuy
      gesamter und durchschnittlicher Gewinn
      CashIn / CashOut im Verhältnis zum bisher insgesamt "verspielten" Geld

      Alles schön in ner Excel Tabelle.

      Wir haben auch öfters mal wechselnde Spieler bei einem festen Spielerkern. Das geht aber ganz gut. Die regelmäßig da sind, stehen als fester Name dabei, alle anderen, die ein zwei mal nur dabei waren, werden unter "Gäste" geführt.

      MfG
    • andy83
      andy83
      Bronze
      Dabei seit: 05.09.2006 Beiträge: 36
      Wir berechnen die Punkte so:

      score = (sqrt(((a * b) * (b / c))) / (d + 1.0))

      wobei
      a = Anzahl Mitspieler
      b = Buy-in
      c = Komplettausgaben (Wenn kein Rake usw dann = Buy-in)
      d = Platzierung

      Hat den Vorteil

      - je mehr Turniere desto mehr Punke
      - je mehr Mitspieler desto mehr Punkte
      - je höher der Buyin desto mehr Punkte

      Jemand der ein 5 Spieler Turnier mit 3 PlaymoneyEuro Buyin gewinnt bekommt weniger wie jemand der ein Turnier mit 5 Spielern und 10 PlaymoneyEuro.

      Oder noch ein Beispiel 2x gewinnt jemand mit 5 PlaymoneyEuro Buy in allerdings einmal gegn 4 und einmal gegen 6 Mann, dann bekommt er beim Sieg gegen 6 Mann mehr Punkte.

      Hab dir mal schnell die Excel Formel zusammengebastelt:

      Spalte__B_____C____D___E____F_____G
      ---------------------------------------------------------------------
      |Spielername|Anzahl|Buyin|Rake|Gesamt|Platz|Punkte|
      ---------------------------------------------------------------------
      |Spieler_1___|10___|5____|0__|=e+d__|1___|=Formel*


      *=WURZEL(((C18*D18)*(D18/F18))/(G18+1))

      Hoffe geholfen zu haben

      ciao
    • HerzBube84
      HerzBube84
      Bronze
      Dabei seit: 21.08.2006 Beiträge: 24
      Hallo,
      erstmal danke für Eure Antworten!!!

      Deine Lösung (Andy83) finde ich sehr interessant! Hab das auch mal bei Excel ausprobiert und es klappt :P
      Vorallem, dass du auch den Buy in und Rake miteinbeziehst finde ich super.

      Hast du dir diese berechnung selber ausgedacht, oder irgendwo gelesen?


      Berechnest du denn dann auch in Excel eine richtige Tabelle oder machst du das dann anschliessend manuel...

      Ich habe mir vorher eine Acces Datenbank mit Formularen zusammengebastelt und fand das relativ angenehm um die Daten zu erfassen etc ;)

      Ich denke ich werde das mal so ausprobieren, wie du es vorgeschlagen hast...

      Gruss
    • andy83
      andy83
      Bronze
      Dabei seit: 05.09.2006 Beiträge: 36
      Die Formel an für sich hab ich irgendwo mal mitgeschnitten und hab sie übernommen, da diese perfekt für unsere Runde passt.

      Wir benutzen den TournamentManager von http://www.drneau.com (ich glaube da hat auch die Formel irgendwo gestanden).
      Nach dem Turnier kann man das ganze Turnierlog als XML speichern.

      Ich habe dann auf PHP / MySQL -Basis einen Parser in ein Content Management System (redaxo) integriert.
      Jetzt muss ich nach einem gespielten Turnier nur noch die Datei hochladen und anschliessend einen Knopf drücken.
      Es wird dann automatisch alles ausgerechnet und Tabellen erstellt, eine GuV Rechnung gemacht usw.
    • andy83
      andy83
      Bronze
      Dabei seit: 05.09.2006 Beiträge: 36
      ich hab mal einen screenshot gemacht:

      Screenshot
    • Roxxinger
      Roxxinger
      Bronze
      Dabei seit: 31.07.2006 Beiträge: 227
      Original von andy83
      Die Formel an für sich hab ich irgendwo mal mitgeschnitten und hab sie übernommen, da diese perfekt für unsere Runde passt.

      Wir benutzen den TournamentManager von http://www.drneau.com (ich glaube da hat auch die Formel irgendwo gestanden).
      Nach dem Turnier kann man das ganze Turnierlog als XML speichern.

      Ich habe dann auf PHP / MySQL -Basis einen Parser in ein Content Management System (redaxo) integriert.
      Jetzt muss ich nach einem gespielten Turnier nur noch die Datei hochladen und anschliessend einen Knopf drücken.
      Es wird dann automatisch alles ausgerechnet und Tabellen erstellt, eine GuV Rechnung gemacht usw.
      nice magst du vllt den quellcode veröffentlichen? oder mir per pm zukommen lassen würd das auch gern für ein cms übernehmen.
    • andy83
      andy83
      Bronze
      Dabei seit: 05.09.2006 Beiträge: 36
      Also wenns dir was bringt... das dürfte der wichtigste Teil sein:
      Ist halt alles unkommertiert und teilweise (ok - komplett) unsauber programmiert, aber es funktioniert..

      Achja noch was: Ich weiß das ich ein beschissenen Programmierstil habe :D
      Also lasst es einfach mich darauf hinzuweisen :P


      function startElement($parser, $element_name, $element_attribute) {
      global $ausgabe;
      global $count;
      global $buyin;
      global $pott;
      global $totalbuyins;
      global $datum;
      //Umwandeln in Kleinbuchstaben
      $element_name = strtolower($element_name);
      //ßberprüfung des Elementnames
      if ($element_name=="tournament") {
      echo "<h1>Tournament - ".$element_attribute["TITLE"]."</h1>";
      $tmp = str_replace("€","&euro;",$element_attribute["DESCRIPTION"]);
      echo $tmp;
      $datum = $element_attribute["DATE"];
      echo "<br><b>".$datum."</b><br><br>";
      }


      if ($element_name=="eventlog") {
      echo "<h1>Gamehistory</h1>";
      }
      if ($element_name=="newlevel") {
      echo "<li>".$element_attribute["TIMESTAMP"]." - ".$element_attribute["LEVELSUMMARY"]."</li>";
      }
      if ($element_name=="eliminationevent") {
      echo "<font color=#DF0000><li>".$element_attribute["TIMESTAMP"]." - ";
      }
      if ($element_name=="eliminatee") {
      echo $element_attribute["NAME"]." was eleminated by ";
      }
      if ($element_name=="eliminator") {
      echo $element_attribute["NAME"]."</li></font>";
      }
      if ($element_name=="endoftournamentevent") {
      echo "<b><li>".$element_attribute["TIMESTAMP"];
      }
      if ($element_name=="winner") {
      echo " - ".$element_attribute["NAME"]." hat das Turnier gewonnen</li></b>";
      }


      if ($element_name=="roster") {
      echo "<h1>Spieler</h1><table>";
      }
      if ($element_name=="player") {
      $count = $count +1;
      $totalbuyins = $count;
      echo "<tr>";
      echo "<td>".$element_attribute["NAME"]."</td>";
      }
      if ($element_name=="eliminatee") {
      $punkte = 0;
      $punkte = (sqrt((($totalbuyins * $buyin) * ($buyin / $buyin))) / ($count + 1));

      $sql = "INSERT into TURNIERTABELLE (tour_id, season, datum, platz, name, pott, buyin, punkte) VALUES (REX_ARTICLE_ID,'REX_VALUE[6]', '".$datum."', ".$count.", '".$element_attribute["NAME"]."',".$pott.",".$buyin.",".$punkte.")";
      mysql_query($sql) OR die(mysql_error());
      $count = $count - 1;
      }

      if ($element_name=="winner") {
      $punkte = 0;
      $punkte = (sqrt((($totalbuyins * $buyin) * ($buyin / $buyin))) / ($count + 1));
      $sql = "INSERT into TURNIERTABELLE (tour_id, season, datum, platz, name, pott, buyin, punkte) VALUES (REX_ARTICLE_ID,'REX_VALUE[6]', '".$datum."', ".$count.", '".$element_attribute["NAME"]."',".$pott.",".$buyin.",".$punkte.")";
      mysql_query($sql) OR die(mysql_error());
      $count = $count - 1;
      }

      if ($element_name=="payoutplacedetail") {
      if ($element_attribute["PLACE"]==1){
      $payout = ($pott * $element_attribute["PERCENTAGE"]);
      $diff = $payout - $buyin;
      $sql = "UPDATE TURNIERTABELLE SET percent = '".$element_attribute["PERCENTAGE"]."' WHERE platz=1 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET payout = '".$payout."' WHERE platz=1 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET diff = '".$diff."' WHERE platz=1 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());

      } else if ($element_attribute["PLACE"]==2){
      $payout = ($pott * $element_attribute["PERCENTAGE"]);
      $diff =$payout - $buyin;
      $sql = "UPDATE TURNIERTABELLE SET percent = '".$element_attribute["PERCENTAGE"]."' WHERE platz=2 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET payout = '".$payout."' WHERE platz=2 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET diff = '".$diff."' WHERE platz=2 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());

      } else if ($element_attribute["PLACE"]==3){
      $payout = ($pott * $element_attribute["PERCENTAGE"]);
      $diff = $payout - $buyin;
      $sql = "UPDATE TURNIERTABELLE SET percent = '".$element_attribute["PERCENTAGE"]."' WHERE platz=3 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET payout = '".$payout."' WHERE platz=3 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $sql = "UPDATE TURNIERTABELLE SET diff = '".$diff."' WHERE platz=3 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());

      $payout = 0;
      $diff = $payout - $buyin;
      $sql = "UPDATE TURNIERTABELLE SET diff = '".$diff."' WHERE platz > 3 AND tour_id=REX_ARTICLE_ID";
      mysql_query($sql) OR die(mysql_error());
      $payout = ($pott * $element_attribute["PERCENTAGE"]);
      } else {

      }
      }


      if ($element_name=="buyin") {
      $buyin = $element_attribute["COST"];
      $pott = ( ($buyin - $element_attribute["RAKECONTRIBUTION"]) * $element_attribute["COUNT"]);
      }

      if ($element_name=="blindsschedule") {
      $sql = "SELECT * from SPIELERTABELLE where login='".$_SERVER['REMOTE_USER']."'";
      $result = mysql_query($sql) OR die(mysql_error());
      if(mysql_num_rows($result)) {
      while($row = mysql_fetch_assoc($result)) {
      $name = $row['name'];
      $vorname = $row['vorname'];
      }
      } else {
      }
      $myname = $name."_".$vorname;
      echo "<h1>Platzierung</h1>";
      echo "<table><tr><td><b>Platz</b></td><td>&nbsp;</td><td><b>Name</b></td><td>&nbsp;</td><td><b>Payout</b></td><td>&nbsp;</td><td><b>BuyIn</b></td><td>&nbsp;</td><td><b>Netto</b></td><td>&nbsp;</td><td><b>Punkte</b></td></tr>";
      echo "<tr><td></td><td>&nbsp;</td><td></td><td>&nbsp;</td><td></td><td>&nbsp;</td><td></td><td>&nbsp;</td><td></td><td>&nbsp;</td></tr>";
      $sql = "SELECT * from TURNIERTABELLE WHERE tour_id=REX_ARTICLE_ID ORDER BY platz";
      $result = mysql_query($sql) OR die(mysql_error());
      if(mysql_num_rows($result)) {
      while($row = mysql_fetch_assoc($result)) {
      $platzname = $row['name'];
      $platz = $row['platz'];
      $pout = $row['payout'];
      $bin = $row['buyin'];
      $platzdiff = $row['diff'];
      $platzpunkte = $row['punkte'];

      if ($myname == $platzname){
      echo "<tr><td><b>".$platz.".</b> </td><td>&nbsp;</td><td><b>".$platzname."</b></td><td>&nbsp;</td><td style='text-align:right;'><b>".round($pout).".00 &euro;</b></td><td>&nbsp;</td><td style='text-align:right;'><b>";
      echo " ".$bin.".00 &euro;</b></td><td>&nbsp;</td><td style='text-align:right;'><b>".round($platzdiff).".00 &euro;</b></td><td>&nbsp;</td><td style='text-align:right;'><b>".$platzpunkte."</b></td></tr>";

      } else {
      echo "<tr><td>".$platz.". </td><td>&nbsp;</td><td>".$platzname."</td><td>&nbsp;</td><td style='text-align:right;'>".round($pout).".00 &euro;</td><td>&nbsp;</td><td style='text-align:right;'>";
      echo " ".$bin.".00 &euro;</td><td>&nbsp;</td><td style='text-align:right;'>".round($platzdiff).".00 &euro;</td><td>&nbsp;</td><td style='text-align:right;'>".$platzpunkte."</td></tr>";
      }
      }
      } else {
      }
      echo "</table>";
      }

      }

      function endElement($parser, $element_name) {
      global $ausgabe;
      // in Kleinbuchstaben umwandeln
      $element_name = strtolower($element_name);
      // ßberprüfung des Names eines Elementes
      if ($element_name=="tournament") {
      echo "";
      }
      if ($element_name=="roster") {
      echo "</table>";
      }
      if ($element_name=="player") {
      echo "</tr>";
      }
      }

      function cdata($parser, $element_inhalt) {
      global $ausgabe;
      }
      $xmlFile = file('/DEINHOSTER/files/REX_FILE[1]');
      $parser = xml_parser_create();
      xml_set_element_handler($parser, "startElement", "endElement");
      xml_set_character_data_handler($parser, "cdata");

      foreach($xmlFile as $elem)
      {
      xml_parse($parser, $elem);
      }
      xml_parser_free($parser);
      ?>
    • Roxxinger
      Roxxinger
      Bronze
      Dabei seit: 31.07.2006 Beiträge: 227
      danke werd mal schauen was ich damit anfangen kann
    • Maturity
      Maturity
      Bronze
      Dabei seit: 04.08.2006 Beiträge: 1.334
      hmm <br> gefällt mir gar nicht, wie wärs mit validem xhtml :D ?
      <br />?
    • HerzBube84
      HerzBube84
      Bronze
      Dabei seit: 21.08.2006 Beiträge: 24
      Hallo Andy,
      ich habe mir das tool mal runtergeladen und bin schwer beeindruckt. Das ist ja total umfangreich mit tausenden sachen die man einstellen kann.

      Als ich jedoch eine Liga erstellen wollte, braucht der ein Passwort!?!?
      Ist das dann kostenpflichtig? Hast du schonmal so ein passwort angefordert?

      Oder benutzt du die Liga funktion gar nicht? Aber ich denke das wäre dann im Endeffekt genau das was ich suchen würde...

      Ich hoffe du kannst mir da nochmal helfen... :P
    • andy83
      andy83
      Bronze
      Dabei seit: 05.09.2006 Beiträge: 36
      Ja das kostet, in der freien Version kann man "nur" bis zu 12 Personen pro Turnier und max. 2 Tische verwalten, keine eigenen Konsolen und keine Server/client funktion nutzen.
      Ich denke das Programm ist hauptsächlich für "professionelle" Veranstalter gedacht. (hab mal gelesen dass damit 1200 Mann Turnier gemanaged worden ist!!)

      Aber für uns zu Hause reichen die Features der freien Version.

      Das die Ligafunktion kostenpflichtig ist, war auch ein Grund warum ich mir selbst ein Script geschrieben habe um diese zu verwalten....

      Die Vollversion kostet 10$ / vierteljährlich :(
    • HerzBube84
      HerzBube84
      Bronze
      Dabei seit: 21.08.2006 Beiträge: 24
      Hi,
      danke für die schnelle Antwort.
      Schade, wäre echt cool gewesen. Hab vorher immern den Pokerroom manager benutzt, der ist im vergleich zu dem aber eher schlicht.

      Mal gucken wie ich das jetzt machen werde..