XScrabble übers Netzwerk spielen?

Hallo,

gibts hier jemand, der XScrabble spielt? Ich habe da zwei Fragen zu, die u.U. auch beantwortet werden können, wenn man das Spiel nicht hat…

Die erste betrifft das Spielen übers Netzwerk.
XScrabble enthält eine Manpage und auch kein ausgiebiges Howto und das was ich im Netz dazu finden kann, ist irgendwie mehr als dürftig. Im „Help“ steht nur drin, wenn man Xscrabble übers Netz spielen will, dass man X-Displays angeben kann. Standardmässig steht wohl „:0.0“ für localhost. Ich nehme an, wenn ich übers Netz spielen will, muss ich hier eine IP und eine Displaynummer angeben, also zB 192.168.0.1:1.

Die Frage ist dabei nur, wie ich dann diesen Desktop oder dieses X auf dem Host-Rechner freigebe? Was muss ich dazu wo eintragen, damit der Client das dann auch sieht?

Und die nächste Frage betrifft die Tatsache, dass xscrabble standardmässig nur auf Englisch und Französisch vorhanden ist (also die Wörterbücher). Kann man das dann entweder ganz abstellen, wenn man übers Netz spielt (weil ich ja sonst nie ein deutsches Wort legen kann) oder bekommt man irgendwo eine deutsche Wortliste oder kann ich mir die irgendwie selber basteln?

Weiss jemand was?

Grüsse
schuelsche

Standardmässig steht wohl „:0.0“ für localhost. Ich nehme an,
wenn ich übers Netz spielen will, muss ich hier eine IP und
eine Displaynummer angeben, also zB 192.168.0.1:1.

Nein, die Zahl hinter dem Doppelpunkt steht für den Monitor, den du anprechen willst. Nehmen wir an, du hast 17 Monitore angeschlossen, dann gibst du 192.168.0.1:16 an. Leute wie ich, die nur einen Monitor haben, nehmen 192.168.0.1:0.

Damit ein X-Fenster eines anderen Computers auf deinem Desktop angezeigt werden kan, musst du das erst erlauben. Das wird mit dem Befehl xhost gemacht.

xhost +

erlaubt allen IP-Adressen einen Zugriff auf deinen X-Server. Zum Testen kann man das nehmen, aber man sollte letztendlich nur den Maschinen Erlaubnis erteilen, die das auch sollen und dürfen. Man nehme dazu beispielsweise

xhost +10.25.50.6

Weiteres wie üblich mit

man xhost

Willst du ein Fenster woanders öffnen, musst du die DISPLAY-Umgebungsvariable setzen, beispielsweise

export DISPLAY=10.25.50.6

und dann aus der gleichen Shell ein X-Programm starten.

Stefan

Willst du ein Fenster woanders öffnen, musst du die DISPLAY-Umgebungsvariable setzen, beispielsweise

export DISPLAY=10.25.50.6:0

und dann aus der gleichen Shell ein X-Programm starten.

Stefan

Danke - und deutsche Wortliste mit Großbuchstaben?
Super, vielen Dank für den Tip. Damit hat das einwandfrei funktioniert und ich kann jetzt Scrabble über’s Netzwerk spielen :wink:

Nur eines fehlt mir nun noch:
eine deutsche Wortliste, die nur aus Grossbuchstaben besteht. Wo also z.B. ABER drinsteht und nicht aber als Wort.

Gibt es sowas irgendwo oder kann ich mir das unter Linux selber generieren?

Würde mich über Hilfe freuen,
Grüsse
schuelsche

ISPELL ist ein eine Rechtschreibpruefung. Die hat auch ein deutsches Woerterbuch. Mit den Kommandos cat und sed kannst Du dort alle Kleinbuchstaben durch das Aequivalent ersetzen, die Schraegstriche und Wortklassenangaben entfernen. Dann hast Du Deine eigene Woerterliste, die allerdings keine zusammengesetzten Woerter enthaelt.

Allerdings wird die allein nicht reichen, um vernuenftig Scrabble zu spielen, weil die Buchstaben unguenstig verteilt sein duerften (in englischen Woertern ist das Y viel haeufiger als im Deutschen, hat daher einen geringeren Wert und gibt’s in einer groesseren Anzahl).

Bis denne
Schnoof

Hallo,

vielen Dank für den Tipp mit der ispell-Datei.

Hier habe ich nun auch unter /usr/src/dicts/igerman98-20021114 eine Datei namens „all.words“ gefunden, die ich nun am Editieren bin.

Hierzu habe ich mich mit sed beschäftigt und mit dem Befehl

sed '{s#v#V#g;s#w#W#g;s#x#X#g;s#y#Y#g;s#z#Z#g;}' woerters \> woerter

(für alle anderen Buchstaben ebenfalls durchgeführt, weil ich in der manpage keine kürzere Form entdecken konnte) in der Datei nun alle Kleinbuchstaben durch Grossbuchstaben ersetzt.

