Muckturnier: readme

Autor:Tobias Leupold
Homepage:http://muckturnier.org/
Kontakt:tobias . leupold at gmx . de
Datum:10.11.2018

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 Runden, Bobbl pro Runde und Punkte pro Bobbl können frei gewählt werden.

1.2   Begriffsdefinitionen

Um Unklarheiten zu beseitigen vorab ein paar Definitionen:

Runde
Eine Runde ist ein Turnierabschnitt, der aus mehreren (üblicherweise zwei) Bobbeln besteht. I. d. R. wird vor dem Turnierbeginn die zu spielende Anzahl an Runden festgelegt.
Bobbl
Der Bobbl hat zwei Bedeutungen: Zum einen steht er für einen Turnierabschnitt, der aus mehreren Spielen besteht. Den Bobbl hat das Team gewonnen, welches zuerst eine definierte Punktezahl (i. d. R. 21) erreicht. Diese wird normalerweise nicht mehr aufgeschrieben (es zählt das Gewinnen des Bobbls).
Der Verlierer bekommt den Bobbl (das ist die andere Bedeutung), einen dicken Punkt, der hinter den letzten Punktestand der Verlierer gemalt wird.
Brille
Wird ein Bobbl zu Null gewonnen, wird oftmals zur Verdeutlichung ein doppelter Bobbl beim Verlierer gemalt, der mittels Steg und Bügeln zur Brille ausgestaltet wird. Üblicherweise zählt eine Brille bei einem Muckturnier wie ein normaler Bobbl.
Spiel
Ein Spiel wird angesagt („Wenz“, „Schneidermuck“ etc.) und besteht, wenn mit dem üblichen kurzen Blatt gespielt wird, aus sechs Stichen. Es muss eine definierte Anzahl an Punkten (jede Karte hat einen definierten Punktwert) erreicht werden, um das Spiel zu gewinnen.
Aufgeschrieben werden nicht die durch die Stiche erreichten Punkte, sondern ein für das Spiel definierter Punktwert, der für gewöhnlich die Art und Weise der Ansage (Schneider oder Schwarz angesagt) und den Ausgang des Spiels (Schneider oder Schwarz gewonnen) berücksichtigt.
Geschossene Tore
Die geschossenen Tore bezeichnen die Punkte, die das jeweilige Team in seinen verlorenen Bobbeln erreicht hat. Diese Punkte werden bei der Auswertung berücksichtigt: Wenn mehrere Teams gleich viele Bobbl gewonnen haben, wird nach geschossenen Toren sortiert (je mehr, desto besser).
Gegnerische geschossene Tore
Die gegnerischen geschossenen Tore bezeichnen die Punkte, die die Gegner in den gewonnenen Bobbeln des jeweiligen Teams erreicht haben. Bei einem Gleichstand der gewonnenen Bobbl und der geschossenen Tore können die gegnerischen geschossenen Tore als „dritte Ebene“ zum Erstellen der Rangliste herangezogen werden (je weniger, desto besser).

1.3   Regeln für das Turnier

1.3.1   Grundsätzliche Regeln

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. Das Turnier in mehrere Runden mit einer definierten Anzahl Bobbeln einzuteilen ist üblich, aber nicht zwingend nötig: Es kann auch nur eine Runde (dann also das ganze Turnier) mit entsprechend vielen Bobbeln gespielt werden.

1.3.2   Punktwertung

Die Punktwertung ist unabhängig vom Turniertyp:

  • Gespielt wird pro Runde eine definierte Anzahl Bobbl.
  • Jeder Bobbl wird bis zu einer definierten Zahl von Punkten gespielt. Gewonnen hat das Paar, das zuerst die nötige Punktezahl erreicht oder überschreitet, wobei der gewonnene Bobbl immer nur mit der für den Bobbl definierten Punktezahl gewertet wird – auch dann, wenn durch das letzte Spiel eigentlich mehr Punkte erreicht worden wären (das ist in jedem Fall mindestens ein Punkt mehr, als das gegnerische Team an Punkten, also geschossenen Toren erreicht haben kann).
  • Das Verliererpaar bekommt den Bobbl.
  • „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“, je mehr desto besser) über die Platzierung.
    Optional kann bei Bobbl- und Toregleichstand auch noch nach den „gegenerischen geschossenen Toren“ (den Punkten, die die Gegener in den gewonnenen Bobblen des jeweiligen Teams erreicht haben) unterschieden werden (je weniger, desto besser).

