Gunther: Suche ambizionierte Fernschachspieler...

die mir bei der Planung (und natürlich auch gerne bei der Umsetzung) einer Fernschachseite behilflich sein möchten.

Es handelt sich um ein 'Non-Profit-Projekt' (Geld gibt's also keins zu verdienen!).

Es geht mir in erster Linie um Ideen bezüglich der Features und weniger um die programmtechnische Umsetzung meiner Ideen. Natürlich sind auch dabei alle Hilfen willkommen.

Wer Lust & Interesse hat bitte kurze E-Mail an mich. Gerne beantworte ich dann auch noch weitere Fragen zum Projekt.

Gruß Gunther

  1. Moin

    die mir bei der Planung (und natürlich auch gerne bei der Umsetzung) einer Fernschachseite behilflich sein möchten.
    Es handelt sich um ein 'Non-Profit-Projekt' (Geld gibt's also keins zu verdienen!).

    Es geht mir in erster Linie um Ideen bezüglich der Features und weniger um die programmtechnische Umsetzung meiner Ideen. Natürlich sind auch dabei alle Hilfen willkommen.

    Da hast Du Dir aber was vorgenommen. Es wir schwer sein, gegen die Platzhirschen im Netz wie z.B.http://www.kingchess.de anzukommen.
    Bzgl. der Features kannst Du Dich dort mal umsehen. Allerdings ist eine Anmeldung erforderlich.

    Gruesse
    Wilhelm

    --
    Q: Warum gibt es in LinuxLand so viele Trolljaeger?
    A: Weil dort die groessten Exemplare wohnen.
    1. Hallo Wilhelm!

      Vielleicht spielen wir ja gerade eine Partie gegeneinander bei KingChess... ;-)

      Aber mal im Ernst. Ich spiele seit einiger Zeit selber bei KingChess und remoteschach. Genau das ist der Grund warum ich gerne eine eigene Fernschachseite entwickeln möchte.

      KingChess ist sicherlich schon sehr gut gemacht, allerdings gibt es auch dort einige Dinge, die ich persönlich zumindest als nicht 'ideal' gelöst empfinde. Als da z.B. wären: Keine Farbwahl bei Partieeinladungen möglich, keine Benachrichtungsmöglichkeit des Gegners ausserhalb der Zugabgabe, u.v.m.

      Und Wilhelm, du weißt doch: "Je schwieriger die Aufgabe, desto größer die Herausforderung!".

      @all:
      Ich habe mich seit einigen Wochen mit (fast) allen Programmen & Scripts zum Thema Fernschach im Internet auseinandergesetzt und kenne einige (z.T. recht gute) Fernschachseiten. Die Idee ist mir also nicht erst gestern in den Kopf gekommen... ;-)

      Da etliche Features aber durchaus eher vom persönlichen Geschmack oder den eigenen Vorlieben abhängen (z.B. Rating-System), suche ich auf diesem Wege halt Leute, mit denen man zumindest über die Vor- & Nachteile verschiedener Varianten vernünftig diskutieren kann.

      Wer von euch schon einmal eine Partie Fernschach im Internet gespielt hat, der würde mir auch schon mit seinen (positiven & negativen) Erfahrungen weiterhelfen, also z.B. damit, welche Funktionen ihm gut gefallen haben, oder welche er vermißt hat.

      Ich danke schon mal vorab für eure Beteiligung!

      Gruß Gunther

      1. Moin

        Vielleicht spielen wir ja gerade eine Partie gegeneinander bei KingChess... ;-)

        Im Augenblick mit Sicherheit nicht, ich habe nur eine Partie am Wickel und den Gegner kenne ich persoenlich. :-)

        Du kannst ja mal in Deiner Ergebnismatrix nachsehen, ob das Objekt der Begierde des Koyoten aus Schweinchen Dick auftaucht. Wenn ja, hatten wir das Vergnuegen.

        (z.B. Rating-System), suche ich auf diesem Wege halt Leute,

        Die geplante Umstellung beim Rating von KC wird mich wahrscheinlich dort zum Nichtspieler machen. Durch die Einfuehrung einer an ELO angelehnten Wertung wird kaum noch die Option fuer Spiele gegen hoeher grankte gegeben sein. Mir persoenlich driftet es zu sehr auf die professionelle Schiene ab.

        Ich sehe auch in der (von Dir vermehrt gewuenschten) Moeglichkeit bei Zuegen eine Nachricht zu tippen nicht unbedingt nur Vorteile. Letztens laberte mich einer permanent voll, mir wurde das zu dumm und ich verzichtete auf eine Antwort. Ergo: Er beschimpfte mich auf unflaetigste Weise fuer mein Schweigen, ich sei unhoeflich und weiss was noch. Tja, der Knopf zur Aufgabe war schnell gedrueckt, egal ob ich Punkte verlor oder nicht.

        Gruesse
        Wilhelm

        --
        Q: Warum gibt es in LinuxLand so viele Trolljaeger?
        A: Weil dort die groessten Exemplare wohnen.
  2. Hallo,

    ich kenne da jemand, der vielleicht Interesse an der Umsetzung hat. Hat mal bei uns ein Projekt abgewickelt und ist ambitionierter Schachspieler mit eigenem kleinen Schachverein.

    Außerdem haben wir im Programmierer-Team schon mal darüber nachgedacht so eine Fernschach-Seite in unseren Internetauftritt einzubauen. Die ersten Überlegungen sind schon sehr weit vorangeschritten. Login-System, Datenbank etc ist alles schon vorhanden. Es fehlt im Wesentlichen die grafische Umsetzung, jemand der ca. 3,5kByte Grundregelwerk erfasst und vier / fünf Scripte für das Spiel, die Einstellungen, die Kommentardateien, etc.

    Man kann eisntellen, ob andere zusehen dürfen beim Spiel. Das Spiel wird aufgezeichnet und kann dann anschließend von der Welt kommentiert werden. das bedeutet, dass zu jedem Zug ein kleiner Thread entstehen kann. Man kann das Spiel also nach dem Ende immer und immer wieder abspielen, wenn die Spieler es dafür freigegeben haben.

    Soweit unsere Gedanken.

    Liebe Grüße aus http://www.braunschweig.de

    Tom

    --
    Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
    1. Hallo Tom,

      ich kenne da jemand, der vielleicht Interesse an der Umsetzung hat. Hat mal bei uns ein Projekt abgewickelt und ist ambitionierter Schachspieler mit eigenem kleinen Schachverein.

      es wäre nett von dir, wenn du denjenigen mal fragen, oder anmailen würdest :-D

      Außerdem haben wir im Programmierer-Team schon mal darüber nachgedacht so eine Fernschach-Seite in unseren Internetauftritt einzubauen. Die ersten Überlegungen sind schon sehr weit vorangeschritten. Login-System, Datenbank etc ist alles schon vorhanden. Es fehlt im Wesentlichen die grafische Umsetzung, jemand der ca. 3,5kByte Grundregelwerk erfasst und vier / fünf Scripte für das Spiel, die Einstellungen, die Kommentardateien, etc.

      wenn ich euch vielleicht umgekehrt behilflich sein kann, gerne...

      Man kann eisntellen, ob andere zusehen dürfen beim Spiel. Das Spiel wird aufgezeichnet und kann dann anschließend von der Welt kommentiert werden. das bedeutet, dass zu jedem Zug ein kleiner Thread entstehen kann. Man kann das Spiel also nach dem Ende immer und immer wieder abspielen, wenn die Spieler es dafür freigegeben haben.

      im PGN-Format? Habt ihr ein eigenes Script für die Wiedergabe geschrieben?

      Soweit unsere Gedanken.

      klingt gut...

      Ich habe bisher ein JS-Script geschrieben, welches auf

      • Gültigkeit des Zuges (Rochade und e.p. inbegriffen)
      • Schach
      • Schach matt
      • Patt
      • Remis
        prüft, und ausserdem eine Zugnotation im PGN-Format erzeugt.

      Gruß Gunther

      1. Hallo Gunther,

        es wäre nett von dir, wenn du denjenigen mal fragen, oder anmailen würdest :-D

        Hab ich schon. Ich habe den Link mauf den Thread weitergeschickt. Und außerdem gebe ich es Montag noch meiner Kollegin, die sich auch schon mit der Thematik befasst hat.

        Wir bauen das natürlich als Client/Server-Lösung. Die Überprüfung findet da auf dem Server statt. Es wird einfach ein bewegungsmuster für die 8 Figurentypen festgelegt und gespeichert. das gibt ungefähr 3,5kByte Konstanten.

        Wann darf denn kleine Rochade (mehr) gemacht werden? Wenn ein Feld der Basislinie, über die der König marschiert, bedroht ist und wenn schon einmal eine Figur bewegt wurde - oder?

        wenn ich euch vielleicht umgekehrt behilflich sein kann, gerne...

        Ja, da könnten wir uns gut austauschen.

        im PGN-Format? Habt ihr ein eigenes Script für die Wiedergabe geschrieben?

        PNG oder jpg ist da doch ziemlich egal, denn die 16 verschiedenen Figuren müssen ja nur einmal geladen werden. da kann man auch GIFs nehmen, da wir die Fuguren ja nicht mehr dynamisch umrechnen müssen, sondern nur platzieren.

        Ich habe bisher ein JS-Script geschrieben, welches auf

        • Gültigkeit des Zuges (Rochade und e.p. inbegriffen)
        • Schach
        • Schach matt
        • Patt
        • Remis
          prüft, und ausserdem eine Zugnotation im PGN-Format erzeugt.

        Das sir schon gut. Eine abschließende Prüfung sollte aber immer auf dem Server durchgeführt werden.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
        1. Hallo Tom,

          es wäre nett von dir, wenn du denjenigen mal fragen, oder anmailen würdest :-D
          Hab ich schon. Ich habe den Link mauf den Thread weitergeschickt. Und außerdem gebe ich es Montag noch meiner Kollegin, die sich auch schon mit der Thematik befasst hat.

          ja super, danke!

          Wir bauen das natürlich als Client/Server-Lösung. Die Überprüfung findet da auf dem Server statt. Es wird einfach ein bewegungsmuster für die 8 Figurentypen festgelegt und gespeichert. das gibt ungefähr 3,5kByte Konstanten.

          Die serverseitige Überprüfung hat in meinen Augen den (nicht unerheblichen) Nachteil, dass grundsätzlich erst einmal auch 'irreguläre' Züge zum Server übertragen werden - Überprüfung = negativ - Ausgabe an Client - neue Eingabe usw.
          Deshalb finde ich die Variante einer clientseitigen Überprüfung (und somit nur Übertragung gültiger Zugdaten an den Server) besser.

          Welches sind denn die 8 Figurentypen? König, Dame, Turm, Läufer, Springer, Bauer (1+2 Felder), Rochade (König und Turm)? Oder wie kommt ihr auf 8?

          Wann darf denn kleine Rochade (mehr) gemacht werden? Wenn ein Feld der Basislinie, über die der König marschiert, bedroht ist und wenn schon einmal eine Figur bewegt wurde - oder?

          korrekt! König bewegt = weder kleine noch große Rochade erlaubt
          Turm bewegt = Rochade zu dieser Seite nicht mehr möglich
          aus einem Schachgebot darf auch nicht wegrochiert werden!

          wenn ich euch vielleicht umgekehrt behilflich sein kann, gerne...

          Ja, da könnten wir uns gut austauschen.

          im PGN-Format? Habt ihr ein eigenes Script für die Wiedergabe geschrieben?

          PNG oder jpg ist da doch ziemlich egal, denn die 16 verschiedenen Figuren müssen ja nur einmal geladen werden. da kann man auch GIFs nehmen, da wir die Fuguren ja nicht mehr dynamisch umrechnen müssen, sondern nur platzieren.

          Frag' ich halt anders: "Wie speichert ihr denn die jeweilige Stellung auf dem Brett (FEN)?"
          Das PGN-Format hat dann auch noch die Vorteile, dass man die Partien leicht archivieren und downloaden kann, um sie z.B. in anderen Viewern (bspw. Winboard) nachspielen & analysieren kann.

          Ich habe bisher ein JS-Script geschrieben, welches auf

          • Gültigkeit des Zuges (Rochade und e.p. inbegriffen)
          • Schach
          • Schach matt
          • Patt
          • Remis
            prüft, und ausserdem eine Zugnotation im PGN-Format erzeugt.

          Das sir schon gut. Eine abschließende Prüfung sollte aber immer auf dem Server durchgeführt werden.

          Da gebe ich dir Recht (Stichwort 'Manipulation')!

          Liebe Grüße aus http://www.braunschweig.de

          Tom

          Ich freue mich darauf, Weiteres von euch zu hören/lesen. Bis dann

          Gruß Gunther

          1. Hi, hallo

            mit PGN und PNG meint ihr sicherlich unterschiedliche Sachen, ich schätze, das eine ist eine Notationsform für Schachzüge und das andere das Grafikformat für die Figurdarstellungen.

            Ja, das Regelwerk wird wahrscheinlich das schwierigste an der Sache oder besser gesagt die Überprüfung des aktuellen Zuges.

            Es stellt sich auch die Frage, wie viel "Eigeninitiative" man dem Spieler überlassen will, bezüglich der Zugvalidierung.

            a) die Züge werden auf dem Server erst validiert
            kostet auf die Dauer Serverressourcen, Zug "abschicken" -> Validierung -> Rückmeldung an Client + Meldung an Schachgegenspieler

            b) einfacher wäre es vielleicht (kann ich schlecht momentan beantworten) dem Client nach jedem Zug eine Liste mit unmöglichen Zügen für die 16 Figuren (bzw. weniger) zuzusenden bzw. andersherum (nur mögliche) und die Gültigkeit durch DHTML lokal zu überprüfen. Da bekäme der Client mehr Daten aber der Server hätte immer noch die Last, diese Antwort zu generieren??!!

            Und wie soll der Client aussehen, einfache Browseroberfläche mit einer 8 x 8 Tabelle und einem periodischen Reload?  Evt. Splitscreen in Frames, einer der sich reloadet und ein anderer in dem man seinen Zug machen kann. Und wie verhindert man daß man 2 züge hintereinander macht?? ;-)

            So ein Projekt könnte sicherlich Spaß bereiten :-)

            Tschau, tschau

            Frank

            1. Hi, hallo

              Hallo Frank,

              mit PGN und PNG meint ihr sicherlich unterschiedliche Sachen, ich schätze, das eine ist eine Notationsform für Schachzüge und das andere das Grafikformat für die Figurdarstellungen.

              genau so ist es...

              Ja, das Regelwerk wird wahrscheinlich das schwierigste an der Sache oder besser gesagt die Überprüfung des aktuellen Zuges.

              eigentlich nicht

              Es stellt sich auch die Frage, wie viel "Eigeninitiative" man dem Spieler überlassen will, bezüglich der Zugvalidierung.

              das musst du mir bitte mal näher erläutern...

              a) die Züge werden auf dem Server erst validiert
              kostet auf die Dauer Serverressourcen, Zug "abschicken" -> Validierung -> Rückmeldung an Client + Meldung an Schachgegenspieler

              b) einfacher wäre es vielleicht (kann ich schlecht momentan beantworten) dem Client nach jedem Zug eine Liste mit unmöglichen Zügen für die 16 Figuren (bzw. weniger) zuzusenden bzw. andersherum (nur mögliche) und die Gültigkeit durch DHTML lokal zu überprüfen. Da bekäme der Client mehr Daten aber der Server hätte immer noch die Last, diese Antwort zu generieren??!!

              ich hatte mir überlegt die Überprüfungen clientseitig per Javascript zu erledigen, sodass der Server nur gültige Züge übermittelt bekommt (das JS-Script ist übrigens schon fertig)

              Und wie soll der Client aussehen, einfache Browseroberfläche mit einer 8 x 8 Tabelle und einem periodischen Reload?  Evt. Splitscreen in Frames, einer der sich reloadet und ein anderer in dem man seinen Zug machen kann. Und wie verhindert man daß man 2 züge hintereinander macht?? ;-)

              du merkst schon selber - Fragen über Fragen...
              auch hierzu habe ich schon 'ganz praktikable' Ansätze...

              So ein Projekt könnte sicherlich Spaß bereiten :-)

              bestimmt...

              und wenn es dich interessiert, dann schick' mir doch mal eine Mail!

              Gruß Gunther

              1. Hi, hallo

                interessieren täte mich das ganze schon ein wenig, jedoch bin ich hier momentan so mit Arbeit belegt, dass ich fast 0 Freizeit habe um mich an "interessanten" Dingen neben meiner Arbeit zu beschäftigen :-(

                Es stellt sich auch die Frage, wie viel "Eigeninitiative" man dem Spieler überlassen will, bezüglich der Zugvalidierung.

                das musst du mir bitte mal näher erläutern...

                das waren die beiden Punkte a) und b) darunter ... "client-seitige-validierungs-initiative" wäre vielleicht besser formuliert.

                ich könnte mir vorstellen, die clientseitige Validierung ist ein ziemliches Javascript-Konstrukt, gerade was Rochade betrifft (König bewegt, Turm bewegt, überschreitung von "Schach-Feldern" usw.)

                Tschau, tschüß,
                Frank

              2. Hallo Gunther,

                eine einfache Überprüfung habe ich schon mal fertig gemacht. Ich muss sie raussuchen aus den Ideensammlungen. Sie basiert einfach auf einem Raster für jede mögliche Stellung jedes Figurentypes. Also für (fast) jeden Typ 64 Stellungen mit den möglichen Zielfeldern. Dieses Raster gibt ca. 3,5 bis 4kByte Daten. Dieses Verfahren ist sehr viel schneller, als eine komplexe Wegberechnung (mit Hindernissen) durchzuführen.

                Das ist angesichts von Megabyte-Klötzen "moderner" Programme ein Witz. Diese Sieb-Methode deckt ca. 96 bis 98% aller Züge ab. Nur einige wenige (Rochade, Bauerntausch, ...) müssen noch separat behandelt werden. Der Server wird für die Berechnung kaum beansprucht. Da würde ich mir keine Gedanken machen. Eine Vorab-Überprüfung durch den Client kann natürlich durchgeführt erden. Man darf aber nicht vergessen, dass die zugehörige JS-Datei auch übertragen werden muss. Aleine die notwendige <link rel ..> durchzuführen, wird den Server schon mit eingen millisekunden beschäftigen, auch wenn er keine neue schach.js ausliefern muss, sondern nur "not modified" zurücksendet. Wenn jemand seinen Client gar auf "no Cache" eingestellt hat, dürfte die Validierung des Zuges auf dem Server bestimmt um einiges schneller sein, als die 10-20kB große schach.js auszuliefern.

                Gruß Gunther

                Liebe Grüße aus http://www.braunschweig.de

                Tom

                --
                Intelligenz ist die Fähigkeit, aus Fehlern Anderer zu lernen und Mut die, eigene zu machen.
                1. Hallo Gunther,

                  Hallo Thomas,

                  eine einfache Überprüfung habe ich schon mal fertig gemacht. Ich muss sie raussuchen aus den Ideensammlungen. Sie basiert einfach auf einem Raster für jede mögliche Stellung jedes Figurentypes. Also für (fast) jeden Typ 64 Stellungen mit den möglichen Zielfeldern. Dieses Raster gibt ca. 3,5 bis 4kByte Daten. Dieses Verfahren ist sehr viel schneller, als eine komplexe Wegberechnung (mit Hindernissen) durchzuführen.

                  ja bitte, such' mal raus...
                  für die reine Zugüberprüfung leuchtet mir das ja auch ein, a b e r...
                  wie prüfst du denn z.B. auf patt, schach, oder matt?

                  Das ist angesichts von Megabyte-Klötzen "moderner" Programme ein Witz. Diese Sieb-Methode deckt ca. 96 bis 98% aller Züge ab. Nur einige wenige (Rochade, Bauerntausch, ...) müssen noch separat behandelt werden. Der Server wird für die Berechnung kaum beansprucht. Da würde ich mir keine Gedanken machen. Eine Vorab-Überprüfung durch den Client kann natürlich durchgeführt erden. Man darf aber nicht vergessen, dass die zugehörige JS-Datei auch übertragen werden muss. Aleine die notwendige <link rel ..> durchzuführen, wird den Server schon mit eingen millisekunden beschäftigen, auch wenn er keine neue schach.js ausliefern muss, sondern nur "not modified" zurücksendet. Wenn jemand seinen Client gar auf "no Cache" eingestellt hat, dürfte die Validierung des Zuges auf dem Server bestimmt um einiges schneller sein, als die 10-20kB große schach.js auszuliefern.

                  Das ist sicherlich richtig, nur glaube ich, dass der Punkt Geschwindigkeit (selbst beim Blitzschach) hier eher sekundär ist. Mir kommt es vielmehr auf einen größtmöglichen Benutzerkomfort an, sowie auf ein Maximum an Fehlerfreiheit und Manipulationssicherheit.

                  Liebe Grüße aus http://www.braunschweig.de

                  Tom

                  Gruß Gunther

                  1. Hi, hallo

                    ja bitte, such' mal raus...
                    für die reine Zugüberprüfung leuchtet mir das ja auch ein, a b e r...
                    wie prüfst du denn z.B. auf patt, schach, oder matt?

                    oder ob eine gegnerische Figur geschlagen wird, bzw. im Weg steht
                    -> man kann den Läufer nicht C1 auf G5 ziehen, wenn auf F4 ein eigener oder Fremder Springer steht

                    wahrscheinlich müßte man beide Varianten entwickeln und dann anhand von Benchmarks rausfinden, welche Variante sich besser eignet. Bei einer reinen Server-Validierung, könnte der Benutzer/Spiele ja auch erst mal probieren mit der Dame auf D1 den König auf E8 zu schlagen ...

                    Thomas's Idee, auf dem Server eine Liste mit möglichen Bewegungen und den Bewegungsmustern zu hinterlegen ist halb/halb ... die Liste müsste sich dynamisch verändern.

                    Tschau, tschüß,
                    Frank

  3. Hallo,

    ich hätte Interesse

    1. Ich spiele Schach (naja, nur 1600 DWZ), damit kann man zwar nicht angeben, aber das ist ja auch nicht der Grund, wieso mach Schach spielt.

    2. Ich wollte an der Informatikolympiade teilnehmen. Da gibt es eine Aufgabe, bei der es sich ebenfalls um die Umsetzung eines Spiels handelt. Ich habe zur Umsetzung einige Gedanken gemacht, die für fast alle Brettspiele zutreffen. Ich habe an die Umsetzung mit Java gedacht, allerdings noch noch keine Zeile Quelltext geschrieben. Schliesslich habe ich es sein gelassen, da die Aufgabe, wie ich später bemerkt hatte, eine Aufgabe der zweiten Runde war und ich da nicht teilnehmen durfte, weil ich an der ersten Runde nicht teilgenommen hatte. Wenn du willst, schicke ich dir meine Überlegungen zu.

    Mit freundlichen Grüßen
       Dimitri Rettig

    1. Hallo Dimitri,

      vielen Dank für deinen Beitrag. Ich habe dir eine E-Mail geschickt.

      Gruß Gunther

      1. Hi,

        ich dachte mir, ich poste mal ins Forum, damit auch andere was dazu sagen können:

        Ich habe ein ziemlich abstraktes Modell entwickelt, dazu das "Bild":

        ************************************
                            *              Server              *
                            *  Schiedsrichter         Monitor  *
                            ************************************

        Client           Client           Client           Client           Client
         Zuschauer        Zuschauer        Zuschauer         Zuschauer       Zuschauer
          Spieler1         Spieler2

        Das eigentliche Spiel läuft auf dem Server ab. Man kann es sich als ein Schachbrett (Server) vorstellen. Gespielt wird wie folgt:
        Ein Spieler (Client) gibt seinen Zug an den Schiedsrichter (Server). Dieser überprüft, ob der Zug möglich ist oder nicht. Ist der Zug regelwidrig, so gibt der Schiesrichter eine Fehlermeldung an den Spieler, der gerade am Zug ist, aus, die besagt, worin diese Regelwidrigkeit liegt. Ist der Zug Regelkonform, so gibt der Schidsrichter eine Bestätigung an den Spieler und führ den Zug auf dem Schachbrett aus. Bei Patt, dreifacher Stellungswiederholung, "50. Züge ohne Abtausch" oder einer anderen Situation, bei der keine theoretische Gewinnmöglichkeit für keine Partei mehr gegeben ist (z. B. König gegen König, König und Läufer gegen König etc.) meldet der Schiedsrichter "Remis", bei Matt meldet er "Matt". Andernfalls wendet er sich von dem Spieler ab und lauscht nun auf die Züge des anderen Spielers und drückt die Uhr. Das  Während er lauscht, achtet er auf die Zeit und meldet gegebenfalls "Zeitüberschreitung". Und so geht es weiter. Nachdem der Schiedsrichter einen Zug ausgeführt hat, wird dieser auf dem "Monitor" sichtbar.
        Kommuniziert wird über eine Socket-Verbindung und über ein "Protokoll", ein Regelwerk.

        Mein Modell hat im Wesentlichen folgende Stärken:

        1. Ein Zuschauer ist einer, der die Berechtigung hat, auf den "Monitor" zuzugreifen, also den Verlauf der Partie anzuschauen. Ein echter Spieler ist also ein Spieler im Sinne des Modells, er kann also ziehen, und ein Zuschauer gleichzeitig.

        2. Es ist im Prinzip egal, wie der Client aussieht. Hauptsache er ist in der Lage, eine Socket-Verbindung zum Server herzustellen und beherrscht das "Protokoll".
        Empfängt der Client, z. B. die Meldung "Zeitüberschreitung" vom Server, so kümmert sich das Programm selber um die Sprache, in der diese Meldung an den Spieler (enschlichen Spieler) ausgegeben wird.

        Ich bin mir im Klaren, dass dies ein wirklich allzu abstraktes Modell ist. Da ich es für ein anderes Spiel entwickelt habe, kann ich nicht sagen, wie z. B. die Überprüfungsroutine auf die Richtigkeit eines Zuges aussehen soll, allerdings habe ich ebenfalls dazu einige Überlegungen angestellt:
        Das Schachbrett-Objekt besteht aus 64 Felder-Objekten. In jedem dieser Felder ist vermerkt, zu welchem Schachbrett, oder besser gesagt zu welcher Stellung, sie gehören. Ebenfalls ist vermerkt, welche Figur (ebenfalls ein Objekt) sich gerade auf dem Feld befindet. Dabei ist "keine Figur" ebenfalls eine Figur. In jedem Figur-Objekt ist vermerkt, zu welchem Feld diese gehört. Ausserdem hat die Figur die Eigenschaft "Farbe" und eine Methode, z. B. move(x, y), dabei sind x und y Koordinaten des Feldes, wohin die Figur ziehen soll. Nun kann die Figur selber analysieren, ob sie dorthin ziehen kann, oder nicht (ob z. B. andere Figuren im Wege stehen oder ob die Figur überhaupt so ziehen kann, nach Regeln der FIDE). Kann die Figur so nicht ziehen, so gibt sie eine entsprechende Fehlermeldung (ich habe an Exceptions gedacht) aus, kann sie ziehen, so fordert sie das entsprechende Schachbrett auf, dass es auf das Feld, auf das die Figur ziehen will, diese Figur stellt (z. B. einen schwarzen Bauern) und auf das Feld, auf dem die Figur steht, eine "keine Figur" stellt. Ausserdem sollte das Schachbrett die Eigenschaft "Rochade möglich" haben.

        Ich hoffe, dass ich meinen Gedankengang nicht zu umständlich geschildert habe.

        Mit freundlichen Grüßen
           Dimitri Rettig

        --
        =================================================
        letztlich hat mans leichter,
        wenn mans selber macht - Münz
        1. Hallo Dimitri und alle anderen!

          Ich hoffe, dass ich meinen Gedankengang nicht zu umständlich geschildert habe.

          nein, war durchaus verständlich.

          Ich favorisiere aber nach wie vor die Variante mit einer clientseitigen Überprüfung durch ein externes JS-Script, welches ich auch schon fertig geproggt habe (60 kB groß). Dieses nimmt sämtliche Überprüfungen vor und sendet nur reguläre Züge sowie weitere Informationen (schach, patt, matt, etc.) an den Server zur 'Weiterverarbeitung'. Danach erfolgt ein reload des Brettes ohne weitere Zugmöglichkeiten (also wie in deinem Modell: Spieler = Zuschauer).

          Aber wie in meinem Ausgangs-Posting bereits erwähnt: Mir geht es weniger um die programmtechnische Umsetzung, als vielmehr um die Ausstattung (srich die Features) der Seite.

          Also z.B. die Frage:

          • soll man eine Farbwahl haben?
          • welche Message-Möglichkeiten würdet ihr euch wünschen?
          • soll es ein Rating geben? wenn ja, nach welchem System?

          usw.

          Bitte mailt mir eure Ideen & Wünsche (da dieser Thread hier bald in der Versenkung verschwindet!).

          Dank & Gruß
           Gunther