Helpful YouTube videos (UCI-Interface for Chess-Engines) - Printable Version +- Small Basic Forum (https://litdev.uk/mybb) +-- Forum: Small Basic (https://litdev.uk/mybb/forumdisplay.php?fid=1) +--- Forum: C# Moving from Small Basic (https://litdev.uk/mybb/forumdisplay.php?fid=6) +--- Thread: Helpful YouTube videos (UCI-Interface for Chess-Engines) (/showthread.php?tid=74) |
Helpful YouTube videos (UCI-Interface for Chess-Engines) - Scout - 05-22-2024 The discussion of the AI championship with a playing field and separate engines reminded me of the chess engine championships of the last few decades. The ranking is determined from countless games that the engines play against each other. This is done automatically via defined interfaces (e.g. UCI interface). My attempts to access this interface with Small Basic failed because I didn't know how Small Basic used the stdio interface. So I looked for a C# chess engine that was as simple as possible and then wrote a Small Basic program using the source code that could at least access the UCI interface. Searching on github I found the following video series that shows how an unknown interface can be accessed and operated using debug outputs. https://www.youtube.com/playlist?list=PL6vJSkTaZuBtTokp8-gnTsP39GCaRS3du The video series consists of four episodes, of which I have completed the first one and the others will probably take some time. Definition UCI Interface: https://en.wikipedia.org/wiki/Universal_Chess_Interface Chess program that can communicate with chess engines: https://cutechess.com/ Episode 1 : Hello World The program CS_UCI was written in Visual Studio 2017. It is a console application with the target framework .NET 4.5.2 Code: using System; Using New, you can choose any engine for white (stockfish, Dragon, etc.) or you can play yourself. CS_UCI can now be selected for black. The dummy moves provided for black should be enough for a few moves. The corresponding Small Basic program is in Thread: https://litdev.uk/mybb/showthread.php?tid=75 RE: Helpful YouTube videos (UCI-Interface for Chess-Engines) - litdev - 05-23-2024 I like the idea of using Console to communicate simply between applications, I will have a bit of fun seeing if I can do a small extension to allow TW commands to interact between SB programs . EDIT Turns out this can only be done if one program starts the other as is done with Cute Chess . RE: Helpful YouTube videos (UCI-Interface for Chess-Engines) - Scout - 05-27-2024 Sorry guys, the videos aren't as helpful for me as I thought. They are very intensive and not in my native language and some peripheral information is missing, which is then difficult to recognize in the video. The source code for the videos is not easy to find in the history of the program development. In the time it took me to convert 30% of Episode II into executable code, Litdev wrote an almost complete, well-functioning chess engine in Small Basic. And it will be even more complex in Episode III + IV. That's why I'm stopping my project for now and will continue the UCI engine with Small Basic. For those who are interested, I would like to provide the link to the source code of MinimalChess: https://github.com/lithander/MinimalChessEngine Good Luck EDIT: I found a few more videos in which the UCI protocol is explained well. Communication with Arena is also shown. The programming language is unfortunately Java, but it is very similar to C#. Universal Chess Interface: https://www.youtube.com/watch?v=vuvTFNreykk&list=PLQV5mozTHmacMeRzJCW_8K3qw2miYqd0c&index=23 Implementing the UCI: https://www.youtube.com/watch?v=D4DBE4UQoAY&list=PLQV5mozTHmacMeRzJCW_8K3qw2miYqd0c&index=24 UCI Moves (Part 2): https://www.youtube.com/watch?v=9BrV87doCAM&list=PLQV5mozTHmacMeRzJCW_8K3qw2miYqd0c&index=25 UCI Move & Go (Part 3) : https://www.youtube.com/watch?v=p1YoD30--AM&list=PLQV5mozTHmacMeRzJCW_8K3qw2miYqd0c&index=26 How to Connect the Chess Engine to Arena or any other GUI: https://www.youtube.com/watch?v=ghn0RLx2jLs&list=PLQV5mozTHmacMeRzJCW_8K3qw2miYqd0c&index=27 |