1.3.3   Auslosung und Turniermodus

Es kann sowohl ein Turnier mit festen Paaren als auch mit einzelnen Spielern ausgewertet werden. Für einzelne Spieler wird in jeder Runde ausgelost, wer mit wem gegen wen an welchem Tisch spielt. Bei festen Paaren können die jeweils gegeneinander antretenden Paare entweder ebenfalls pro Runde ausgelost werden, oder es kann nach folgendem Schema vorgegangen werden:

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.

In diesem Fall ist eine automatische Auswahl der passenden Paare bei der Eingabe der Tischnummer bzw. das Auswählen des gegnerischen Paars und der Tischnummer beim Auswählen eines der beiden Paare möglich (vgl. Feste Paare).

1.4   Gibt es Beschränkungen?

Das Programm enthält keine gewollten Beschränkungen. Im Realeinsatz ist Muckturnier noch nie an irgendwelche Grenzen gestoßen. Die verwendeten Datentypen und die zugrundeliegende SQLite-Datenbank setzen zwar faktisch Grenzen, allerdings wird man diese mit ziemlicher Sicherheit nicht erreichen.

Die Punkte pro Bobbl und die Anzahl der Bobbl pro Runde sind auf maximal 999 eingestellt (das Bedienelement braucht einen Maximalwert). Sollte tatsächlich jemand mehr brauchen, kann diese Einstellung in der Datei DefaultValues.h (die alle hart kodierten Werte enthält) beliebig verändert werden. Natürlich muss man Muckturnier danach neu kompilieren.

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 angelegt wurde, wird die „Paare“- bzw. „Spieler“-Seite angezeigt. Wenn die nötige Anzahl an Paaren bzw. Spielern angemeldet wurde, wird die „Ergebnisse“-Seite, und nach der Eingabe des ersten Ergebnisses schließlich die „Rangliste“-Seite angezeigt.

Standardmäßig werden die Seiten 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 Seiten 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, Akku leer) nicht zu Inkonsistenzen in der Datenbank kommen.

Trotzdem ist natürlich jeder selbst für seine Datensicherung verantwortlich!

2.2   Neues Turnier starten

Durch Klicken auf den großen Splash-Screen-Button links oder „Datei“ → „Neues Turnier starten“ kann eine neue Turnierdatenbank angelegt werden.

2.2.1   Turniereinstellungen

Es kann zwischen den Varianten „Feste Paare“ und „Einzelne Spieler“ gewählt werden (vgl. hierzu auch Auslosung und Turniermodus). Weiterhin können die Anzahl der Punkte pro Bobbl und die zu spielenden Bobbl pro Runde eingestellt werden.

Die Voreinstellung ist ein Turnier mit festen Paaren, 21 Punkten pro Bobbl und zwei Bobbln pro Runde.

Nach einem Klick auf „Turnier starten“ muss ein Dateiname für die neue Turnierdatenbank ausgewählt werden.

2.2.2   Turnierinformationen

Über „Datei“ → „Turnierinformationen“ wird für das laufende (offene) Turnier die gewählte Konfiguration angezeigt.

2.2.3   Prüfsummen

In „Extras“ → „Prüfsummen“ findet sich der Prüfsummen-Dialog. Die Idee dahinter ist folgende: Bei großen Turnieren ist es zweckmäßig, die Ergebnisse nicht nur an einem, sondern an zwei oder mehr Computern gleichzeitig und unabhängig voneinander einzugeben, damit man Eingabefehler finden kann. Sind die Prüfsummen identisch, dann sind auch die Paar-, Spieler und Ranglisten (also auch die eingegebenen Ergebnisse) identisch.

Man kann also damit „auf einen Blick“ sehen, ob alles richtig eingegeben wurde. Die Reihenfolge der Eingabe und etwaige Markierungen von Teilnehmern spielen keine Rolle. Die Ranglisten-Prüfsumme wird immer für die aktuelle Rangliste berechnet (nicht für Ranglisten vorhergehender Runden, auch wenn eine solche auf der Ranglistenseite gerade angezeigt wird).

