Added `bin/bin/tar-entry.sh` to build a compressed tarball for an entry. The compressed tarball is formed by gnu tar with options so that the same entry file content will always produce the same compressed tarball, byte for byte. As some files are missing from some entries, one should use the `-W` option as in: ```sh bin/tar-entry.sh -v 5 -W 2020/ferguson1 ``` Added `make form_entry_tarball` to the top level `Makefile` to build entry tarballs even when files are still missing. Added `make verify_entry_files` to verify that all entries have all of their files listed in their manifest, plus the top level ioccc.css and var.mk files. As file entry files are still missing (due to HTML files that need to be built), the overall `make quick_www` and `make www` do **NOT** (yet) exit when the `make verify_entry_files` fails. Improved `bin/chk-entry.sh` by removing some variables that were not needed. TODO: Improve `bin/` tool exit codes as the current use is a bit silly. TODO: Clean out some variables used in `bin/` tools as some of then are only set printed in debug statements. TODO: Clean up usage messages, some of the options listed to not match the `getopts(1)` parsing. In some cases the option needs to be parsed but needs to be ignored by the tool because another tool automatically passes along certain options that really have no effect. Such ignored options need to be show as "This option is ignored" in the usage message.
To build:
make
To use:
./toledo1 [0-9][0-9]
where [0-9][0-9] is a two digit number.
Try:
./try.sh
Judges' remarks:
For most of the arguments (e.g. those above) the resulting path is not circular, but at least one starting point yields a circular path.
Why do some of the "illegal" starting points work more or less as could be expected, and some dump core?
Author's remarks:
Can you place a knight on a chess board and make it visit the 64 squares without repeating them?
If not, this program does it, just run it with an argument giving initial position.
./toledo1 11 # start is A8
./toledo1 18 # start is H8
./toledo1 81 # start is A1
./toledo1 88 # start is H1
./toledo1 44 # start is D5
It will print move order. The algorithm is so simple that you can read it in the source code. At the first glance it can appear checkered. Nevertheless, don't be dismayed, jar, jar. :-)
Copyright and CC BY-SA 4.0 License:
This file is Copyright (c) 2023 by Landon Curt Noll. All Rights Reserved. You are free to share and adapt this file under the terms of this license:
Creative Commons Attribution-ShareAlike 4.0 International (CC BY-SA 4.0)
For more information, see: https://creativecommons.org/licenses/by-sa/4.0/