Muckturnier: readme

Autor:Tobias Leupold
Homepage:http://nasauber.de/opensource/muckturnier/
Kontakt:tobias . leupold at gmx . de
Datum:28.07.2017

Inhaltsverzeichnis

1   Beschreibung des Programms

1.1   Was ist Muckturnier?

Muckturnier ist ein Programm, mit dem man ein Muckturnier auswerten kann.

Es werden verschiedene Turniertypen unterstützt: Es können sowohl feste Paare, als auch einzelne Spieler angemeldet werden. Die Paare, die gegeneinander antreten, können in jeder Runde ausgelost, oder nach einem festen Schema für den Turnierablauf zugeordnet werden.

Die Anzahl der Punkte pro Bobbl und der Bobbl pro Runde können frei gewählt werden.

1.2   Regeln für das Turnier

Die genauen Regeln („Wenz über Muck“, doppelt nach Einwerfen oder nicht, mit oder ohne Geier etc.) sind für die Auswertung nicht von Belang, solang Bobbl gespielt werden.

Prinzipiell ist zwischen einem Turnier mit festen Paaren und einem mit einzelnen Spielern zu unterscheiden. Wird mit festen Paaren gespielt, muss logischerweise eine gerade Anzahl von Paaren angemeldet werden, damit man mit dem Turnier beginnen kann. Wenn mit einzelnen Spielern gespielt wird, entsprechend eine durch vier teilbare Anzahl.

Die Punktwertung ist unabhängig vom Turniertyp:

  • Gespielt wird pro Runde eine definierte Anzahl Bobbl, wobei jeder Bobbl bis zu einer definierten Zahl von Punkten gespielt wird. Gewonnen hat das Paar, das zuerst die nötige Punktezahl erreicht oder überschreitet.
  • Das Paar, das den Bobbl gewinnt, bekommt die für den Bobbl festgelegten Punkte (z. B. 21). Eigentlich durch das letzte Spiel darüber hinaus erreichte Punkte werden nicht gezählt.
  • „Brillen“ (doppelte Bobbl, wenn ein Bobbl zu null gewonnen wird) werden nicht doppelt, sondern wie ein normaler Bobbl gewertet.
  • Die Rangliste wird nach gewonnenen Bobbeln aufgestellt. Bei gleich vielen gewonnenen Bobbeln entscheiden die in den verlorenen Bobbeln erreichten Punkte („geschossene Tore“) über die Platzierung.

Es kann in jeder Runde ausgelost werden, wer gegen wen an welchem Tisch spielt.

Wenn mit festen Paaren und nach dem hier in der Gegend üblichen Turniermodus gespielt wird, dann können die Paare, die gegeneinander spielen, automatisch ausgewählt werden (vgl. Feste Paare). Dieser Turniermodus funktioniert wie folgt:

Am Anfang des Turniers wird für jedes Paar ein Start-Tisch für die erste Runde und die Rolle „Paar 1“ oder „Paar 2“ ausgelost. Paar 1 bleibt das ganze Turnier lang am ausgelosten Tisch sitzen, Paar 2 rückt nach jeder Runde einen Tisch weiter. Erreicht ein Paar den letzten Tisch, wechselt es nach der entsprechenden Runde an den Tisch Nr. 1.

1.3   Gibt es Beschränkungen?

Das Programm enthält keine gewollten Beschränkungen. Im Realeinsatz ist Muckturnier auch noch nie an irgendwelche Grenzen gestoßen. Die Punkte pro Bobbl und die Anzahl der Bobbl pro Runde sind (aus Gründen der Optik des GUI) auf maximal 999 eingestellt. Sollte tatsächlich jemand mehr brauchen, kann diese Einstellung aber im Quelltext des Einstellungen-Dialogs beliebig geändert werden.

Nur der Vollständigkeit halber: Faktisch begrenzen abgesehen davon tatsächlich die Datentypen die maximale Anzahl der Paare bzw. Spieler, Bobbl, Punkte und Runden. Mit einem 32-Bit-Build sind z. B. theoretisch maximal jeweils 2 147 483 648 möglich.

2   Benutzung von Muckturnier

2.1   Generelles zur Benutzung

2.1.1   Oberfläche und Dialoge

Ist noch kein Turnier geöffnet, werden nur die Knöpfe zum Anlegen bzw. Öffnen eines Turniers angezeigt (alternativ kann man das auch über „Datei“ → „Neues Turnier starten“ bzw. „Turnier öffnen“ machen). Sobald ein Turnier geöffnet ist bzw. ein neues Turnier angelegt und die Einstellungen gespeichert wurden, erscheint der „Paare“- bzw. „Spieler“-Dialog. Wenn die nötige Anzahl an Paaren bzw. Spielern angemeldet wurde, erscheint der „Ergebnisse“-Dialog, und nach der Eingabe des ersten Ergebnisses schließlich der „Rangliste“-Dialog.