Zweckmäßig ist der Abgleich der Prüfsummen, wenn eine Runde vollständig eingegeben wurde.

Wichtig ist, dass die Prüfsummen für die Paar- bzw. Spielerlisten identisch sind, da die Namen der Teilnehmer auch Teil des Datensatzes sind, mit dem die Prüfsumme für die Rangliste berechnet wird. Weicht nur ein Buchstabe in einem Namen oder ein Spielstand um einen Punkt ab, erhält man vollkommen unterschiedliche Prüfsummen.

Beispiel: Für eine Paarliste mit den Paaren „Karl / Fritz“ und „Heinz / Günther“ wird die Prüfsumme b54f ecc6 9a4a 7bd6 2811 64da 479a cd95 berechnet. Ändert man nur einen Buchstaben und benennt „Heinz / Günther“ zu „Heinz / Gunther“ um, dann erhält man eine ganz andere Prüfsumme, nämlich 0213 3fcc 74db f14d 3f17 7f33 48ac 1f0f.

Ist nun z. B. eine Runde eingegeben, und die Prüfsummen für die Ranglisten weichen ab, dann gibt es Eingabefehler. Zum Finden des oder der falsch eingegebenen Ergebnisses bzw. Ergebnisse kann man die Teil-Prüfsummen der Rangliste nutzen. Diese werden jeweils für die Hälfte der Rangliste berechnet, und die zugehörigen Ranglistendaten werden angezeigt. Klickt man auf „Aufteilen“, dann wird die jeweilge Hälfte der Rangliste wieder halbiert und die Prüfsummen neu berechnet.

Stimmt eine der Prüfsummen nicht, dann teilt man die jeweilige Hälfte weiter auf. Wenn beide nicht stimmen, dann immer die erste Hälfte weiter aufteilen. So kann schnell herausfinden, für welches Paar (bzw. welche Paare) ein Spielstand unterschiedlich eingegeben wurde – ohne, dass man die komplette Rangliste durchgehen muss.

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.3.1   Paare bzw. Spieler markieren

Es können beliebig viele Markierungen erstellt werden. Für jede Markierung kann eine Farbe und ein Name vergeben werden. Bei der Sortierung kann zwischen „neuer Block“ und „fortlaufend“ gewählt werden. Ein neuer Block gruppiert alle entsprechend markierten Namen, mit einer „fortlaufenden“ Markierung markierte Namen werden mit in den vorhergehenden Block einsortiert. Die Reihenfolge der Markierungen bestimmt die Reihenfolge der Anzeige.

Über das Kontextmenü der Paar-/Spielerliste können einzelne Paare/Spieler oder die ganze Liste markiert werden, bzw. es können Markierungen entfernt oder auch entsprechend markierte Einträge gelöscht werden.

Markierungen sind z. B. sinnvoll, wenn man vorangemeldete Spieler als noch nicht erschienen kennzeichnen will, Paare/Spieler, die das Startgeld noch nicht bezahlt haben etc.

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).

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

2.4.2   Paar- bzw. Spielerauswahl

Der Eingabedialog sieht die Eingabe von Runde, Tischnummer und zwei Paaren bzw. vier Spielern vor. Sollte ohne Tischnummern gespielt werden, können diese auch ausgeblendet werden. In diesem Fall werden sie automatisch intern gesetzt (für die Datenbank muss immer eine Tischnummer ausgewählt werden, auch dann, wenn sie nicht angezeigt wird) und die automatische Paarauswahl im „Feste Paare“-Modus steht nicht zur Verfügung.

Wenn man eine der Auswahlboxen rechts anklickt, dann erhält man eine komplette Liste aller noch zur Verfügung stehenden Paare/Spieler. Das ist bei kleineren Turnieren, wo die Liste übersichtlich ist, komfortabel – es muss nicht die Tastatur zur Eingabe benutzt werden.

Bei größeren Turnieren sollte man (zumindest anfangs) eher die Suchfunktion benutzen: Durch die Eingabe von Teilen des Paar- bzw. Spielernamens in die Auswahlbox wird eine Vervollständigungsfunktion aktiviert, die nur passende Einträge der Liste anbietet.