Mit dem Befehl sort habe ich mich ebenfalls schon beschäftigt, weil ich eigentlich dachte, dass man mit diesem erreichen könnte, dass die einzelnen Zeilen mit den Buchstaben nun so sortiert werden könnten, dass nach den dreibuchstabigen Wörtern die vierbuchstabigen folgen.

Der „normale“ Aufbau einer xscrabble-Wörterbuchdatei sieht ja so aus:

AA
AB
..
BI
..
DA
..
AAL
AKT
..
BAD
BAR
..
AALE
..
BADE
..

So hätte ich also nun gerne zunächst alphabetisch sortiert die Wörter mit 2 Buchsaben, dann ebenfalls alphabetisch die mit 3, 4, 5, … Buchstaben.

Geht das mit „sort“?

Weiterhin enthält meine Datei Umlaute, die so dargestellt werden:
Für „DRÜCKEN“ steht dort „DRU"CKEN“.
Wie kann ich alle Wörter komplett entfernen, die ein Anführungszeichen enthalten? Vor allem steht hier ja das " nicht immer an der gleichen Stelle, so dass ich nicht mit sed und ^ oder $ arbeiten kann…

Ausserdem stehen hinter manchen Wörtern noch Buchstaben, die auf einen Schrägstrich folgen, zB ABDROSSELN/DIXY. Wie kann ich diesen letzten Teil inklusive Schrägstrich entfernen? Müsste ja dann der gleiche Befehl wie oben bei den Anführungszeichen sein, nur dass nicht das ganze Wort entfernt wird, sondern nur dieser letzte Teil. Konnte diesbezüglich nichts mit sed oder cat finden…

Was übrigens die Buchstabenverteilung im Spiel angeht, so habe ich herausgefunden, dass sich die Datei „XScrabble_en“, die nach dem Entpacken des englischen Sprachpaketes im Verzeichnis /xscrabble_en/app-defaults liegt, problemlos entsprechend anpassen lässt. Dort ist festgelegt, wie die Buchstabenhäufigkeit ist und welcher Buchstabe welchen Wert hat.

Leider habe ich noch nicht herausgefunden, wie man die deutschen Umlaute Ä, Ö, Ü richtig einbinden kann, da das irgendwie von der Shell oder dem verarbeitenden Programm falsch bzw. überhaupt nicht erkannt wird und als Fehlermeldung endet.

Würde mich über Hilfestellung freuen,
Grüsse
schuelsche

Moin, moin,

Hierzu habe ich mich mit sed beschäftigt und mit dem Befehl

