Muckturnier

News 29.02–02.08.2020

10 Jahre Muckturnier-Programm

… und kein Muckturnier auf dem Hofer Volksfest. Heute wär’s gewesen. Ein Jammer. Hoffen wir, dass die Suche nach einem Corona-Impfstoff erfolgreich ist, und dass wir das nächstes Jahr nachholen können! Daumen drücken, vielleicht wird ja 2021 wieder alles normal. Oder zumindest besser.

Anlässlich des heutigen Tages habe ich nochmals die Akten gesichtet und festgestellt, dass die bisherige Aussage „Den ersten Code für das Programm gabe ich 2011 geschrieben“ nicht stimmen kann.

Der (mittlerweile korrigierte) Eintrag Nostalgische Gefühle: der PHP-Code von Muckturnier jetzt in Git hatte und hat sicher Recht damit, dass der erste Code für das Muckturnier-Programm am 04.03.2011 in meinem damaligen Subversion-Repository gelandet ist. Deswegen habe ich dieses Datum (was zeitlich ja auch passend kurz nach dem 9. Muckturnier der JU Leupoldsgrün gewesen sein düfte) auch als Projekt-Start angenommen. Nur habe ich nicht schon immer ein Content Versioning System benutzt (ganz früher™ wusste ich nicht, was das ist, und wie man das macht mit der Softwareentwicklung ;-)

Nun gibt es ja aber auch noch das Release Announcement für Version 0.1, die erste veröffentlichte Version. Und darin steht: „Nach dem zweimaligen öffentlichen Betatest auf dem alljährlichen Muckturnier der JU Leupoldsgrün […] ist es jetzt Zeit für das erste stabile Release“.

Den Beitrag habe ich am 04.03.2012 geschrieben, höchstwahrscheinlich kurz nach dem 10. Muckturnier der JU Leupoldsgrün. Folgerichtig war das also der „2. öffentliche Betatest“. Der 1. war dann 2011, auf dem 9. Muckturnier der JU Leupoldsgrün. Da gab es ja aber den Code schon. Also habe ich – aller Wahrscheinlichkeit nach – bereits auf dem 8. Muckturnier der JU Leupoldsgrün Ende Februar/Anfang März 2010 den Entschluss gefasst, das Projekt zu starten. Und ein Jahr später wurde das erste Muckturnier mit dem Programm ausgewertet.

Wir feiern also dieses Jahr das 10jährige – leider allein und in aller Stille. Aber mit viel Entwicklungszeit für viele Innovationen und in der guten Hoffnung, dass es 2021 wieder weitergeht :-)

Quellcode jetzt auf GitLab

Einen eigenen Git-Server zu haben ist ganz nett, aber zugegebenermaßen doch eher Spielerei (der Beweis für „ich kann das auch selber“ ;-). Aber die Großen können es dann doch etwas besser, mit schicken Diff-Views, Bugtracker und so weiter.

Jeder kennt ja den Git-Hosting-Platzhirsch GitHub. Nachdem das KDE-Projekt seine Git-Infrastruktur kürzlich auf die Software von GitLab umgestellt hat, habe ich dieser Lösung aber doch den Vorzug gegeben (ich bin ja nebenher auch KDE-Developer, und GitLab ist toll).

Ab jetzt wird der Quellcode des Muckturnier-Projektes nicht mehr auf meinem eigenen kleinen Server gehostet, sondern auf GitLab unter https://gitlab.com/l3u/muckturnier. Mit allen Vorzügen, die ein großer Git-Hoster hat.

Für den vermutlich eher unwahrscheinlichen Fall, dass jemand das Repsitory ausgecheckt hat: Bitte die Remotes von git://git.l3u.de/muckturnier.git auf https://gitlab.com/l3u/muckturnier.git umstellen.

Technology Preview: Auslosung bei der Anmeldung

Klassischerweise wird bei einem Muckturnier erst fertig angemeldet, und wenn alle Teilnehmer in der passenden Anzahl da sind, dann wird ausgelost. Meistens, indem ein Spieler jedes Paars (bzw. jeder Spieler bei Einzelspielerturnieren) einen Zettel mit einer Tisch- und Paarnummer zieht.

Für das Hofer Volksfest hätte dieses Vorgehen viel zu lang gedauert; weiterhin wussten wir nicht, wie viele Tische letztlich wirklich besetzt sein würden. Deswegen haben wir das bisher so gehandhabt, dass es einfach eine sequenzielle Vergabe direkt bei der Anmeldung gab (das erste Paar ist „Tisch 1 Paar 1“, das zweite „Tisch 1 Paar 2“, das dritte „Tisch 2 Paar 1“ und so weiter).

