cpp_weekly
cpp_weekly copied to clipboard
Let's create a UCI client and server.
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.