Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Parameterübergabe an externe .exe Datei
Gehe zu Seite Zurück  1, 2, 3, 4
 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC.
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 30.11.2013, 19:22    Titel: Antworten mit Zitat

Jetzt habe ich durch einen defekt bei meiner Festplatte den Quellcode von meinem unfertigen Schachprogramm verloren! Nicht nur das, es ist auch der komplette Rechner im Eimer! mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen mit dem Kopf durch die Mauer wollen

Im denkbar ungünstigsten Moment ist das passiert! Habe den Rechner runtergefahreen, wollte Grafikkarte wechseln, da diese Probleme machte. Brachte Rechner immer wieder mal zum Absturz! Konnte dann den Rechner nicht mehr hochfahren! Festplatte wird auf anderen Rechnern nicht erkannt, wenn ich sie mit einem speziellen Gerät anschließe! Somit ist wahrscheinlich die Festplatte kaputt!

War ca. 4-5 Jahre alt der Rechner!

Ich habe selber vor gehabt, ein Programm zu schreiben, dass man gegen UCI-Engines Schach spielen kann. (Oder Engine gegen Engine?)

Ich habe aber, möglicherweiße noch irgendwo eine Kopie früherer Programmiertätigkeiten auf einem meiner USB-Sticks drauf! Leider ist die nicht so aktuell gewesen wie die auf dem Computer!

Wenn ich die finde, werde ich mal den Quellcode euch zur Verfügung stellen! Ihr könnt sicher was damit anfangen!

Wegen der 3-fachen-Stellungswiederholung: Alleine die Stellungen Checken wie oft welche Stellung schon mal da war, nutzt nichts! sobald man mal "En passant" hätte schlagen können, ist noch keine 3-fache- Stellungswiederholung vorhanden!

Vielleicht kann man ein Gemeinschaftsprojekt draus machen?
So eine Art Schachprogramm mit UCI-Funktion?
Da wäre ich sofort dabei!

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 01.12.2013, 01:32    Titel: Antworten mit Zitat

@Roland Chastain: Eschecs versteht FEN-Strings, das ist ja schon die halbe Miete. Das UCI-Statement startpos ist nur eine Umschreibung von
    fen rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1
und die moves-Liste kann man auf einem internen Schachbrett nachspielen, um dann aus dem Ergebnis einen neuen FEN-String zu erstellen, der an die Engine geschickt wird. Soweit der einfache Teil.

Was die Engine von Eschecs zunächst und am allerdringendsten braucht, ist eine eindeutige Rückmeldung, wenn der Spieler Matt ist. Auf
    7K/6q1/7b/8/8/8/8/6k1 w - - 3 41
antwortet Eschecs mit
    e2e4_0
Das ist zwar in dieser Situation ein illegaler Zug, aber zum Auswerten nicht besonders praktisch. Bei stockfish lautet die Matt - Meldung "(none)" und Fruit gibt ein "a1a1" zurück, beides ist sofort und ohne weitere Analyse als "illegal" erkennbar.
Zweitens muß Eschecs dazu veranlasst werden können, die Berechnung sofort abzubrechen und den bis dahin besten Zug zu melden, und drittens muß es möglich sein, den derzeitigen Stand der Berechnug abzufragen.
Das wären erst einmal die grundlegendsten Voraussetzungen, von da aus könnte man dann darangehen, Schritt für Schritt das gesamte UCI-Protokoll zu implementieren.

@ALWIM:
Zitat:
Jetzt habe ich durch einen defekt bei meiner Festplatte den Quellcode von meinem unfertigen Schachprogramm verloren!
...und du bist jetzt sicher ganz begierig auf nachträgliche gute Ratschläge zum Thema "Sicherungskopien" grinsen
Zitat:
Im denkbar ungünstigsten Moment ist das passiert!
Gibt es denn einen günstigen Moment für sowas?
Zitat:
Wegen der 3-fachen-Stellungswiederholung: Alleine die Stellungen Checken wie oft welche Stellung schon mal da war, nutzt nichts! sobald man mal "En passant" hätte schlagen können, ist noch keine 3-fache- Stellungswiederholung vorhanden!
Stimmt, ich habe gerade nochmal in den Schachregeln nachgelesen, die Sache ist doch etwas komplizierter. Es muß ja auch noch der gleiche Spieler am Zug sein. Ich muß also noch die Gruppen "am Zug", "Rochade" und "en passant" des FEN-Strings vergleichen, oder habe ich da noch etwas übersehen? Wie sich das Recht zu rochieren "vorübergehend" ändern kann, verstehe ich allerdings nicht.
Zitat:
Vielleicht kann man ein Gemeinschaftsprojekt draus machen?
So eine Art Schachprogramm mit UCI-Funktion?
Da wäre ich sofort dabei!
Da sind wir doch schon längst mittendrin, auch wenn es noch keinem aufgefallen ist. lächeln
Ich hoffe auf jeden Fall auch weiterhin auf deine fachmännischen Hinweise zum Thema Schachregeln und deinen unermüdlichen Eifer beim Testen der Programme.