Dieses Vorgehen wurde – zurecht – wegen der fehlenden Zufälligkeit kritisiert, und auch dafür, dass es ein gewisses Taktieren (hinter wem stelle ich mich an) zuließ. Allerdings blieb uns bisher nichts anderes übrig, da eine „richtige“ Auslosung wie gesagt viel zu zeitaufwändig gewesen wäre, und die Auslosung ja auch lückenlos und fortlaufend sein muss, damit es losgehen kann.

Aber dafür gibt es jetzt eine Abhilfe!

Vergabe der Auslosung direkt beim Anmelden

Die nächste Version vom Muckturnier-Programm (3.4, Release t. b. a.) wird ein gangbares Konzept für die Auslosung direkt bei der Anmeldung mitbringen. Mit Version 3.3 hatte man schon die Möglichkeit, eine Auslosung vor dem Turnierstart einzugeben. Der Auslosungsdialog stellte einfach immer den nächsten freien Platz ein, entsprechend der sequenziellen Platzvergabe.

Ab Version 3.4 kann man diese Platzvergabe bei der Anmeldung so zufällig machen, wie man will. Die sequenzielle Vergabe steht weiterhin zur Verfügung, entweder als alleinige Option oder als Bestandteil einer zufälligen Platzvergabe. In diesem Fall mit einem Parameter, ab welchem Tisch die Plätze sequenziell vergeben werden sollen, oder ob überhaupt. Weiterhin kann man bis zu einem bestimmten Tisch komplett zufällig auslosen. Aber der Clou ist das dazwischen: Die Vergabe der Plätze in einem bestimmten „Fenster“ von Tischen, nämlich eine bestimmte Anzahl von Tischen nach dem Tisch mit dem ersten freien Platz.

Der zugehörige Einstellungen-Dialog (aufzurufen über den „Einstellungen“-Knopf auf der Anmeldeseite oder direkt beim Erstellen des Turniers) sieht so aus:

Dialog „Einstellungen für die Auslosung“

Wenn man mit einem „Vergabefenster“ auslost, dann ist die Vergabe der Plätze hinreichend zufällig, aber doch sequenziell: Es werden zunächst alle Plätze in dem Fenster zufällig ausgelost. Wenn der erste Tisch des Fensters voll besetzt ist, dann rückt das Fenster weiter. Somit ist die Auslosung bis zum Beginn des Fensters auf jeden Fall vollständig und lückenlos.

Bereinigung der Auslosung

Durch die Zufälligkeit kann es natürlich vorkommen, dass am Ende der Anmeldung am hinteren Ende Tische gar nicht oder nur teilweise besetzt sind, es also Lücken gibt. Das heißt, dass man Paare bzw. Spieler umsetzen muss, damit es losgehen kann.

Aber auch dafür gibt es eine Lösung: Die „Bereinigung“ der Auslosung. Der entsprechende Dialog kann aufgerufen werden, sobald die passende Anzahl an Paaren bzw. Spielern angemeldet sind und es keine als allein oder abwesend markierten Anmeldungen mehr gibt.

Der Algorithmus rechnet die optimale Variante für das „Bereinigen“ aus, bei der sich möglichst wenige Paare/Spieler umsetzen müssen. Weiterhin wird darauf geachtet, möglichst viele in der bereits zugelosten Rolle „Paar 1“ bzw. „Paar 2“ zu lassen. Das sieht dann z. B. so aus:

Auslosung bereinigen

Ein, zwei Paare am Ende der Anmeldung umzusetzen geht viel schneller als eine klassische Auslosung. Als Bonus weiß das Programm weiterhin bereits in der 1. Runde, wer wo sitzt, und es ist schon zu Beginn die automatische Paarauswahl über die Tischnummer möglich. Das vereinfacht und beschleunigt die Auswertung ungemein. Außerdem ist es natürlich sicher auch kein Nachteil, wenn die allermeisten gleich nach der Anmeldung wissen, wo sie sitzen, sich schonmal häuslich einrichten und ein Bier bestellen können ;-)

Nähere Betrachtung der „Fenster-Auslosung“

Für En­thu­si­asten und/oder Mathematiker und/oder Statistiker.

Statistische Auswertung