Ein Name kann auch komplett manuell eingegeben werden, muss dann aber exakt mit dem angemeldeten Namen übereinstimmen. Ist das nicht der Fall, wird die Auswahl auf den letzten gültigen Namen zurückgesetzt.

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 nach der Auswahl eines Parameters („Tisch“, „Paar 1“ oder „Paar 2“) die jeweils anderen passend ergänzt.

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.

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   Punkte und Bobbl eingeben

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 anklicken) 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, s. u.).

Ein Rechtsklick auf einen der beiden Radio-Knöpfe bzw. Eingabefelder öffnet einen kleinen Eingabedialog, mittels welchem der Spielstand direkt durch einen Klick ausgewählt werden kann, ohne das Mausrad oder die Tastatur verwenden zu müssen.

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   Abgebrochene Bobbl

Wenn eine Zeitbegrenzung pro Runde vereinbart ist, kommt es vor, dass es unvollständige (abgebrochene) Spielstände gibt. Um ein solches Ergebnis einzugeben, wird einfach der letzte gespielte Bobbl als abgebrochen markiert (mit dem kleinen Knopf rechts oben). Daraufhin kann man zwei Spielstände eingeben, die jedem Paar als geschossene Tore gutgeschrieben werden. Beide Paare haben den Bobbl verloren. Alle folgenden Bobbl (sofern vorhanden) werden für beide Paare als „zu 0 verloren“ gewertet.

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.

Es kann mit der entsprechenden Checkbox eingestellt werden, ob die Rangliste – zusätzlich zu den gewonnenen Bobbeln und den geschossenen Toren – auch nach den geschossenen Toren der Gegner in den gewonnenen Bobbeln erstellt wird (vgl. auch Regeln für das Turnier).

Standardmäßig wird die Rangliste für den aktuellen Turnierstand angezeigt. Es können aber auch Verlaufs-Ranglisten für frühere Runden erstellt werden, hierzu einfach die entsprechende Runde auswählen.

2.6   Import und Export von Turnierdaten

2.6.1   Import einer Paar- bzw. Spielerliste

Wenn das Turnier noch nicht begonnen hat (also noch kein Spielstand eingegeben wurde), kann eine Paar- bzw. Spielerliste importiert werden. Der zugehörige Menüpunkt ist „Datei“ → „Import und Export“ → „[Paar|Spieler]liste importieren“. Hierfür kann eine einfache, UTF-8-kodierte Textdatei (wie sie auch von der Exportfunktion erzeugt wird) verwendet werden, die pro Zeile einen Paar- bzw. Spielernamen enthält.

Wird eine Datei geöffnet, die Zeichen außerhalb der ASCII-Kodierung enthält (Umlaute, Akzente, etc.), und mit der falschen Kodierung gespeichert wurde (z. B. Windows-1252, ISO 8859-1, ISO 8859-15 etc.), dann wird der Import abgebrochen.
Jeder vernünftige Editor (unter Linux was auch immer man nehmen will, unter Windows z. B. notepad++) kann eine solche Datei mit der „falschen“ Kodierung öffnen, und mit der „richtigen“ speichern, so dass sie trotzdem importiert werden kann.

Es wird eine Vorschau des zu importierenden Datensatzes angezeigt. Gibt es (wenn bereits Paare/Spieler angemeldet sind oder auch innerhalb der Importdatei) Duplikate und/oder Namen, die zu Verwechslungen führen könnten, werden diese extra angezeigt und können vom Export ausgeschlossen bzw. mit einem Präfix ergänzt werden (um sie nach dem Import leicht finden und evtl. umbenennen zu können).

In keinem Fall werden bestehende Anmeldungen überschrieben oder gelöscht.

2.6.2   Export der Paar- bzw. Spielerliste

Sobald mindestens ein Paar bzw. Spieler angemeldet wurde, kann eine Liste der Paare bzw. Spieler exportiert werden (um z. B. eine Liste zum Abhaken aus einer bereits mit Voranmeldungen gefüllten Datenbank erstellen zu können).

