cpp_weekly icon indicating copy to clipboard operation
cpp_weekly copied to clipboard

Let's create a UCI client and server.

Open fcolecumberri opened this issue 3 years ago • 0 comments

Channel

This could be on any channel depending on the perspective.

Topics

Title Idea: Let's create a UCI client and server.

UCI is Universal Chess Interface. What I find interesting of this is that the protocol is pure communication through asynchronous standard input and standard output, so you cannot just block the thread with a std::cin/scanf/gets while at the same time you can never ignore the standard input so you need at least a thread reading the standard input and communicating with the working thread. and also in any case, the information needs to be parsed (not a complex parser).

Also from the client perspective, the fact that it needs to launch the server as a read and write pipe might just by itself be something new to a lot of people. Also most clients are GUIs so it could be another interesting take.

Of course I am not asking to create a 100% functional UCI client and server (not even close to it). just a client that can launch uci, isready, setoption, and go which are the interesting parts (I think) and a server that can receive those instructions response to them (maybe giving a random response to go should be a good idea).

More info here: http://wbec-ridderkerk.nl/html/UCIProtocol.html

Length

long format. maybe a series.

fcolecumberri avatar Sep 02 '22 00:09 fcolecumberri