Dann Corbit wrote:Daniel Uranga wrote:The string "Amor incondicional" was just for testing! Not really intended to be the program name. Anyway Im very happy to see it on a chess engine list with "real" chess engines.
If someone of you have some free time: advices in how to continue improving my code are always welcome!
<spanish>
Miguel: Soy de Olavarría, provincia de Buenos Aires, pero ahora estoy estudiando Ingenieria de sistémas en Tandil, el programa lo estoy haciendo como proyecto final para algoritmos, si todo sale bien, me libro de dar el final
. Igualmente siempre me gusto mucho el ajedrez, y mas de pibe tenia un nivel bastante bueno. Tengo ganas de hacer algo que quede medianamente bien, seria genial.
</spanish>
Suggestions:
1. Add a setboard command.
2. Add a command to analyze a test set.
3. Add a command to evaluate a position or set of positions.
4. Add a command to rotate the board and also to reverse colors.
These are all very helpful for debugging.
Also, with most Winboard engines, the following can be used to get the engine going (not every engine has set time (st) in seconds, but for lazy people like me who want something quick it is also nice to have):
st 5
new
post
go
In order to do a profile and step through the code, we need some simple way to get the engine going from the console. I don't want to have to emulate the exact conditions of Winboard startup.
You have the code needed for setboard already in your source tree, but you have not exposed setboard as a command. You should do that first.
To analyze a test set, it is as simple as:
1. Set the time with st or time
2. Read position from file
3. End of file? If yes, then stop.
4. Set the board from the position you read {setboard}
5. execute go
6. Go to step 2.
Sometimes, you do not want to test search+eval, but only eval. So you should also have a mode exactly like the mode above but it only performs eval and not search.
It is a very good idea to have a way to reverse the colors and reverse the board so that you can find out if (for instance) any of your evaluation terms have the wrong sign -- it's easy to do especially if you cut and paste a bit of code from one place to another or if you are thinking from white's standpoint when you write it.