Gruß
grindstone

EDIT: Und gleich hinterher die neueste Version der engine_vs_engine
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Roland Chastain



Anmeldungsdatum: 05.12.2011
Beiträge: 192
Wohnort: Frankreich

BeitragVerfasst am: 01.12.2013, 09:46    Titel: Antworten mit Zitat

grindstone hat Folgendes geschrieben:
Was die Engine von Eschecs zunächst und am allerdringendsten braucht, ist eine eindeutige Rückmeldung, wenn der Spieler Matt ist. Auf
    7K/6q1/7b/8/8/8/8/6k1 w - - 3 41
antwortet Eschecs mit
    e2e4_0


Erstaunlich !

Code:
#include "engine.bas"

dim as string FEN(1 to ...) = { _
  "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", _
  "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1", _
  "rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2", _
  "rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2", _
  "4k3/8/8/8/8/8/4P3/4K3 w - - 5 39", _
  "7K/6q1/7b/8/8/8/8/6k1 w - - 3 41" _
}

dim JSCP as tChessEngine

open "test05.txt" for output as #1

JSCP.Initialize(FEN(6))
print #1, JSCP.BoardRepresentation
print #1, ""

print #1, JSCP.EngineMove

close #1


Code:
  1 2 3 4 5 6 7 8
8 - - - - - - - K
7 - - - - - - q -
6 - - - - - - - b
5 - - - - - - - -
4 - - - - - - - -
3 - - - - - - - -
2 - - - - - - - -
1 - - - - - - k -
  1 2 3 4 5 6 7 8

h8h7_3


Code:
const engine = "JSCP.exe"

dim as string FEN(1 to ...) = {_
  "rnbqkbnr/pppppppp/8/8/8/8/PPPPPPPP/RNBQKBNR w KQkq - 0 1", _
  "rnbqkbnr/pppppppp/8/8/4P3/8/PPPP1PPP/RNBQKBNR b KQkq e3 0 1", _
  "rnbqkbnr/pp1ppppp/8/2p5/4P3/8/PPPP1PPP/RNBQKBNR w KQkq c6 0 2", _
  "rnbqkbnr/pp1ppppp/8/2p5/4P3/5N2/PPPP1PPP/RNBQKB1R b KQkq - 1 2", _
  "4k3/8/8/8/8/8/4P3/4K3 w - - 5 39", _
  "7K/6q1/7b/8/8/8/8/6k1 w - - 3 41" _
}

declare function Exists(file as string) as integer
declare function EngineMove(exe as string, param as string) as string

dim move as string

open "test08.txt" for output as #1

if Exists(engine) then
  move = EngineMove(engine, FEN(6))
  print #1, move
else
  print #1, "Executable not found"
end if

close #1

function Exists(file as string) as integer
  return len(dir(file)) > 0
end function

function EngineMove(exe as string, param as string) as string
  dim n as ubyte = freefile
  open pipe exe & " " & """" & param & """" for input as #n
  dim as string s
  line input #n, s
  close #n
  function = s
end function


Code:
h8h7_3


Code:
' flag.bas

' N. B. The EngineMove function always returns a move, even if there is no legal
' move (that is to say, in case of checkmate or stalemate). The function returns
' a string, for example "e2e4_0", where 0 is the flag.

' Valid move
#define standardFlag 0
#define checkFlag 1

' Invalid move
#define stalemateFlag 2
#define checkmateFlag 3


grindstone hat Folgendes geschrieben:
Zweitens muß Eschecs dazu veranlasst werden können, die Berechnung sofort abzubrechen und den bis dahin besten Zug zu melden, und drittens muß es möglich sein, den derzeitigen Stand der Berechnung abzufragen.


Ja, aber es ist nicht einfach. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 01.12.2013, 16:04    Titel: Antworten mit Zitat

Mit dem Code aus deinem letzten posting bekomme ich als Rückmeldung von Eschecs
    h7h6_3
Damit lässt sich schon etwas anfangen. Wenn ich allerdings
    3b4/7r/K7/8/k7/8/8/8 w - - 3 26
schicke (Test auf stalemate), bekomme ich als Rückmeldung
    a6a7_2
