Gtk Scrabble Clone

noreaga

noreaga

Eroberer
Gtk Scrabble Clone Projekt

Hallo zusammen!

Bei einer Scrabble Runde mit meiner WG ist mir vor ein paar Wochen die Idee gekommen, dass es doch möglich sein müsste einen Algorithmus zu schreiben, der mir alle Wörter ausspuckt, die aus den Buchstaben gebildet sind, welche auf meiner "Spielbank" liegen.
Nachdem ich mir ein paar Konzepte überlegt habe, bin ich auf eine relativ gut funktionierende Idee gekommen. Momentan arbeite ich mit dem Wortschatz des "aspell" Wörterbuchs, welches ich in eine Mysql Datenbank gepackt habe. Nach Eingabe von ein paar Buchstaben rödelt das Ding los und findet alles, was auf diese Buchstaben passt. Schön, zumindest kann ich jetzt beim Scrabblen nicht mehr verlieren.

Die Tage kam mir dann die Idee, dass wenn man die Engine schon hat, man doch auch ein nettes Spiel draus machen könnte. Da ich gerne mal mit mehreren Leuten zusammen arbeiten will, dachte ich mir ich stell hier mal die Anfrage, ob jemand Interesse hätte dieses kleine Projekt weiterzuentwickeln.

Das ganze soll in C++ geschrieben werden. Von der MySQL DB möchte ich gerne weg. Entweder mit einer Lösung über sqlite oder einem eigenen Format für das Wörterbuch. Für die grafische Umsetzung hätte ich mir GTK bzw. QT vorgestellt. Da ich davon aber bisher nur absolut rudimentäre Grundkenntnisse hab, wärs interessant jemanden zu finden, der sich um diesen Bereich gerne kümmern würde.

Ich hänge mal den Quellcode (noch sehr buggy - siehe README) inklusive makefile und dem sqldump für das Wörterbuch hier an. Würde mich sehr freuen, wenn sich jemand meldet, bzw. wenn jemand bescheid sagen kann, wo ich eventuell Leute für das Projekt finden könnte.

Greets!
 

Anhänge

  • scrablix.tar.gz
    232,8 KB · Aufrufe: 4
Zuletzt bearbeitet:
an und firsich ganz nette idee. an sowas hatte ich auch schon gedacht aber nicht an scrabble sondern wegen dem "9-mal klug" das bei uns hier in der waz samstags bei ist. Nur hapert es leider an meinen programmierkenntnissen ein wenig so dass ich das bisher nocht umsetzen konnte.
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

habs grade ausprobiert. läuft bei mir ( Fedora 8 ) nicht! Schmiert einfach mit einem "Speicherzugriffsfehler" ab. Bin grad den Debug Krams am installieren. Mal sehen was der zu nörgeln hat.

Hab aber auch schon einen Vorschlag : :) Wie währe es wenn du eine abfrage der kommandozeilen machst dann könnte man das so starten >>> scrablix beispielbuchstaben <<<
 
Zuletzt bearbeitet:
Bei mir gibts auch nur einen Speicherzugriffsfehler, vielleicht wegen der fehlenden Datenbank?
 
erm... hab ich vergessen:

Ich hab die binary im archiv gelasen glaub ich. Checkt mal die README, da stehts drin, wie man das ganze installiert.

Am besten kompiliert ihr selber. Einfach
make
tippen. Dann wird eine binary erzeugt. Sollte es nicht gehen lassts mich mal wissen, dann kuck ich mir das nochmal an.
 
