Mein erstes C++-Projekt: ein TabuBot

Ich benutze in der Berufsschule Java und auf der Arbeit programmiere ich in C# mit einem Framework das auf SQL-Windows beruht.
Beides läuft in Laufzeitumgebungen (JVM und .NET). Ich möchte gerne davon weg. Also fange ich nun hier und jetzt mein erstes C++-Projekt an.
Nun zu meinem Projekt.

Idee:
Einen Bot für Jabber-MUC, der als Spielleiter einer Tabu-Runde fungiert.

Spielablauf:
Der Initiator der Runde kann die Anzahl der Runden einstellen und hat allen anderen Spielern gegenüber priveligierte Rechte.
Dabei werden die Teams zufällig ausgelost und bekannt gegeben. Der Bot lost auch aus, wer im jeweiligen Team beginnt das Wort zu beschreiben. Anschließend geht es reihum. Beiden Teams werden zeitgleich Begriffe zugeteilt. Das Zuteilen sieht folgendermaßen aus. Einem Spieler je Team wird das Wort, dass er beschreiben soll, per PN zugeschickt. Ebenso die Worte die er nicht verwenden darf. Dem gegnerischen Team werden die verbotenen Worte ebenfalls per PN zugestellt. Falls ein verbotener Begriff verwendet wird, kann das gegnerische Team per Keyword buzzern. Damit ist die Runde beendet.
Der Initiator der Runde entscheidet, ob es gerechtfertigt war oder nicht. Falls ein verbotenes Wort benutzt wurde bekommt das gegnerische Team einen Punkt. Wurde grundlos gebuzzert bekommt wiederum das andere Team den Punkt.
Das Team, das den Begriff (in richtiger Schreibweise) als erstes erraten hat bekommt den Punkt und neue Begriffe werden “verteilt”.

Bekannte Probleme:
Ein Problem ist, dass die Spieler untereinander die Begriffe per PN tauschen können.
Auch können verbotene Worte nicht erkannt werden. Alle Variationen und Möglichkeiten automatisiert zu erkennen übersteigt den Umfang eines so simplen Bots.
Im Großen und Ganzen ist man darauf angewiesen, dass alle fair spielen. Der Initiator hat die Schiedsrichterrolle im Spiel inne.

Technische Ansätze:
Die Begriffe werden in einem XML-File gespeichert. Dadurch können Begriffe beliebig hinzugefügt und entfernt werden. Man kann sie per Hand pflegen.
Sämtliche Events werden in einer lokalen Log-Datei mitgeschrieben, um den Spielverlauf optimieren zu können und auch Fehler leichter entdecken zu können. Dabei werden keine Nicknames erfasst, sondern nur zufällig verteilte Codes als Platzhalter verwendet.
Administriert wird der Bot über Propertie-Files. Eine Online-Administration ist nicht angedacht.

Lizenz:
Den kompletten Code werde ich unter die ISC-Lizenz stellen. Dies wird geschehen, so bald ich einen ersten lauffähigen Entwurf habe. Dazu dann mehr auf diesem Blog.

Ich würde mich über Feedback und Verbesserungsvorschläge freuen. Außerdem suche ich noch einen Namen für mein Projekt, der keine Markenrechte verletzt. Ideen gerne als Kommentar oder an gimbar@breax.org :) Schreibt mir doch einfach!

One Response to “Mein erstes C++-Projekt: ein TabuBot”

  1. gimbar sagt:

    Momentan tendiere ich zu dem Namen “strigops”. Die wissenschaftliche Bezeichnung (jedenfalls der Anfang davon), des Kakapo.
    Bleibe aber offen für neue Ideen.

Leave a Reply

QR Code Business Card