Schach-Programm (Anfangs-tipps)
-
SeppJ schrieb:
Planst du eigentlich, dass dein Schachfeld im Laufe des Spiels seine Form und Größe ändert oder warum ist dein Brett ein dynamisches Feld von dynamischen Feldern?
Haha, ja hast Recht. Ich nehme ein std::array.
SeppJ schrieb:
Woher weiß eine Bauer, wo er am Anfang steht? Sind nicht alle Bauern gleich?
Bin schon weiter, es gibt einen eigenen Konstruktor für die initial positions
SeppJ schrieb:
Woher weiß eine Figur, ob sie ziehen kann? Sie muss dafür das Brett kennen.
Bin auch schon weiter, Klasse figure hat einen Zeiger auf eine Brett-Instanz , die beim Konstruktor übergeben wird.
SeppJ schrieb:
Ich halte das ganze Modell, welches bis hier ersichtlich ist, für nicht sonderlich gelungen. Die Verantwortlichkeiten sind komisch aufgeteilt und die Objekte merkwürdig modelliert. Ich kann deinen Gedankengang zwar nachvollziehen, aber dein Ergebnis ist dann eben jenes, welches man durch nicht sehr tiefgehendes Nachdenken erhält.
Klar könntest du Recht haben, aber.. Nun, ich werde das alles näher Planen müssen, da hast du schon Recht. Denn wenn man NICHT plant, kann gern die ein oder andere große Überrraschung kommen...
-
1. http://chessprogramming.wikispaces.com/
2. sag Bescheid, sobald dein Programm stärker als Houdini ist.
-
SeppJ schrieb:
Dann wird das wenigstens auch ein Programm, das auf einem Desktoprechner einen schlechten Menschen schlagen kann und kein Programm, dass nur auf Superrechnern läuft und so spielt wie
ein hirnamputierter Vierjährigerdu selber.Ich spiele ziemlich gut Schach.
Als guten Zug könnte ich einen Zug werten lassen, der mehreres Angreift (Gabeln), etwas frisst das entweder geschützt ist aber mehr als die Figur wert ist, oder nicht geschützt und dann eben vielleicht schlechter. Dabei gibt es Prioritäten von stehen bleiben und fressen für bestimmte Figuren ...
Das ich den Algorithmus genau Planen muss ist ja mal sowas von klar. Aber das ist der theoretische Planungsteil, den ich ja noch mache (das oben ist doch nur eine Skizze).
-
-
Gui ist hier erstmal irrelevant (und später auch kein großes Problem), würde ich sagen. Zuerst Konsoleversion, dann weitersehen.
Zu diesem Thema wird hier aber öfter was geschrieben, und es lohnt sich auch, mal reinzugucken, z.B.
http://www.c-plusplus.net/forum/299768-10?highlight=schach&sid=a3a96127892eae54bb195775ee1fa69d
oder
http://www.c-plusplus.net/forum/289261?highlight=schach&sid=a3a96127892eae54bb195775ee1fa69d
-
µ schrieb:
Danke (Danke natürlich auch an SeppJ, der aber wieder etwas böse auf mich ist (weil ich doof bin?))
Edit: Danke an nachtfeuer
-
Ich werde zuerst das Klassen-interface fertigmachen (dazu gehört einfach die Hierarchie der Figuren und ihre can_move/move Funktionen). Danach werde ich mich definitiv mit den Algorithmen auseinandersetzen. Vielen Dank an alle, werde hier noch Posten, wie es bei mir geht (vielleicht kann SeppJ das ja ins Projekte-Forum verschieben?).
-
SeppJ schrieb:
Du wirst feststellen, dass das bei drei Zügen etwas in Richtung 100 Milliarden Kombinationen ist.
Ich wette dagegen
Kubikwurzel aus 100 Milliarden ist ca. viereinhalb Tausend. Bei einem durchschnittlichen Schachspiel (zwischendrin) summiert sich die Anzahl aller möglicher Züge durchschnittlich auf 60 -70 (was natürlich stark abweichen kann, aber nicht auf 1000 kommt). z.B. 100³ ist eine Million, 60³ ist 216000. Tja, du hast auch so Recht.Edit: Bedenke! Der Computer hat relativ viel Zeit (ich habe nichts gegen ca. 10 Sekunden, 15 Sekunden ist ok).
-
http://de.wikipedia.org/wiki/Schach#Grundbegriffe_und_Spielziel
In der Schachnotation wird immer eine weiße und eine anschließende schwarze Figurenbewegung zusammen nummeriert und als Zug bezeichnet.
Mit deinen 3 Zügen im voraus bist du dann bei 60^6 = 50 Milliarden.
Die Abschätzung passt also schon
-
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
-
Mechanics schrieb:
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
Was erwartest Du denn bei jemandem der geschützte und nicht geschützte Figuren frisst?
-
Mechanics schrieb:
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
Ich spiele nicht im Verein.
Edit: Nun, im Vergleich zu den Top 200. Deutschen spiele ich natürlich nicht gut Schach. Aber gut genug, um (seit ca. 1 Jahr durchgehend) bester in der Schach-AG meiner Schule zu sein (was was heißt, denn dann bin ich bester der Schule).
-
Jester schrieb:
Mechanics schrieb:
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
Was erwartest Du denn bei jemandem der geschützte und nicht geschützte Figuren frisst?
Tu ich nicht (?)
-
Mario Sandler schrieb:
http://de.wikipedia.org/wiki/Schach#Grundbegriffe_und_Spielziel
In der Schachnotation wird immer eine weiße und eine anschließende schwarze Figurenbewegung zusammen nummeriert und als Zug bezeichnet.
Mit deinen 3 Zügen im voraus bist du dann bei 60^6 = 50 Milliarden.
Die Abschätzung passt also schonBin schon etwas wirr im Kopf. Danke.
-
Hacker schrieb:
Mechanics schrieb:
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
Ich spiele nicht im Verein.
Edit: Nun, im Vergleich zu den Top 200. Deutschen spiele ich natürlich nicht gut Schach. Aber gut genug, um (seit ca. 1 Jahr durchgehend) bester in der Schach-AG meiner Schule zu sein (was was heißt, denn dann bin ich bester der Schule).
Das kann ich schlecht einschätzen. Kann ja durchaus sein, dass alle anderen total schlecht spielen. Ich bin mir ziemlich sicher, dass ich in der Schule damals auch alle locker geschlagen hätte, bis auf einen. Hast du mal auf größeren Portalen im Internet gespielt, wo man die Spielstärke halbwegs einschätzen kann?
-
Mechanics schrieb:
Hacker schrieb:
Mechanics schrieb:
Hacker schrieb:
Ich spiele ziemlich gut Schach.
Wie gut? Wie hoch ist deine ELO bzw. DWZ?
Ich spiele nicht im Verein.
Edit: Nun, im Vergleich zu den Top 200. Deutschen spiele ich natürlich nicht gut Schach. Aber gut genug, um (seit ca. 1 Jahr durchgehend) bester in der Schach-AG meiner Schule zu sein (was was heißt, denn dann bin ich bester der Schule).
Das kann ich schlecht einschätzen. Kann ja durchaus sein, dass alle anderen total schlecht spielen. Ich bin mir ziemlich sicher, dass ich in der Schule damals auch alle locker geschlagen hätte, bis auf einen. Hast du mal auf größeren Portalen im Internet gespielt, wo man die Spielstärke halbwegs einschätzen kann?
Nope. Empfehl mal eins. Oder lass mal zusammen spielen.
-
rofl, bester in der Schule.
Kannst du hier den Hard mode schlagen? http://www.chess.com/play/computer.html
-
Hacker schrieb:
Nope. Empfehl mal eins. Oder lass mal zusammen spielen.
Naja, der größte kostenlose ist wohl FICS, oder zumindest kenne ich keine größeren.
Nicht dass du jetzt meinst, ich würde gut spielen... Ich finde eher, dass ich total schlecht spiele. Keine Chance gegen Vereinsspieler.
-
cooky451 schrieb:
rofl, bester in der Schule.
Kannst du hier den Hard mode schlagen? http://www.chess.com/play/computer.htmlJa, ich dich auch rofl. Und: Ich bin weit gekommen... nur leider hat er mir eine völlig unerwartete Gabel gestellt.
-
Wenn hier schon ein wenig abgedriftet wird, dann möchte ich noch die Seite chesstempo.com in den Raum werfen, bei der man sehr gut seine taktischen Fähigkeiten trainieren kann und je nach Spielstärke entsprechend schwere/leichte AUfgaben gestellt bekommt.