Standardmäßig werden die Dialoge als Tabs (also hintereinander) angezeigt. Sie können aber auch (durch Ziehen mit der Maus) neben- oder übereinander angezeigt werden, sofern das Fenster groß genug ist. Weiterhin können alle Dialoge aus dem Hauptfenster herausgezogen, und dann als eigene Fenster angezeigt werden. Das ist z. B. nützlich, wenn man die Rangliste live über einen Beamer (etwa auf einem virtuellen zweiten Desktop) anzeigen will o. Ä.

2.1.2   Speichern

Mit jeder Dateneingabe oder -änderung wird die Datenbank aktualisiert. Man muss also den jeweils aktuellen Zustand der Datenbank nicht extra speichern.

Jeder Schreibvorgang ist „atomar“, d. h., dass ein Datensatz entweder vollständig oder gar nicht gespeichert wird. Es sollte also auch bei einem Stromausfall (Netzteilstecker wird versehentlich aus dem Notebook gezogen) nicht zu Inkonsistenzen in der Datenbank kommen.

2.2   Einstellungen

Der Einstellungen-Dialog wird automatisch angezeigt, nachdem ein neues Turnier angelegt wurde. Hier werden der Turniertyp und die Parameter des Turniers festgelegt.

Es kann zwischen den Varianten „Feste Paare“ und „Einzelne Spieler“ gewählt werden (vgl. hierzu auch Regeln für das Turnier). Weiterhin können die Anzahl der Punkte pro Bobbl und die zu spielenden Bobbl pro Runde eingestellt werden. Die Voreinstellung ist 21 Punkte pro Bobbl und zwei Bobbl pro Runde.

Über „Datei“ → „Einstellungen“ kann nach dem Festlegen der Einstellungen für ein offenes Turnier auf den Dialog zugegriffen werden. Die gewählte Konfiguration wird dann angezeigt. Es kann dann auch der komplette Inhalt der Datenbank, nach Rückfrage, mittels eines Klicks auf „Datenbank zurücksetzen“ gelöscht werden (alternativ kann man auch ein neues Turnier anlegen und die bestehde Datei auswählen. Sie wird dann, ebenfalls nach Rückfrage, mit einer leeren überschrieben).

2.3   Paare bzw. Spieler anmelden

Hier können die Paare bzw. Spieler gespeichert werden. Es wird jeweils ein Name vergeben. Bei einzelnen Spielern sollte dies sinnvollerweise einfach der Name des Spielers sein, bei Paaren die Namen der Paarmitglieder. Übersichtlich ist z. B. „Nachname Vorname / Nachname Vorname“. Das erleichtert die Suche, wenn später auf einem Spielstandzettel z. B. nur noch „Vorname / Vorname“ steht. Der Name kann frei gewählt werden.

Ändern kann man einen Paar- oder Spielernamen jederzeit (auch, wenn bereits Spielstände eingegeben wurden), indem man ihn in der Liste doppelt anklickt (alternativ auch per Rechtsklick über das Kontextmenü). Gespeichert wird die Änderung durch das Drücken der Return- bzw. Enter-Taste.

Wenn mit dem Turnier noch nicht begonnen wurde (also noch keine Spielergebnisse gespeichert wurden), können Paare oder Spieler gelöscht werden. Hierzu einfach das Paar oder den Spieler mit der rechten Maustaste anklicken und im Kontextmenü „Paar/Spieler löschen“ auswählen. Liegen bereits Spielergebnisse vor, ist nur noch das Ändern des Paar- bzw. Spielernamens möglich.

2.4   Spielergebnisse eintragen

2.4.1   Rundenauswahl

Zunächst wird die Runde ausgewählt, für die das Ergebnis eingetragen werden soll. Wenn eine Runde offen ist (also noch nicht alle Ergebnisse der entsprechenden Runde eingetragen wurden), dann wird automatisch diese Runde geöffnet (bzw. die erste offene Runde, falls mehrere Runden offen sind). Wir das Kästchen neben der Rundenauswahl ausgewählt, wird die Runde als abgebrochen markiert, vgl. Zeitbegrenzung.

Alle bisher abgeschlossenen Runden sowie alle offenen Runden können über die Rundenauswahl angezeigt bzw. bearbeitet werden.

2.4.2   Paar- bzw. Spielerauswahl

Die Paar- bzw. Spielerauswahl variiert je nach Turniertyp:

2.4.2.1   Feste Paare

Es können zwei Paare ausgewählt werden.