also kein stalemate Flag. Und wenn ich den Befehl zweimal direkt hintereinander schicke, also
Code:
...
JSCP.Initialize("3b4/7r/K7/8/k7/8/8/8 w - - 3 26")
Print #1, JSCP.BoardRepresentation
Print #1, ""
Print #1, JSCP.EngineMove
Print #1, JSCP.EngineMove
Close #1
...
bekomme ich als Rückmeldung
    a6a7_2
    a7a6_0
was darauf hindeutet, daß die Engine intern auch illegale Züge ausführt. Das ist eigentlich kein Problem, da die Partie bei einem Flag <> 0 normalerweise von der GUI aus abgebrochen wird, aber sicherer wäre es, wenn die Engine illegale Züge verweigert.
Zitat:
grindstone hat Folgendes geschrieben:
Zweitens muß Eschecs dazu veranlasst werden können, die Berechnung sofort abzubrechen und den bis dahin besten Zug zu melden, und drittens muß es möglich sein, den derzeitigen Stand der Berechnung abzufragen.


Ja, aber es ist nicht einfach. lächeln
Aber es ist notwendig, da vom UCI-Protokoll her eine Begrenzug der Rechenzeit oder Berechnungstiefe vorgegeben werden kann.
Da müssten wir uns zunächst einmal darüber einigen, ob die Engine oder das UCI-Interface die Überwachung und Einhaltung dieser Vorgaben übernehmen soll. Auf jeden Fall sollte die Engine die Informationen über den aktuellen Stand ihrer Berechnungen (bester Zug, Berechnungstiefe, erwarteter Gegenzug) irgendwo ablegen, wo das Interface sie jederzeit abrufen und in Form eines info-Strings an die GUI weitermelden kann.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 01.12.2013, 17:13    Titel: Antworten mit Zitat

Zitat:
Ich hoffe auf jeden Fall auch weiterhin auf deine fachmännischen Hinweise zum Thema Schachregeln und deinen unermüdlichen Eifer beim Testen der Programme.
Als Regionaler Schiedsrichter im Schach und als Schachverrückter werde ich das auf jeden Fall tun!

Zitat:
...und du bist jetzt sicher ganz begierig auf nachträgliche gute Ratschläge zum Thema "Sicherungskopien"
Man programmiert so schön dahin und speichert auf dem Computer auf der Festplatte seinen Quellcode ab! Schaltet den Rechner aus und will ihn später wieder hochfahren. Scheiße geht nicht mehr! Jetzt möchte ich mal einen sehen, der daran denkt seinen Quellcode auch noch wo anders zu speichern, als auf der Festplatte! Man denkt im ersten Moment gar nicht daran, seinen Quellcode noch wo anders zu Sichern! Aber genau dann passiert was! Ganz habe ich den Quellcode nicht verloren! Auf einem USB-Stick war eine Vorversion von meinem Programm drauf! Diese hatte ich mal da drauf gesichert! Aber es ist nicht das, was ich ursprünglich schon mal hatte.

Zitat:
Wie sich das Recht zu rochieren "vorübergehend" ändern kann, verstehe ich allerdings nicht.

König steht im Schach und darf deswegen vorrübergehend nicht rochieren! Einen Zug später steht er nicht mehr im Schach und darf wieder rochieren. Oder eines der 2 Felder die der König betritt, sind von einer gegnerischen Figur bedroht. König darf vorrübergehend nicht rochieren. Sind sie wieder frei im nächsten Zug so darf wieder rochiert werden.

Code:
DIM AS ANY PTR Brettpuffer
   Brettpuffer = IMAGECREATE(336,336)
   BLOAD (EXEPATH & "\Holz.bmp", Brettpuffer)
   PUT (bx, by), Brettpuffer, PSET
   IMAGEDESTROY(Brettpuffer)

Habe mir ein externes Schachbrett mit Paint gemacht, das ich dann nur noch lade mit obigen Code!

Zitat:
Gibt es denn einen günstigen Moment für sowas?

Leider ja, denn der war erstens nagelneu (Garantie ist aber leider schon abgelaufen gewesen)! Das war mein bester Rechner. Den hätte ich zweitens zur Analyse von Schachpartien gebraucht! 64-bit Rechner mit 4 Kernen. Die wichtigsten Quellcodes von mir, sind eh beim FB-Portal hochgeladen worden und waren zudem auch nicht auf dem Rechner drauf.

Zitat:
Es muß ja auch noch der gleiche Spieler am Zug sein.
Der gleiche nicht, es reicht auch wenn der andere am Zug ist!

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 02.12.2013, 01:08    Titel: Antworten mit Zitat