Der zugehörige Menüpunkt ist „Datei“ → „Import und Export“ → „[Paar|Spieler]liste exportieren“. Es kann auch eine per Markierungen ausgezeichnete Untermenge der Anmeldungsliste exportiert oder vom Export ausgeschlossen werden.

Die Liste wird als einfache Textdatei exportiert und ist UTF-8-kodiert. Man kann dieses Format mit einem beliebigen Texteditor oder Textverarbeitungsprogramm öffnen und weiterverarbeiten.

2.6.3   Export von Turnierdaten nach Abschluss des Turniers

Sind alle Runden abgeschlossen (das Turnier also potenziell beendet), können via „Datei“ → „Import und Export“ → „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.3.1   Export als HTML

Es wird eine als HTML5 formatierte, 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.3.2   Export als CSV

Es wird eine UTF-8-kodierte Datei ausgegeben, die als Trennzeichen Tabulatoren enthält. Diese kann z. B. mit einem Tabellenkalkulationsprogramm weiterverarbeitet werden.

Beim Öffnen darauf achten, dass als Zeichensatz „UTF-8“ und als Trennzeichen Tabulatoren eingestellt sind – systembedingt enthält eine CSV-Datei keinerlei Meta-Informationen!

2.7   Sonstige Funktionen

2.7.1   Die Turnierdatenbank zurücksetzen

Über „Extras“ → „Datenbank zurücksetzen“ können alle eingegebenen Daten (Spieler und Ergebnisse) gelöscht werden. Das ist an sich nur für Testanwendungen, Debugging und Entwicklung gedacht.

Sollen auch die Einstellungen geändert werden (Punkte pro Bobbl, Bobbl pro Runde oder Turniermodus), dann kann einfach die bestehende Datenbank mit einer neuen überschrieben werden.

2.7.2   Backup der Datenbank anlegen und wiederherstellen

Per „Extras“ → „Backup der Datenbank anlegen“ kann ein Backup des aktuellen Datenbank-Stands erzeugt werden. Es wird eine Datei mit dem selben Namen wie die geöffnete Datenbank angelegt, der zusätzlich den Zeitpunkt der Erstellung des Backups enthält.

Das Format für den Dateinamen ist „Datenbank_Jahr-Monat-Tag_Stunde-Minute-Sekunde“ (somit werden alle Backups automatisch nach dem Erstellungszeitpunkt sortiert), also beispielsweise Muckturnier_2018-07-25_14-48-14.mtdb für die Datenbank Muckturnier.mtdb.

Der über „Extras“ → „Backup wiederherstellen“ erreichbare Dialog listet alle verfügbaren Backups auf. Wenn ein Backup wiederhergestellt wird, wird die Datenbank damit überschrieben und neu geöffnet.

Das Ganze geht natürlich auch „zu Fuß“ (wenn auch nicht so bequem): Es werden nur Dateien kopiert bzw. umbenannt. Um ein Backup manuell zu erzeugen, kann man auch die Turnierdatenbank schließen, eine Kopie davon machen und sie dann wieder öffnen. Das selbe gilt für das Wiederherstellen eines Backups.

3   Tips aus der Praxis

Muckturnier wurde und wird schon seit einigen Jahren auf kleinen und großen Turnieren eingesetzt. Dabei haben sich einige Erkenntnisse ergeben, wie man sich das Leben leichter machen kann. Manche davon sind vielleicht nicht ganz offensichtlich und deswegen im folgenden aufgeführt.

3.1   Spielstandzettel

Die Eingabemaske der Spielstandseite wurde entsprechend der (mir zum damaligen Zeitpunkt einzig bekannten) gängigen Spielstandzettel gestaltet. Das heißt: Paar 1 oben, Paar 2 unten, 1. Bobbl links, 2. Bobbl rechts (bzw. bei mehr als zwei Bobbeln von links nach rechts). Mitunter werden auch um 90° gedrehte Spielstandzettel benutzt (also Paar 1 links, Paar 2 rechts und die Bobbl von oben nach unten).

Sinnvollerweise sollten die Spielstandzettel die Eingabemaske wiederspiegeln. Sonst muss man immer umdenken (wer hat was und wo muss es hin) – und das führt zu Eingabefehlern.

