diff --git a/2005/toledo/README.md b/2005/toledo/README.md index 0d5e0e047..181152e23 100644 --- a/2005/toledo/README.md +++ b/2005/toledo/README.md @@ -25,13 +25,18 @@ make Two alternate versions of this entry, [toledo2.c](toledo2.c) and [toledo3.c](toledo3.c) are provided. -To compile these alternate versions: + +### Alternate build: + +To compile the alternate versions: ```sh make alt ``` -Use `toledo2` and `toledo3` as you would `toledo` above. +### Alternate use: + +Use Use `toledo2` and `toledo3` as you would `toledo` above. ## Judges' remarks: @@ -41,6 +46,13 @@ Challenge your knowledge of C operator precedence. The following is the move analysis via recursion while it executes moves. All while playing by the rules of C and Chess within a single function! +### Historical note: + +When this entry was submitted the code was a recursive call to `main()` - that +was it. In 2023 due to problems with `clang` `main()` calls another function, +`pain()`, which calls itself. But it might be said that the Chess is still a +single function. + ## Author's remarks: @@ -74,31 +86,36 @@ And each successive argument will analyze one limit, but beyond 7 ply is very slow, try it at your own risk and computing time. + ### Entering movements -When is your turn, you can enter your move, by example, as `d2d4` and press the -enter key. The computer will check move legality and will warn you of illegal -moves. All legal chess moves are permitted. +When it is your turn, you can enter your move, for example, as `d2d4` and press the +enter key. This will move the pawn at `D2` to `D4`, assuming that a pawn is +there (as it would be in the beginning). The computer will check move legality +and will warn you of illegal moves. All legal chess moves are permitted. One special case is when you are doing promotion, you must enter the move with an extra letter indicating the desired piece. -By example `f7f8n` (supposing you have a pawn on `F7`), will promote it to a +For example `f7f8n` (supposing you have a pawn on `F7`), will promote it to a knight; substitute `n` for the desired piece (`N`/`Q`/`R`/`B`). Note that the program requires the piece letter; it will not select automatically a queen, so don't be surprised if it doesn't accept your move. + ### Game status The computer will check for checkmate and stalemate. Also, after each machine move, it will show the score of the position: a higher number is better for the computer, i.e. worse for you. + ### Quirks None. + ### Program operation This is a good example of a chess program reduced to the essential. In order @@ -115,6 +132,7 @@ they are verified. It also sets a standard on ultra-mini-chess programs. The player and the computer can do all legal chess moves. + ### Additional features Other features are: @@ -126,6 +144,7 @@ Other features are: 7-[ply](https://en.wikipedia.org/wiki/Ply_(game_theory))) and even in 5 ply can give a surprise to amateur players. + ### Obfuscation tricks * Only one very modular C function.