Rechts kann „Tischnummer und Paare automatisch auswählen“ angehakt werden. Für die automatische Auswahl muss klar sein, wie ausgelost wurde. Das ergibt sich aus den eingegebenen Spielergebnissen. Es wird immer die Runde vor der gewählten Runde als Berechnungsgrundlage verwendet. In der ersten Runde steht folglich noch keine automatische Auswahl zur Verfügung. ist die Option gesetzt, dann werden, wenn ein Parameter („Tisch“, „Paar 1“ oder „Paar 2“) gewählt wird, die jeweils anderen passend ergänzt (bzw. eine Warnung angezeigt, wenn z. B. als „Paar 1“ ein Paar ausgewählt wird, das laut Auslosung ein „Paar 2“ ist).

Als komfortabel hat sich die Auswahl über die Tischnummer erwiesen. Man sollte also auf den Spielzetteln neben der jeweiligen Runde und den Paarnamen auch die Tischnummer notieren lassen.

Die automatische Auswahl klappt natürlich nur dann, wenn die Paare, die die Tische wechseln („Paar 2“), sich regelkonform umsetzen, die anderen sitzen bleiben, und die Ergebnisse richtig eingetragen wurden. Gewissermaßen dient das automatische Auswählen also auch als Kontrolle für die Turnierleitung.

Wird „Tischnummer und Paare automatisch auswählen“ nicht gesetzt, dann wird davon ausgegangen, dass die Paare und Tische in jeder Runde ausgelost werden. In diesem Fall findet – abgesehen davon, dass zwei verschiedene Paare ausgewählt werden müssen – keine Überprüfung der Auswahl statt.

2.4.2.2   Einzelne Spieler

Es können je zwei Spieler pro Paar, also insgesamt vier Spieler ausgewählt werden. Außerdem wird eine Tischnummer gewählt. Bei diesem Turniertyp ist ohnehin davon auszugehen, dass in jeder Runde neu ausgelost wird, so dass hier keine automatische Auswahl angeboten wird.

2.4.3   Eintragen der Ergebnisse

Unter der Paarauswahl gibt es für jeden Bobbl ein Eingabefeld. Oben steht Paar 1 und unten Paar 2 (entsprechend der gängigen Spielzettel – ein Beispiel-Spielstandzettel ist auf der Muckturnier-Homepage zu finden). Das ausgewählte Paar bekommt den Bobbl (hat ihn also verloren; hier den Radio-Knopf aktivieren) und es können die erreichten Punkte („geschossene Tore“) eingegeben werden. Das andere Paar bekommt automatisch die festgelegten Bobbl-Punkte, hier wird das Eingabefeld deaktiviert (außer, wenn der Bobbl abgebrochen wurde, vgl. Zeitbegrenzung).

Der Spielstand kann entweder mit dem „Ergebnis eintragen“-Knopf gespeichert werden, oder indem man in einem der beiden Eingabefelder im letzten Spiel die Return- bzw. Enter-Taste drückt.

2.4.3.1   Zeitbegrenzung

Wenn eine Zeitbegrenzung pro Runde vereinbart ist, kann eine Runde auch abgebrochen werden. Hierzu muss das entsprechende Kästchen neben der Rundenauswahl aktiviert werden. Danach wird pro Bobbl ein zusätzliches Kästchen neben der Bobblauswahl angezeigt. Wenn dieses aktiviert wird, ist der jeweilige Bobbl als abgebrochen markiert. In diesem Fall können zwei Spielstände eingegeben werden, die jeweils als „geschossene Tore“ zählen. In diesem Fall hat keiner den Bobbl gewonnen (bzw. beide Paare haben ihn verloren).

Wer mit Zeitbegrenzung spielt, will evtl. die über „Extras“ anzeigbare Stoppuhr verwenden. Diese ist ein Countdown-Timer. Wenn die Zeit abgelaufen ist, wird sie wieder hochgezählt, und die Zeitanzeige wechselt die Farbe von schwarz nach rot.

2.4.4   Eingetragene Ergebnisse

Unten werden alle bisher eingetragenen Spielergebnisse angezeigt. Per Kontextmenü (mit der rechten Maustaste oder mit einem Doppelklick einen Spielstand anklicken) kann man einen Spielstand löschen oder korrigieren. Beim Korrigieren wird der Spielstand auch gelöscht, aber die eingegebenen Daten werden als ausgewählte Werte gesetzt. So kann man z. B. einen falsch eingegebenen Punktestand schnell korrigieren, ohne die anderen Werte erneut eingeben zu müssen und den Tisch bzw. die Paare neu auszuwählen.

2.5   Rangliste

Sobald das erste Ergebnis eingetragen wurde, ist die momentane Rangliste verfügbar. Wenn es sich um ein Zwischenergebnis handelt, also von einer oder mehreren Runden noch Spielergebnisse fehlen, wird dies entsprechend vermerkt.