sed ‚{s#v#V#g;s#w#W#g;s#x#X#g;s#y#Y#g;s#z#Z#g;}‘ woerters >
woerter

(für alle anderen Buchstaben ebenfalls durchgeführt, weil ich
in der manpage keine kürzere Form entdecken konnte) in der
Datei nun alle Kleinbuchstaben durch Grossbuchstaben ersetzt.

Kennst du ‚tr‘? Hiermit geht speziell Zeichenersetzen in einem Rutsch. (ich habe gerade keine manpage zur Hand, aber so etwas wie

tr "a-z" "A-Z" outfile

sollte die Arbeit in etwas erledigen…)

Mit dem Befehl sort habe ich mich ebenfalls schon beschäftigt,
weil ich eigentlich dachte, dass man mit diesem erreichen
könnte, dass die einzelnen Zeilen mit den Buchstaben nun so
sortiert werden könnten, dass nach den dreibuchstabigen
Wörtern die vierbuchstabigen folgen.

Da wirds dann schon etwas schwieriger. Einfachster Ansatz:

zuerst die Worte mit 2, 3, … Buchstaben in separate Files schreiben
(z.B.

egrep '^...$' woerter \> woerter.3buchstaben 

),

danach diese Files einzeln mit sort sortieren und

die sorteirten Files anschliessend (z.B. mit cat) wieder zusammenstzen.

Ansonsten solltest du dir vielleicht mal ein Script bauen (oder dein Problem vielleicht mal im Perl-Brett schildern, da kommt dann wahrscheinlich ein 10-Zeiler raus).

Umlautprobleme analog… (Umlaute machen immer Ärger Aerger!).

Gruss
bernhard

Hallo,

Kennst du ‚tr‘?

Super, danke. Gleich ausprobiert und funktioniert einwandfrei…

Wie findet man eigentlich solche Programme auf dem eigenen Rechner?

(z.B.

egrep ‚^…$‘ woerter > woerter.3buchstaben

),

Das funktioniert bestens. Allerdings habe ich immer noch die Wörter drin, die einen Schrägstrich im Wort haben, weil ich es noch nicht geschafft habe, alles hinter dem Schrägstrich inklusive desselbigen zu entfernen.

Mit sed und einer Befehlskombination aus der Linuxfibel habe ich es wenigstens geschafft, die Zeilen zu löschen, in denen ein Anführungszeichen vorkam (also zB DRU"BER). Nur leider habe ich den Eindruck, dass sed immer nur ganze Zeilen löschen kann.

Mit welchem Tool kann ich das, was ab (inklusive) dem Schrägstrich steht, entfernen? (zB ABDROSSELN/DIXY, so dass dort nur noch ABDROSSELN steht). Mit grep kann ich mir zwar alle diese Wörter anzeigen lassen, aber dann ist noch nichts gelöscht…

Grüsse
schuelsche

Hallo,

Mit welchem Tool kann ich das, was ab (inklusive) dem
Schrägstrich steht, entfernen? (zB ABDROSSELN/DIXY, so dass
dort nur noch ABDROSSELN steht). Mit grep kann ich mir zwar
alle diese Wörter anzeigen lassen, aber dann ist noch nichts
gelöscht…

Du willst ja keine Zeilen loeschen, sondern nur Zeilen veraendern. Wie waere es mit:

sed 's/\/.\*//' inpufile \>outputfile

(im Klartext: ersetze in der aktuellen Zeile alles, was nach einem Slash kommt - sprich einen Slash (dargestellt durch /, beachte Quoting mit ‚Escape-Zeichen‘ ) plus eine Folge von beliebigen Zeichen - durch den Ersatzstring ‚Leerstring‘; anschliessend gib den String aus - das macht sed als Standardaktion, sofern nicht mit Option ‚-n‘ gestartet…)

gruss
bernhard

PS: du solltest dir mal das Arbeiten mit regulären Ausdruecken naeher anschauen (betrifft die Tools: sed, grep, egrep, awk, vi, perl …). Da gibt es wirklich eine Menge nuetzliches zu lernen.

(siehe z.B. http://www.netzmafia.de/skripten/unix/unix5.html
unzählige Beispiele im Netz…)

… letzte Frage: vi
Hallo,

sed ‚s//.*//‘ inpufile >outputfile

Super. Dann ist das doch so ähnlich, wie ich mir das auch vorgestellt hatte. Nur war ich mir nicht sicher, ob man einfach was frei lassen kann, damit sed kapiert, dass hier nichts mehr eingefügt werden soll. Aber scheint ja so zu funktionieren :wink:

(siehe z.B. http://www.netzmafia.de/skripten/unix/unix5.html
unzählige Beispiele im Netz…)

Vielen Dank :wink: Habe ich mir gleich gebookmarkt und werde ich mir auch zu Gemüte führen :smile:)

Apropos vi:
wie kann ich denn was von einem Text in einen anderen kopieren über den vi? In kwrite geht das ja mit STRG+C bzw. STRG+V. Das geht beim vi ja nicht. Ich kann zwar das gesamte Dokument markieren bzw. in den Zwischenspeicher setzen mit nyy (n=Zeilennummer), aber ich kann es dann nicht mit „p“ im anderen vi-Fenster einfügen…

Das Problem ist, dass es sich um eine *.gz-Datei handelt, die im vi im Klartext gelesen werden kann, aber in kwrite nur ein wildes Buchstabendurcheinander bringt, das keinen Sinn ergibt.
Ich möchte jetzt eigentlich nicht meine 35 Wortdateien Fensterweise rüberkopieren mit der Maus. Es muss doch auch die Möglichkeit geben, den Inhalt der gesamten Datei zu kopieren und in die andere Datei einzufügen?

Grüsse
schuelsche

Habs schon rausgefunden…

r datei

… fügt den gesamten Text der angegebenen Datei in die aktuelle Datei ein.

Grüsse
schuelsche

Hallo,

zu der xhost-Geschichte habe ich noch eine Frage. Es gibt bei mir auf dem System (SuSE 9.0) keinen Manual-Eintrag zu xhost.

Jetzt habe ich mal gegoogelt und es steht mehrfach geschrieben, dass man doch xhost nicht verwenden sollte, da dann jemand anderes Vollzugriff auf die grafische Oberfläche bekommt. Man könne das nicht userabhängig einschränken, nur auf die IP (eben durch xhost +10.10.10.10). Rückgängig machen kann man das offensichtlich mit dem Befehl „xhost -10.10.10.10“.

Wo wird das denn eingetragen, dies xhost? Das ist doch beim nächsten Reboot wieder weg. In irgendeiner Konfigurationsdatei muss das doch vorübergehend gespeichert werden?

Und was hat das im Detail zur Folge, wenn jemand Vollzugriff auf meinen Bildschirm hat? Er kann dann seine Kiste mit meiner mittels „export DISPLAY=IP.von.seinem.Rechner:0“ verbinden und dann auf meinem Rechner sämtliche grafischen Programm ausführen? Aber doch nur als der Benutzer, als der ich gerade angemeldet bin, oder?

Und klappt das auch mit Windows-Kisten? Wenn ich eine Windowskiste habe, und dort dann deren IP bei xhost eintrage, kann die dann auf meine Linuxkiste zugreifen?

Grüsse
schuelsche