Yet Another Java Chess Engine

Vom einfachen Programm zum fertigen Debian-Paket, Fragen rund um Programmiersprachen, Scripting und Lizenzierung.
Antworten
Benutzeravatar
swlx87
Beiträge: 187
Registriert: 29.07.2007 20:32:41
Lizenz eigener Beiträge: MIT Lizenz

Yet Another Java Chess Engine

Beitrag von swlx87 » 12.10.2008 18:41:37

Hallo,

ich denke schon längere Zeit über eine neue Schachengine nach.
Ein paar Ideen habe ich schon zusammengetragen. Ich würde sie
gerne mal vorstellen:

Jedes Schachfeld besteht nur aus einer Nummer.

Diese Nummer setzt sich wie folgt zusammen:

Beispiel: Schwarzer Turm auf a1

X Koordinate 1 (1000)
Y Koordinate 1 (0100)
Ein Turm 8 (0080) // Wobei die 8 jetzt mal einfach mal
Schwarz 2 (0002) // als Beispiel genommen wurde.
// Jede Figur hat also einen Wert.

Der Feldwert beträgt demnach: 1182.
Unbesetzt wäre er 1100.

Bewegen kann sich der Turm so über die x und y Werte.

Also:

Code: Alles auswählen

if(x < 8000) { // 8000+ wäre über den Rand hinaus!
  x+1000; 
}
if(x > 1000) {
  x-1000;
}
if(y < 800) {
  y+100;
}
if(y > 100) {
  y-100;
}
Und das natürlich auch nur wenn das Feld von keiner
Figur der eigenen Farbe besetzt ist. Das kann man
z. B. über eine Modulooperation herrausfinden:

Code: Alles auswählen

if ( new_all % 2 == 0) {
  /*schwarz */
} else {
  /*weiß */
}
Nach einem erfolgreichen Versetzen muss das Feld 1100
natürlich wieder zu einem freien Feld erklärt werden, welches
eine Methode erledigen kann.

Vielleicht nicht die schnellste, tollste und coolste Methode
aber ich wollte es trotzdem mal probieren.

Was haltet ihr davon, würde vielleicht sogar noch jemand mitmachen?
(Das ganze soll in Java programmiert werden - wenn mir aber
jemand genug Argumente für C oder C++ in Bezug auf eine Schachengine
bringt überlege ich es mir nochmal mit Java.)

PS: Falls es mal fertig werden sollte xD veröffentliche ich
es natürlich frei verfügbar unter der GNU GPL,
J. S.

123456
Beiträge: 6126
Registriert: 08.03.2003 14:07:24

Re: Yet Another Java Chess Engine

Beitrag von 123456 » 12.10.2008 19:27:09

Also weit bist Du noch nicht, wenns um Schach geht. :)

Hier mal ein Link für den Einstieg:
http://www.rocechess.ch/maturaarbeit/matura.pdf

Welche GUI willst Du denn verwenden? Auch selberbauen? Sonst musst du dir über die Schnittstelle (UCI) Gedanken machen.
http://download.shredderchess.com/div/uci.zip

Du kannst Dir auch mal die Sourcen hiervon anschauen:
http://www.gnu.org/software/chess/chess ... ownloading

ps:
nein, ich habe noch keine Schachengine programmiert. ;)

Benutzeravatar
swlx87
Beiträge: 187
Registriert: 29.07.2007 20:32:41
Lizenz eigener Beiträge: MIT Lizenz

Re: Yet Another Java Chess Engine

Beitrag von swlx87 » 12.10.2008 20:19:09

Es geht mir in erster Linie um das essentielle Funktionieren des Codes.
Ich möchte erstmal keine GUI einbauen bzw. vielleicht erst später implementieren.
Zu aller Erst muss das Programm funktionieren, dass heißt:

- Ein Spiel gegen den Computer sollte möglich sein

Das ganze soll als Konsolenanwendung laufen und ähnlich aussehen
wie GNU Chess.

Mit einem kurzen Beispiel wollte ich zeigen wie ich mir das mit der neuen
Schachengine vorstelle. Optional könnte ich jetzt hier meinen gesamten, bis jetzt
geschriebenen Quelltext bereitstellen, aber es ging ja erstmal um die eigentliche Idee.

Das Thema an sich finde ich schon sehr spannend und fordernd, warum also nicht?

Der Code von bereits existierenden Anwendungen mag ja interessant sein, aber ich
möchte eine völlig neue Engine entwickeln, from scratch sozusagen, und ohne auf
Altes aufzubauen.
J. S.

Antworten