Obwohl man das für eine eher triviale Aufgabe halten könnte, ist es gar nicht so simpel, einen einfachen, übersichtlichen und eindeutigen Spielstandzettel zu entwerfen. Um dem einen oder anderen etwas Arbeit abzunehmen oder zumindest eine Idee zu liefern, habe ich einen Beispiel-Spielstandzettel auf die Muckturnier-Homepage gestellt.

Egal, wie die Zettel aussehen: Sie sollten unbedingt neben dem eigentlichen Spielstand alle verfügbaren Daten enthalten:

  • Die Namen aller Spieler (im Zweifelsfall kann man das Geschmiere eh nur teilweise entziffern)
  • Die richtige Zuordnung der Namen zu „Paar 1“ (oben) und „Paar 2“ (unten)
  • Die Tischnummer
  • Die Rundennummer

Nur so ist eine komfortable und schnelle Eingabe und auch eine Überprüfbarkeit und Nachvollziehbarkeit gewährleistet!

Wenn mit dem normalen „Paar 1 bleibt sitzen, Paar 2 rutscht weiter“-Schema gespielt wird, dann ist ab der zweiten Runde die schnelle automatische Paarauswahl über die Tischnummer möglich – es ist eine echte Arbeitserleichterung, wenn man nur eine Tischnummer auswählen muss, anstatt Namen aus einer langen Liste herauszusuchen (ganz davon zu schweigen, dass aus „Meier Bernd / Müller Karl“ meistens noch „Müller + Meier“ oder „Karl & Bernd“ wird, und man das Ganze nicht richtig lesen kann)!

Am besten macht man kleine Blöckchen mit Spielstandzetteln für alle geplanten Runden und alle verfügbaren Tische, auf denen die Runden- und Tischnummern bereits aufgedruckt bzw. vorgeschrieben sind. Je weniger die Leute machen müssen, desto weniger geht schief.

3.2   Zeitbegrenzung

Man sollte auf jeden Fall eine Zeitbegrenzung pro Runde ausmachen. Zwei Bobbl sind in 45 Minuten komfortabel zu karten (meistens dauert es gar nicht so lang), 40 sind okay, 35 sportlich aber auch noch machbar (je nach dem, ob man z. B. einen „Pflichtmuck“ um einen Punkt spielt, wenn niemand etwas ansagt, oder das nächste Spiel doppelt zählt wird es etwas mehr oder weniger hektisch bei 35 Minuten).

So verhindert man, dass ein einzelnes oder wenige Trödel-Paare den kompletten Betrieb aufhalten.

Ist die Zeit abgelaufen, dann wird die Runde abgebrochen, und die in dem jeweiligen abgebrochenen Bobbl erreichten Punkte zählen als geschossene Tore für das jeweilige Paar. Das ist innerhalb der Wertung immer noch fair und transparent, da ja kein Paar den Bobbl gewonnen hat, aber die Punkte trotzdem zählen.

Damit macht man das Turnier und vor allem sein Ende zeitlich planbar und vermeidet genervte weil gelangweilte Karter.

3.3   Voranmeldungen

Beim Führen einer Voranmeldungsliste sollte man darauf achten, dass das Ergebnis in eine reine Textdatei konvertiert werden, die man dann importieren kann. Alternativ kann man die Voranmeldungen natürlich auch gleich in eine Muckturnier-Datenbank schreiben.

Zum Beginn der Anmeldung markiert man dann alle vorangemeldeten Paare mit der entsprechenden Markierung (z. B. mit einer roten Markierung namens „vorangemeldet“, die einen eigenen Block erzeugt). Kommt ein entsprechendes Paar, dann wird die Markierung entfernt. Nicht vorangemeldete Paare, die „einfach so“ kommen, werden auch „einfach so“ eingetragen.

Wenn es dann losgehen soll, sind alle vorangemeldeten aber nicht erschienenen Paare immer noch als „vorangemeldet“ markiert und können über das „Ganze Liste“-Menü mit einem Klick gelöscht werden.

Weitere Markierungen (bisher nur ein Spieler da, Startgeld noch nicht bezahlt, allein gekommen etc.) und die Handhabung derselben bleiben der Kreativität der Turnierleitung überlassen ;-)