Für ein so systemkritisches Programm wie das Muckturnier-Programm sollte man natürlich nicht „einfach so“ ein Feature zum EDV-gestützten Auslosen anpreisen, ohne dass man als Veranstalter weiß, auf was man sich einlässt ;-) Deswegen war ich so frei, diese Auslosungsvariante ein bisschen statistisch aufzuarbeiten.

Hierzu habe ich einen Test-Datensatz mit 20 Paaren bzw. 40 Spielern (also 10 Tischen) erzeugt, und alle Plätze mit 1 bis 5 Tischen nach dem ersten Tisch mit einem freien Platz zufällig vergeben. Dann wurde überprüft, wie viele Paare bzw. Spieler man vor dem Beginn des Turniers hätte umsetzen müssen. Für jede Variante wurden 100 Messungen erhoben. Das Ergebnis sieht in einem Box-Whisker-Plot folgendermaßen aus (das arithmetische Mittel ist jeweils zusätzlich durch ein Kreuz markiert):

Notwendige Umsetz-Aktionen in Abhängigkeit der Größe des Vergabefensters

Wenn man sich die Stichproben genauer ansieht, dann findet man Folgendes (ein Signifikanzniveau von α = 0,05 zugrundegelegt):

Keine der Messungen lag normalverteilt vor (Kolmogorow-Smirnow-Test, p ≪ 0,05), somit waren zur weiteren Untersuchung nicht-parametrische Tests angezeigt.

Bei den festen Paaren resultierten weniger große Fenster in jeweils signifikant weniger nötigen Operationen vor dem Turnierbeginn (Wilcoxon-Vorzeichen-Rang-Test, p < 0,05). Bei den einzelnen Spielern zeigten lediglich die Gruppen „+3“ und „+4“ keine signifikanten Unterschiede (p > 0,05); inwiefern das sich bei mehr Stichproben auch noch ändern würde, wäre weiter abzuklären.

Fazit und Empfehlung

Die „Fenster-Auslosung“ ist ein gangbares Mittel, um eine Auslosung direkt bei der Anmeldung zu realisieren, ohne zu wissen, wie viele Tische letztlich besetzt sein werden.

Die Anzahl der Lücken, die bei dieser Variante der Auslosung entstehen, steigen erwartungsgemäß mit der Größe des Fensters, und somit auch die Anzahl der Operationen, die vor dem Turnierbeginn nötig sind, um die Auslosung zu bereinigen.

Die Auswahl „+4“, also ein Vergabefenster von 5 Tischen, scheint sowohl für feste Paare als auch für einzelne Spieler ein vernünftiger Kompromiss zwischen Zufälligkeit und Beherrschbarkeit zu sein. Hier wird ein relativ großer Bereich zufällig verlost, aber trotzdem müssen vor dem Turnierbeginn im Median nur zwei Paare bzw. Spieler umgesetzt werden; im arithmetischen Mittel sind es bei Paaren etwas weniger, bei Einzelspielern etwas mehr.

Bobbl und Tore vs. Plus und Plus-Minus

Die Regeln, die beim Mucken zum Einsatz kommen, variieren mitunter erheblich. Genau wie die für ein Muckturnier. Tatsächlich werden nicht bei allen Muckturnieren Bobbl gespielt, und es werden nicht bei allen Bobbl und Tore gezählt.

Ab und an diskutieren Spieler auf nach Bobbln und Toren ausgezählten Muckturnieren über ihre Platzierung, und zwar mit ihrem Spielstand nach „Plus“ oder „Plus-Minus“. Das kommt aus dem Schafkopf: Üblicherweise wird beim Preisschafkopf eine definierte Anzahl an Spielen gespielt. Die Punkte werden entweder nach dem „Plus“- oder dem „Plus-Minus“-Verfahren gewertet. Bobbl gibt es beim Schafkopf bekanntermaßen nicht.

Aber Mucken ist eben nun einmal nicht Schafkopf: Beim Mucken gibt es das Konzept der Bobbl, und die Wertung der Spiele ist auch anders als beim Schafkopf.

Mit diesem Artikel möchte ich die Designentscheidungen des Muckturnier-Programms erklären, und eine Argumentation für das Spielen von Bobbln und das Auszählen nach Bobbln und Toren darlegen, die über ein „das haben wir schon immer so gemacht“ hinausgeht.

Warum man Bobbl spielen sollte