ALWIM hat Folgendes geschrieben:
Man denkt im ersten Moment gar nicht daran, seinen Quellcode noch wo anders zu Sichern
Das mit den Ratschlägen war jetzt auch ironisch gemeint, weil ich die Situation kenne. Bei mir war es vor Jahren ein selbstgebauter EPROM-Brenner. Nachdem ich knapp 3 Wochen an der Software gearbeitet hatte und fast fertig war, war plötzlich die Partitionstabelle nicht mehr lesbar und liess sich auch nicht rekonstruieren. Und ich hatte überhaupt keine Sicherungskopie. Danach sichert man dann erst mal wie ein Wilder und dann immer seltener, bis zum nächsten Datenverlst. Und die hilfreichen Vorschläge der netten Kollegen -hinterher- nimmt man dann immer wieder gerne und dankbar entgegen...

ALWIM hat Folgendes geschrieben:
Der gleiche nicht, es reicht auch wenn der andere am Zug ist!
Dann steht bei Wikipedia etwas falsches. Dort heißt es:
Zitat:
Stellungen unter a) und b) gelten als gleich, wenn der gleiche Spieler am Zuge ist, Figuren der gleichen Art und Farbe die gleichen Felder besetzen und die Zugmöglichkeiten aller Figuren beider Spieler gleich sind. Stellungen sind nicht gleich, wenn ein Bauer, der en passant geschlagen werden konnte, nicht mehr geschlagen werden kann, oder wenn sich das Recht zu rochieren vorübergehend oder endgültig geändert hat.“

Auf diesen Text bezog sich auch meine Verwunderung über den "vorübergehenden" Verlust des Rochaderechts. Denn bei gleichen Stellungen sind logischerweise auch die gleichen Felder von Schach bedroht, da kann sich also nur "endgültig" etwas geändert haben, wenn nämlich die entsprechenden Figuren bewegt worden sind.

Und noch eine Frage zur 50-Züge-Regel: Werden da 50 Halbzüge oder 50 Züge = 100 Halbzüge gezählt, und wann genau gelten diese als vollendet? Ich bin mir nicht sicher, ob die eingine_vs_engine da richtig mitzählt.

Übrigens spielen bei mir gerade seit ein paar Stunden Fruit und Stockfish gegeneinander. Begonnen haben sie mit 1 Sekunde Rechenzeit, und der Verlierer bekommt jedesmal 1 Sekunde dazu. Die Bilanz ist 22:1 für Stockfish bei 8mal unentschieden, und Stockfish hat mit 2 Sekunden Rechenzeit gerade gegen Fruit mit 22 Sekunden Rechenzeit gewonnen. Der Unterschied in der Spielstärke ist also ganz enorm.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
ALWIM



Anmeldungsdatum: 08.08.2006
Beiträge: 1037
Wohnort: Niederbayern

BeitragVerfasst am: 02.12.2013, 08:51    Titel: Antworten mit Zitat

Zitat:
Dann steht bei Wikipedia etwas falsches. Dort heißt es:
Zitat:
Stellungen unter a) und b) gelten als gleich, wenn der gleiche Spieler am Zuge ist, Figuren der gleichen Art und Farbe die gleichen Felder besetzen und die Zugmöglichkeiten aller Figuren beider Spieler gleich sind. Stellungen sind nicht gleich, wenn ein Bauer, der en passant geschlagen werden konnte, nicht mehr geschlagen werden kann, oder wenn sich das Recht zu rochieren vorübergehend oder endgültig geändert hat.“

Auf diesen Text bezog sich auch meine Verwunderung über den "vorübergehenden" Verlust des Rochaderechts.

Wenn die Stellung zum 3. Mal auf dem Brett erscheint kann theoretisch der weiße bzw. der schwarze Spieler dran sein. Reklamiert zum Beispiel Weiß die 3-fache-Stellungswiederholung nicht, kann Schwarz diese im nächsten Zug reklamieren. Es kann sein, dass die Stellung bereits zum 4. oder gar 5. mal auf dem Brett erscheint! Gar nicht so unrealistisch!

Zitat:
Und noch eine Frage zur 50-Züge-Regel: Werden da 50 Halbzüge oder 50 Züge = 100 Halbzüge gezählt, und wann genau gelten diese als vollendet? Ich bin mir nicht sicher, ob die eingine_vs_engine da richtig mitzählt.
1 Zug ist immer ein Halbzug von Weiß sowie ein Halbzug von Schwarz! Demnach sind 50 Züge also 100 Halbzüge! Die gelten dann auch.

Zitat:
Das mit den Ratschlägen war jetzt auch ironisch gemeint, weil ich die Situation kenne.
Schon klar!