3.4   Schnelle Eingabe der Ergebnisse

3.4.1   Paare finden

Unabhängig vom Turniermodus ist zumindest die Eingabe der 1. Runde aufwändig, weil man die Paare auf jeden Fall heraussuchen muss. Das Heraussuchen eines Paares aus der ganzen Liste ist mitunter langwierig, weil oft die Namen nicht in der „richtigen“ (also angemeldeten) Reihenfolge auf den Spielstandzetteln stehen und/oder unvollständig und/oder kaum lesbar sind.

Am besten benutzt man zum Auffinden des jeweiligen Paares die Suchfunktion in der Auswahlbox: Bereits das Eingeben der Anfangsbuchstaben der Nach- oder Vornamen schränkt die Auswahl sehr ein, bei jeweils zwei Buchstaben bleiben meistens nur doch zwei oder drei Möglichkeiten übrig. Es können auch Teile mitten aus einem Namen sein. Irgend ein Brocken bringt schon was :-)

Beispiel: Für das Paar „Meier Bernd / Müller Karl“ reicht es höchstwahrscheinlich aus, nach „me mü“ zu suchen. Groß- und Kleinschreibung müssen nicht „richtig“ eingegeben werden. Umlaute und Akzekte können auch weggelassen oder ersetzt werden, so dass z. B. auch die Suche nach „me mu“ oder „me mue“ zum gewünschten Ergebnis führt Das selbe gilt für Akzente: „André“ findet man auch bei der Suche nach „andre“. Die Reihenfolge der Suchbegriffe ist ebenfalls egal: „mü me“ funktioniert genauso wie „me mü“.

3.4.2   Punkte eingeben

Die Punkte kann man schnell (und ohne Tippfehler) über den Punkte-Dialog eingeben, wo man den jeweiligen Punktewert per Klick auswählen kann. Hierzu einfach den Bobbl oder das Eingabefeld mit der rechten Maustaste anklicken.

3.5   Anmeldung mit mehreren Rechnern

Ab einer gewissen Größenordnung ist es sinnvoll, mehr als einen Anmeldungsrechner zur Verfügung zu stellen. In diesem Fall sollte man an Rechner 1 die Voranmeldungsliste fertig machen und markieren. Dann die komplette Datenbank an Rechner 2 (etc.) weitergeben (per USB-Stick, Netzwerk-Share etc.)
An sich sollte eine Kopie der Datenbank im Laufenden Betrieb vollständig und funktionstüchtig sein, aber trotzdem besser vor dem Kopieren sicherheitshalber das Programm schließen, damit nichts schiefgehen kann!.

Beide Anmeldungsrechner nehmen Anmeldungen entgegen und entfernen jeweils die „vorangemeldet“-Markierung.

Wenn es dann losgehen soll, müssen die Datenbanken zusammengeführt werden. Hierzu einfach an beiden Rechnern die noch markierten Paare/Spieler löschen. Es bleiben dann nur die tatsächlich Gekommenen übrig. Rechner 2 exportiert dann die Paar-/Spielerliste und gibt sie an Rechner 1 weiter. Der importiert die Liste. So werden dann die Listen zusammengeführt.

Am Schluss kann dann Rechner 1 die komplette, zusammengeführte Datenbank wieder an Rechner 2 weitergeben (z. B. zum Zweck der redundaten Eingabe, s. u.).

In jedem Fall sollte man sicherheitshalber eine Papier-Anmeldungsliste führen, wo die Voranmeldungen aufgedruckt sind, und neue Paare/Spieler dazugeschrieben werden! Wenn alle Stricke reißen (Eingabe-/Bedienfehler, Computer kaputt etc.) kann man so immer noch die Anmeldung „zu Fuß“ rekonstruieren.

3.6   Auswertung mit mehreren Rechnern

Ab einer gewissen Größenordnung ist es sinnvoll, alle Ergebnisse an mindestens zwei Rechnern unabhängig voneinander einzugeben. Das schafft zum einen Redundanz – wenn ein Computer ausfällt, dann hat man noch den anderen – und zum anderen kann man Eingabefehler finden.