Angenommen man spielt „Wenz über Muck“. Dann gibt ein „Wenz Auf“ 10 Punkte. Mit Kontra sind es 20. Sofern es die Regeln nicht verbieten, können daraus dann auch noch 40 mit einem „Re“ werden, oder gar 80 mit einem „Sup“. In gleichem Maße, wenn auch nicht so eindrucksvoll, gilt das für die übrigen Spiele genauso.

Die Erfahrung zeigt (und wenn man mal darüber nachdenkt, dann ist das auch klar), dass bei einem Turnier, bei dem nur Spiele gespielt werden, immer die Selben gewinnen: Diejenigen, die frech und risikoreich spielen, und die Spiele hochtreiben. Denn die bringen Punkte pro Spiel aufs Papier. Alle, die zurückhaltend, sicher und konservativ spielen, stehen schlecht da.

Das Deckeln der Punkte durch das Bobbl-Konzept schafft hier mehr Chancengleichheit, weil es derartige Punkte-Ausreißer eliminiert. Vernünftige Regeln natürlich vorausgesetzt: Es darf nur das Gewinnen des Bobbls zählen, und nicht die Punkte, die man eigentlich durch das Gewinnen des letzten Spiels noch bekommen hätte (sonst sind wir beim selben Problem, wie bei einzelnen Spielen, wenn bei 20 : 20 ein Wenz Auf mit Kontra gespielt wird). Außerdem darf eine Brille (zu Null gewonnener Bobbl) nicht anders zählen, als ein normaler Bobbl.

Warum man nach Bobbln und Toren auszählen sollte

Warum man Bobbl spielen sollte, wurde bereits diskutiert. Wenn man keine Bobbl spielt, dann kann man natürlich nicht nach Bobbln auszählen. Aber scheinbar werden mitunter auch Muckturniere mit Bobbln nach den Preisschafkopf-Verfahren „Plus“ und „Plus-Minus“ ausgezählt. Ob das sinnvoll ist, möchte im im Folgenden klären.

Weichen die verschiedenen Auszählverfahren überhaupt voneinander ab? Sehen wir uns ein Beispiel an. Hierfür möchte ich die den Test-Datensatz für feste Paare heranziehen, den das Quellcode-Paket des Muckturnier-Programms mitbringt. Die erste Runde mit nur sechs Paaren genügt schon:

Paar1. Bobbl2. Bobbl
Berta / Else2120 ●
Erwin / Franz4 ●21
Fritz / Hans2121
Heidi / Horst11 ●17 ●
Karl / Monika2113 ●
Sabine / Uschi20 ●21

Wertung von Bobbln, Toren und gegnerischen Toren

Beim Auszählen nach Bobbln, Toren und gegnerischen Toren wird wie folgt vorgegangen: Man sortiert die Paare bzw. Spieler nach den gewonnenen Bobbln. Hier gibt es natürlich praktisch immer Gleichstände. Deswegen sieht man sich dann die Punkte an, die in den verlorenen Bobbln erreicht wurden („geschossene Tore“, je mehr, desto besser). Gibt es auch hier Gleichstände (je nach Teilnehmer- und Rundenzahl ist das eher selten der Fall), dann kann man sich auch noch die Punkte ansehen, die die Gegner in den jeweils gewonnenen Bobbln erreicht haben („gegnerische geschossene Tore“, je weniger, desto besser).

Es ergibt sich folgende Rangliste (wo die Tore bzw. gegnerischen Tore nicht zur Differenzierung nötig waren, stehen sie in Klammern):

PlatzPaarBobblToreGegn. Tore
1.Fritz / Hans2(0)(28)
2.Berta / Else1204
3.Sabine / Uschi12013
4.Karl / Monika113(20)
5.Erwin / Franz14(20)
6.Heidi / Horst0(28)(0)

„Plus“-Wertung

Ich bin kein Schafkopfer. Und ich habe auch noch nie ein Turnier ausgezählt, oder bei einem mitgekartet, wo nicht nach Bobbln und Toren ausgezählt wurde. Wenn es nicht stimmt, was ich hier schreibe, bitte ich um eine Richtigstellung!

So wie ich es verstanden habe, bekommt bzw. bekommen bei „Plus“ der oder die Gewinner einfach die Punkte für die Spiele, und die Verlierer bekommen keine. Das wird wohl dann auch 1 : 1 beim manchen Muckturnieren so gemacht.

Man könnte davon ausgehen, dass die „Plus“-Wertung in der selben Rangliste resultieren müsste, wie das Zählen von Bobbln und Toren, da man ja für einen Bobbl auch genausogut die Punkte schreiben könnte, die er repräsentiert. Und das ist ja immer mindestens einer mehr, als die potenziellen Punkte der Gegner.