Vielleicht kann man noch versuchen, die Engines mit einer bestimmten Bedenkzeit spielen zu lassen? Also jede hat 5 Minuten für die komplette Partie! Das ist mir erst viel später gekommen! Da habe ich zuerst gar nicht dran gedacht, als ich die Idee mit dem Programm hatte.

Bloß wie teilt man dem Programm das dann mit?
Ich bin mit meinem Programm noch nicht so weit, dass ich an sowas denken kann. Muss wieder bei 0 anfangen durch den Verlust des Quellcodes! Auf jeden Fall, werde ich jetzt mal ein paar nützliche Bilder zur Verfügung stellen! Die sind Gott-sei-Dank noch vorhanden! Nicht das die dann auch noch verloren gehen!

Gruß
ALWIM
_________________
SHELL SHUTDOWN -s -t 05
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 03.12.2013, 03:18    Titel: Antworten mit Zitat

ALWIM hat Folgendes geschrieben:
Wenn die Stellung zum 3. Mal auf dem Brett erscheint kann theoretisch der weiße bzw. der schwarze Spieler dran sein.
OK, dann werde ich die Überprüfung von "Spieler am Zug" wieder aus dem Programm herausnehmen.
Ich stelle immer mehr fest, daß sich die Spielsituation beim Schach überhaupt nicht 1:1 auf ein Computerprogramm übertragen lässt. Denn es könnte je nach Situation für einen Spieler ja durchaus vorteilhafter sein, ein Remis nicht zu reklamieren. Aber das zu programmieren, dürfte wohl unmöglich sein, zumindest für solche Hobby-Rechnerquäler wie uns. lächeln
Zitat:
Vielleicht kann man noch versuchen, die Engines mit einer bestimmten Bedenkzeit spielen zu lassen? Also jede hat 5 Minuten für die komplette Partie! Das ist mir erst viel später gekommen! Da habe ich zuerst gar nicht dran gedacht, als ich die Idee mit dem Programm hatte.

Bloß wie teilt man dem Programm das dann mit?
Auch diese Option ist (neben etlichen anderen) im UCI-Protokoll enthalten ("go wtime x" --> white has x msec left on the clock). Aber bevor ich darangehe, diese Optionen in das Programm einzubauen, wollte ich erst einmal den Programmkern richtig zum Laufen bringen, speziell was die Einhaltung der Regeln betrifft, denn ohne das wären alle Ergebnisse wertlos.

Es sind noch etliche andere Modi denkbar, je nachdem, was man herausfinden möchte.
Mit der Vorgabe eines festen Zeitkontingents könnte man beispielsweise feststellen, welche Engine am effektivsten mit ihrer Rechenzeit umgeht, mit der Restzeit des Siegers als Qualitätsmaßstab.
Mit dem Handicap-Modus, wie er zur Zeit in der engine_vs_engine implementiert ist, kann man sehr gut das Spielstärkenverhältnis zweier Engines ermitteln (wobei es interessant wäre zu sehen, ob man aus den Verhältnissen A:B und B:C auf A:C schließen kann).
Mit fest vorgegebener Berechnungstiefe kann man prüfen, welche der Engines den mathematisch effektivsten Algorithmus hat.
Mit festen Rechenzeiten oder Berechnungstiefen für beide Engines könnte man prüfen, ob eine neue Idee zur Weiterentwicklung wirklich Vorteile bringt, wenn man die alte und die neue Version derselben Engine gegeneinander spielen lässt.
Und es gibt sicher noch etliche andere Möglichkeiten, warten wir's mal ab.

Fest in Planung habe ich auch noch eine "Pseudo-Engine" zur manuellen Eingabe von Zügen, damit hätten wir dann ein Computerschachprogramm im Baukastensystem, in das man jede UCI-Engine als Gegner einhängen kann.

Auf jeden Fall ist es ein sehr interessantes Testwerkzeug, das da in der Entwicklung ist, und ich bin selber gespannt, was am Ende dabei herauskommt.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!


Zuletzt bearbeitet von grindstone am 10.01.2014, 20:16, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
grindstone



Anmeldungsdatum: 03.10.2010
Beiträge: 1208
Wohnort: Ruhrpott

BeitragVerfasst am: 18.12.2013, 14:49    Titel: Antworten mit Zitat

Ich habe mich entschlossen, aus dem Ganzen ein Projekt zu machen.

Gruß
grindstone
_________________
For ein halbes Jahr wuste ich nich mahl wie man Proggramira schreibt. Jetzt bin ich einen!
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Allgemeine Fragen zu FreeBASIC. Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4
Seite 4 von 4

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz