Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

41

13.01.2010, 19:08

Bei cin ist das anscheinend nicht notwendig den Cache auszuschalten, kann man aber sicherheitshalber auch machen.

Ich habs mal spaßeshalber probiert und es scheint auch auszureichen wenn man nur den Stream auf Erfolg prüft:
if(std::cin >> Input)

Wieso der Stream nicht geschrieben wird seh ich auch nicht auf anhieb, probier mal die Datei mit Laufwerkspfad anzugeben. Ich würde auch nicht eine Dauerschleife laufen lassen, sondern wenigstens ein Sleep(100) mit einbauen.

Wie startest Du X/Winboard? Vielleicht liegt da irgendwo der Fehler.

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

42

13.01.2010, 19:40

Super, das mit dem Laufwerkspfad war schuld! :)

Jetzt hab ich mal die Ausgaben von Winboard.
Nur muss ich jetzt auch meine eigenen senden. ;)

http://home.hccnet.nl/h.g.muller/engine-intf.html sollte ja behilflich sein. Nur find ich da irgendwie nicht, welche "Antworten" ich auf das von Windboard schicken muss.
Oder hab ich das überlesen? ;)

Stazer

Alter Hase

Beiträge: 468

Wohnort: Berlin

Beruf: Student

  • Private Nachricht senden

43

13.01.2010, 20:27

ich werde es auch versuchen^^

Elmaron

unregistriert

44

13.01.2010, 22:58

Zitat von »"Käsekönig"«

Nur find ich da irgendwie nicht, welche "Antworten" ich auf das von Windboard schicken muss.

Wirf mal einen Blick auf das Inhaltsverzeichnis:

Zitat von »"Chess Engine Communication Protocol"«

8. Commands from xboard to the engine
9. Commands from the engine to xboard

Kapitel 8 bespricht also die Befehle, die du bekommst, und Kapitel 9 die möglichen Antworten. Eine Antwort ist nicht direkt immer einem Befehl zugeordnet, da je nach Situation mehrere oder keine Antwort möglich ist, aber es steht ja immer ein erklärender Text dabei, der erläutert, wann man mit einer bestimmte Antwort antworten sollte und wann nicht.

Zitat von »"TrikkieMikkie"«

Was ziert ihr euch denn so, mal ein "richtiges" Beispiel zu posten?

In meinem Fall spielt sicher auch ein gewisser Zeitmangel eine Rolle. Ich hielt es allerdings auch nicht für zwingend nötig und anscheinend kommen die Teilnehmer, die sich hier im Thread beteiligen, mit einigen Rückfragen ja auch einigermaßen durch. Ein Beispiel in einer Sprache schiene mir auch ein wenig auf eine enge Zielgruppe beschränkt und macht die Implementation in anderen Sprachen unattraktiver - in der verwendeten Programmiersprache einschränken wollte ich halt auch nicht. Für eine unmögliche Herausforderung halte ich das Protokoll zumindest nicht (aber man muss sich halt eine Weile damit beschäftigen).

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

45

14.01.2010, 21:38

So, jetzt hab ich das endlich zum Laufen gebracht! :)

Trotzdem hab ich noch eine Frage. Wenn dann die Engines gegeneinander spielen, welche hat dann weiß und welche schwarz??? ;) Wie wird das dann gemacht?

46

14.01.2010, 21:42

man spielt mehrere Runden ;-)
Lieber dumm fragen, als dumm bleiben!

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

47

14.01.2010, 21:47

Zitat von »"Jonathan_Klein"«

man spielt mehrere Runden ;-)

Hmm, ja. Aber woher weiß meine Engine, welche Farbe sie spielt. Je nachdem muss sie ja ihre Züge machen.

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

48

14.01.2010, 23:30

Vor dem "go" beim ersten Start wird noch die Farbe übermittelt "white" und die Farbe des Gegeners vorher mit "computer" & "black" (Was beim letztendlichen Test wohl eh der Fall sein wird, also ein Spiel gegen den Rechner oder die anderen Engines). Danach wird nur noch im Ping-Pong gespielt (oder "playother").

Käsekönig

1x Contest-Sieger

  • Private Nachricht senden

49

15.01.2010, 00:08

Das heißt, ich muss das ganze für zwei Farben bereitstellen.
Die Engine muss also damit umgehen können, egal ob sie weiß oder schwarz ist!?

Crush

Alter Hase

Beiträge: 383

Wohnort: Stuttgart

Beruf: Softwareentwickler

  • Private Nachricht senden

50

15.01.2010, 01:24

Halt! Ich habe gerade eben etwas herumgetestet. Wenn ich meine Engine als schwarz starte, werden die Züge genauso durchgeführt, als ob das Brett um 180 Grad gedreht wäre, also ich in der Position von weiß wäre. Deshalb braucht man keine unterschiedlichen Züge für schwarz oder weiß erzeugen. Also einfach alles auf weiß auslegen, dann klappt es.

Werbeanzeige