Es ergibt sich folgende Rangliste:

PlatzPaarPunkte
1.Fritz / Hans42
2.Berta / Else41
2.Sabine / Uschi41
4.Karl / Monika34
5.Heidi / Horst28
6.Erwin / Franz25

Platz 2 gibt es zwei Mal. Aber was das deutlich gewichtigere Problem ist: Platz 5 und 6 sind vertauscht, weil das das Paar „Heidi / Horst“ viele Tore hat. Und jetzt ist „Erwin / Franz“ auf einmal auf dem letzten Platz, obwohl das Paar einen Bobbl gewonnen hat und „Heidi / Horst“ keinen!

Das Problem ist, dass die Bobbl-Punkte und die Punkte aus den verlorenen Bobbln aufaddiert und nicht mehr unterschieden werden. Ob man den Bobbl gewonnen hat oder nicht, bleibt also unberücksichtigt. Die Möglichkeit, nach gegnerischen Toren zu differenzieren, besteht ebenfalls nicht.

„Plus-Minus“-Wertung

Hier gilt das selbe, wie bei „Plus“: Ich bin kein Schafkopfer. Und ich habe auch noch nie ein Turnier ausgezählt, oder bei einem mitgekartet, wo nicht nach Bobbln und Toren ausgezählt wurde. Wenn es nicht stimmt, was ich hier schreibe, bitte ich um eine Richtigstellung!

Etwas komplizierter ist „Plus-Minus“, hier scheint beim Schafkopf noch danach differenziert zu werden, wer das Spiel angesagt hatte. Da die Regeln beim Mucken das nicht hergeben, gehe ich davon aus, dass bei „Plus-Minus“ jeder die eigenen erreichten Punkte minus der Punkte der Gegner bekommt.

Da die „Plus-Minus“-Wertung etwas unübersichtlicher ist, als die „Plus“-Wertung, möchte ich zunächst die Auswertungstabelle für den genannten Beispielfall zeigen:

Paar1. Bobbl2. BobblSumme
Berta / Else+21-4+20-21+16
Erwin / Franz+4-21+21-20-16
Fritz / Hans+21-11+21-17+14
Heidi / Horst+11-21+17-21-14
Karl / Monika+21-20+13-21-7
Sabine / Uschi+20-21+21-13+7

Es ergibt sich die folgende Rangliste:

PlatzPaarPunkte
1.Berta / Else+16
2.Fritz / Hans+14
3.Sabine / Uschi+7
4.Karl / Monika-7
5.Heidi / Horst-14
6.Erwin / Franz-16

Nicht nur, dass das selbe Problem mit den beiden letzten Plätzen wie bei der „Plus“-Wertung auftritt – es sind hier auch noch die ersten beiden Plätze vertauscht, obwohl das Paar „Fritz / Hans“ als einziges zwei Bobbl gewonnen hat und das Paar „Berta / Else“ nur einen!

Offensichtlich hat die „Plus-Minus“-Wertung (in diesem Beispiel noch auffälliger) das selbe Problem, wie die „Plus“-Wertung: Sie berücksichtigt gewonnene oder verlorene Bobbl nicht.

Fazit

Das Aufstellen der Rangliste nach den gewonnenen Bobbln und geschossenen Toren ist ein verbreitetes und etabliertes Verfahren. Es resultiert in einer Rangliste, die dem Mucken und seinem Bobbl-Konzept Rechnung trägt. Es ist objektiv, fair und transparent und wird seit jeher im Muckturnier-Programm angewandt; seit Version 0.7.3 auch unter Berücksichtigung der gegnerischen Tore zur weiteren objektiven Differenzierung.

Die beiden vom Preisschafkopf/Schafkopfrennen bekannten Auszählverfahren „Plus“ und „Plus-Minus“ berücksichtigen das Gewinnen oder Verlieren von Bobbln nicht. Das mag bei einem anderen Spielmodus anders aussehen, aber für das Auswerten eines Muckturniers, auf dem man Bobbl spielt, sind beide Verfahren ungeeignet.
Weil wenn man schon Bobbl spielt, dann sollte auch das Paar oder der Spieler mit den meisten gewonnenen Bobbln das Turnier gewinnen. Die Bobbl malen wir dem Verlierer ja schließlich nicht aus Spaß hin ;-)