jau, das binary ist drin aber selbst wenn ich das selber übersetze crasht das. der gdb will bei mir auch nicht so wie er soll. er sagt mir nur das da noch ein paar teile fehlen die ich nicht nachinstallieren kann :(
.
.
.
EDIT (autom. Beitragszusammenführung) :
.

grade gesehen, die datei mysql.h die du im readme erwähnst fehlt! oder meinst di die datei ownsql.h ?
 
Zuletzt bearbeitet:
also vielleicht nochmal ausführlich:

zuerst sollte man sich vergewissern, dass die mysql-devel pakete installiert sind (inklusive der header Dateien -- sollten normalerweise unter /usr/include/mysql liegen) falls nicht erstmal nachinstallieren und möglicherweise im Makefile den Pfad anpassen.

ne Datenbank anlegen und das SQL Dumpfile importieren. Im Anschluss daran sollten in scrablix/lib/ownsql.h die Konstanten für die DB Verbindung angegeben werden (also host, user, passwort, ...) da muss ich noch an ner anderen Lösung arbeiten.

kompilieren

und dann sollte es eigentlich gehen ;)
 
falls du nicht da bist, komm in den irc. da könnnen wir schwafeln ohne den thread hier zu sprengen. IRC Infos: server irc.freenode.org raum #unixboard
 
keine ahnung ob du da schon etwas weitergemacht hast aber ich hab ein wenig aufgeräumt. schau dir das patchfile an ( einfügen mit bzcat scrablix.patch.bz2 | patch -p0 ).

schönes wochenende
 

Anhänge

  • scrablix.patch.bz2
    992 Bytes · Aufrufe: 1
Hi!

Sehr nett danke! Hab mir den Patch mal angekuckt. Die Optimierung bringt leider nicht wirklich viel an Zeitgewinn musste ich feststellen. Allerdings ist mir noch ne andere (wahrscheinlich viel schnellere) Methode eingefallen:

Man könnte die Datenbank in ein File dumpen und zunächst mal alles in den Speicher laden (sind lediglich 194k). Anschließend einfach mit nem Pointer über dieses char[] iterieren und die Wörter ausgeben, bei denen alle Buchstaben auch in der "Spielbank" vorhanden sind. Sollte um einiges fixer gehen als über SQL anfragen und man spart sich den Server dazu ;)

Ich hab mittlerweile mit den Klassen für ein komplettes Spiel angefangen, bin da aber noch nicht so weit. Sollte das ganze mal eine gewisse Reife erreicht haben werd ich mal bei sourceforge ein Projekt erstellen.
 
Sehr nett danke! Hab mir den Patch mal angekuckt. Die Optimierung bringt leider nicht wirklich viel an Zeitgewinn musste ich feststellen. Allerdings ist mir noch ne andere (wahrscheinlich viel schnellere) Methode eingefallen:
Kein Problem. Das "-O3" bringt natürlich nicht wirklich viel aber man muss auch an die anderen denken. Ich hab z.B. immer folgende drin:
Code:
-O3 -march=pentium4 -mcpu=pentium4 -mtune=pentium4 -pipe -msse -msse2 -mmmx -mfpmath=sse -pipe
Das bringt schon einen ordentlichen Schub aber so richtig dolle ist das nicht weil kaum bis keine Rechenoperationen ausgeführt werden.

Man könnte die Datenbank in ein File dumpen und zunächst mal alles in den Speicher laden (sind lediglich 194k). Anschließend einfach mit nem Pointer über dieses char[] iterieren und die Wörter ausgeben, bei denen alle Buchstaben auch in der "Spielbank" vorhanden sind. Sollte um einiges fixer gehen als über SQL anfragen und man spart sich den Server dazu ;)
Und dadurch wird das ganze noch etwas portabler. Nicht jeder will nen sql server/engine auf dem rechner haben.

Ich hab mittlerweile mit den Klassen für ein komplettes Spiel angefangen, bin da aber noch nicht so weit. Sollte das ganze mal eine gewisse Reife erreicht haben werd ich mal bei sourceforge ein Projekt erstellen.
Jo, mach mal. bin gespannt :)
 
Zuletzt bearbeitet:

Ähnliche Themen

Jobangebot, Linuxer gesucht...!

Debian als MailServer: Planungsphase

open Outcast Tech Demo

apache, webdav und Authentifizierung

grep Ergebnis Zeilenweise auswerten

Zurück
Oben