Zum Abgleich der Eingabe gibt es Prüfsummen. Wichtig: Die Prüfsumme der Paar-/Spielerliste muss identisch sein, sonst stimmen die Prüfsummen der Ranglisten nicht überein, auch wenn die Punkte identisch sind! Also darauf achten, dass etwaige Änderungen an Paar-/Spielernamen synchron vorgenommen werden. Hinterher die Prüfsummen abgleichen!

Weichen die Ranglisten-Prüfsummen ab, dann wurden Ergebnisse unterschiedlich eingegeben. Mit dem Prüfsummen-Dialog kann man die Rangliste in Hälften unterteilen, für die jeweils Teil-Prüfsummen berechnet werden. Immer die Hälfte weiter unterteilen, für die zuerst die Prüfsummen abweichen. So kann man den Eingabefehler eingrenzen und schließlich korrigieren.

Wenn die Ranglisten (und ihre Prüfsummen) identisch sind, dann wurden auch alle Ergebnisse identisch eingegeben. Dass der selbe Eingabefehler an zwei Rechnern unabhängig von einander identisch gemacht wurde, ist eher unwahrscheinlich. Also kann man bei identischen Ranglisten davon ausgehen, dass auch alle Ergebnisse korrekt in der Datenbank gelandet sind.

Sinnvollerweise werden die Ranglisten pro (fertiger) Runde abgeglichen.

4   Übersetzen aus den Quelltexten

4.1   Kompilieren von Muckturnier

Muckturnier ist in C++ geschrieben (es wird der C++11-Standard genutzt) und linkt gegen Qt (ab Version 5.7). Es wird das QtSql-Modul für SQLite 3 und das SVG-Modul benötigt.

Als Buildsystem kommt CMake (ab Version 3.2) zum Einsatz.

Optional wird diese Dokumentation von reStructuredText in eine HTML-Datei konvertiert. Hierzu wird rst2html aus den Docutils benutzt. Ist das nicht gewünscht oder möglich, dann kann das Übersetzen mittels des Schalters DOCUMENTATION ausgesetzt werden (cmake -DDOCUMENTATION=OFF .. statt cmake ..).

4.1.1   Normaler Build (dynamisch gelinkt)

Sind alle Abhängigkeiten installiert, 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

Ohne Generator-Option erstellt cmake Makefiles für make. Wer z. B. lieber mit Ninja kompilieren will (was sicher keine schlechte Idee ist!), muss stattdessen entsprechend cmake -G Ninja .. benutzen.

Unter anderen Betriebssystemen heißen die Befehle evtl. anders. Unter Windows muss man z. B., sofern man mit MinGW (in diesem Beispiel die 32-Bit-Version) kompiliert, folgende Befehle ausführen:

mkdir build
cd build
cmake -G "MinGW Makefiles" ..
mingw32-make

4.1.2   Statisch gelinkte Windows-Version

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 … wer weiß, wie es (mittlerweile) geht, der möge mich bitte erleuchten.

4.2   Installation

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

make install

systemweit installiert werden. Unter Linux wird dann (wenn man nichts verändert) innerhalb des /usr-Verzeichnisbaums installiert (die ausführbare Datei nach /usr/bin, die Readme-Datei nach /usr/share/doc/muckturnier etc.), unter Windows nach C:\Programme\muckturnier (bzw. dem jeweiligen Standardpfad für Programme).

Die Zielverzeichnis-Hierarchie kann man mittels des cmake-Schalters CMAKE_INSTALL_PREFIX anpassen, z. B. mit cmake -DCMAKE_INSTALL_PREFIX=~/local ... Das funktioniert auch dann noch, wenn das Projekt bereits gebaut wurde.

Mit make DESTDIR=<PREFIX> install kann man unabhängig davon vor die definierte Zielverzeichnis-Hierarchie noch einen Präfix hängen. Wenn man z. B. CMAKE_INSTALL_PREFIX nicht verändert, und make DESTDIR=~ install ausführt, dann wird nicht nach /usr, sondern nach ~/usr installiert.

Die „freedesktop shared mime info“-Datei muckturnier.xml muss man evtl. noch mit den xdg-utils anmelden, damit der Dateityp .mtdb mit dem Muckturnier-Programm verknüpft wird.

5   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.

6   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 :-)