2.6   Turnierdaten exportieren

Sind alle Runden abgeschlossen (das Turnier also potenziell beendet), können via „Datei“ → „Turnierdaten exportieren“ (alle) Daten des Turniers in ein von Muckturnier und der Datenbank unabhängiges Format exportiert werden.

Man kann auswählen, welche Datensätze exportiert werden, und wie diese formatiert sein sollen (sollen z. B. Überschriften angezeigt werden, die Ergebnisse als einfache Zahl oder mit dem Bobbl-Symbol ausgegeben werden etc.).

Die Daten können als HTML oder CSV exportiert werden. Als Zeichensatz kommt jeweils UTF-8 zum Einsatz.

2.6.1   Export als HTML

Es wird eine als XHTML 1.1 formatierte und mit UTF-8 kodierte Datei ausgegeben. Das Ergebnis kann programm- und plattformunabhängig mit einem Webbrowser angezeigt werden.

Wenn alle verfügbaren Daten exportiert werden, dann eignet sich dieses Format vor allem für das Archivieren von Turnierergebnissen. So können alle relevanten Daten eines Turniers in eine formatierte, auf absehbare Zeit für Menschen lesbare Form gebracht, und auch später noch eingesehen bzw. ausgedruckt werden.

2.6.2   Export als CSV

Es wird eine in UTF-8 kodierte Datei ausgegeben, die als Trennzeichen Tabulatoren enthält. Diese kann z. B. mit einem Tabellenkalkulationsprogramm weiterverarbeitet werden, um etwa Urkunden o. ä. zu erzeugen.

3   Übersetzen aus den Quelltexten

Das Programm ist in C++ geschrieben (es wird der C++11-Standard genutzt) und linkt gegen Qt (ab Version 5.4). Es wird das QtSql-Modul für SQLite 3 und das SVG-Modul benötigt. Als Buildsystem kommt CMake (ab Version 3.1) zum Einsatz.

Sind Qt, CMake und ein C++11-fähiger Compiler vorhanden, dann ist das Übersetzen des Programms aus den Quelltexten ziemlich einfach. Beispielsweise muss man unter Linux im Quellcode-Ordner nur folgende Befehle ausführen:

mkdir build
cd build
cmake ..
make

Unter anderen Betriebssystemen heißen die Befehle evtl. anders (unter Windows muss man z. B. cmake -G "MinGW Makefiles" und mingw32-make statt nur cmake und make verwenden, sofern man mit MinGW kompiliert).

Diese Dokumentation ist in reStructuredText geschrieben. Wenn die Docutils vorhanden sind, dann wird sie während des Make-Vorgangs automatisch in eine HTML-Datei übersetzt.

Muckturnier kann dann (auf Linux und Windows mit standardmäßig vernünftig definierten Zielverzeichnissen) mittels

make install

systemweit installiert werden. Wie gewohnt kann man per make DESTDIR=<PREFIX> install den Zielverzeichnis-Prefix anpassen.

Die von mir für das statisch gelinkte Windows-Build verwendeten Scripts und Projektdateien sind unter res/windows_build zu finden (hier kommt qmake statt CMake zum Einsatz, da CMake momentan unter Windows kein statisch gelinktes Qt-Projekt bauen kann – und/oder ich zumindest nicht weiß, wie es gehen würde …).

4   Fehlermeldungen, Lob, Kritik, Mitmachen

Fehlermeldungen und Verbesserungsvorschläge sind immer willkommen! Einfach eine E-Mail an tobias . leupold at gmx . de schreiben!

Wer einen Patch schreiben will, sollte immer den aktuellen Entwicklungsstand (git master) als Ausgangspunkt verwenden. Dieser kann aus dem Git-Repository von Muckturnier git://git.l3u.de/muckturnier.git (anonym) ausgecheckt werden.

5   Schlussbemerkung

Wenn jemand Muckturnier auf einem Turnier eingesetzt hat, dann würde ich mich über Feedback freuen! Gerne würde ich das entsprechende Turnier auch als Referenz auf der Homepage mit auflisten, wenn ich darf.

Bisher hat Muckturnier immer fehlerfrei gerechnet und einwandfrei funktioniert. Der Autor übernimmt aber natürlich keinerlei Garantie für die Fehlerfreiheit, Verwendbarkeit, Funktionstüchtigkeit oder Verfügbarkeit des Programms (vgl. auch die für Muckturnier benutzte Lizenz GPL v2), für aus Fehlberechnungen oder -eingaben resultierende Wirtshausschlägereien oder sonst irgendwas ;-)

Viel Spaß mit Muckturnier und natürlich auch beim Mucken :-)