Format fix 2001/williams/README.md

This commit is contained in:
Cody Boone Ferguson committed 2023-04-24 07:10:29 -07:00
1 parent 56e7dc3e88
commit 4203e451bc
1 file changed
+14 -15
+14 -15
View File
@@ -1,9 +1,7 @@
# Best Graphic Game # Best Graphic Game
John Williams John Williams
941 E 25 S US
Lindon UT 84042
US
## To build: ## To build:
@@ -25,11 +23,12 @@ echo "Do or do not. There is no try."
## Judges' remarks: ## Judges' remarks:
A strange game. The only winning move is not to play. No, really; you can't [A strange game. The only winning move is not to
actually win. :) play](https://en.wikipedia.org/wiki/WarGames). No, really; you can't
actually win. :)
The formatting really wants a wide screen; if you can't read it that way, The formatting really wants a wide screen; if you can't read it that way, it's
it's the standard "three triangles around a circular" logo for nukes. the standard "three triangles around a circular" logo for nukes.
This is a pretty straightforward game. This is a pretty straightforward game.
@@ -37,8 +36,8 @@ This is a pretty straightforward game.
What this program does: What this program does:
It plays Missile Command, complete with MIRVs, smart bombs, It plays [Missile Command](https://en.wikipedia.org/wiki/Missile_Command),
extra cities, and scoring. complete with MIRVs, smart bombs, extra cities, and scoring.
Command line arguments and input files are ignored. Command line arguments and input files are ignored.
@@ -51,18 +50,18 @@ points for each city left at the end of a level.
The game ends when you lose all your cities, although you will have The game ends when you lose all your cities, although you will have
to wait until the level finishes raining down to see your final score. to wait until the level finishes raining down to see your final score.
### Obfuscation
The main obfuscation technique is the need to compress the code to fit The main obfuscation technique is the need to compress the code to fit
all the functionality within the size limits. I could not have included all the functionality within the size limits. I could not have included
smart bombs without the rule excluding { } ; characters in the counts. smart bombs without the rule excluding `{};` characters in the counts.
All of the #defines are there to reduce code size. All of the `#define`s are there to reduce code size.
On the other hand, I did waste a few characters in order to include On the other hand, I did waste a few characters in order to include
some rather obfuscated math in the program. It uses fixed-point some rather obfuscated math in the program. It uses fixed-point
arithmetic, resulting in the overuse of bitwise shift operators. arithmetic, resulting in the overuse of bitwise shift operators.
Another example is (x|1), which is used in a couple different ways. Another example is `(x|1)`, which is used in a couple different ways.
The purpose of A/(x|1) is probably obvious, but what does (x|1)%2 do? The purpose of `A/(x|1)` is probably obvious, but what does `(x|1)%2` do?
## Copyright and CC BY-SA 4.0 License: ## Copyright and CC BY-SA 4.0 License: