diff --git a/2004/vik1/README.md b/2004/vik1/README.md
index a3ef66ad8..fe019b6c2 100644
--- a/2004/vik1/README.md
+++ b/2004/vik1/README.md
@@ -1,11 +1,9 @@
# Best X11 Game
- Daniel Vik
- 926 Genter Street
- La Jolla, Ca 92037
- US
-
- http://www.vik.cc/
+Daniel Vik
+US
+
+
## To build:
@@ -28,11 +26,13 @@ make
./vik1 ad3
```
+Can you figure out how to cheat?
+
## Judges' remarks:
-Danial Vik has presented a tour de force feature rich X11-based
-racing game that fit within the contest size limits. Take a
-glace at the feature list he provided below. Amazing!
+Daniel Vik has presented a tour de force feature rich X11-based
+racing game that fit within the contest size limits. Take a
+glance at the feature list he provided below. Amazing!
Happy touring on the road and in the code!
@@ -54,11 +54,11 @@ This program is a complete car race game with a lot of nice features:
* Slippery road when driving in the winter.
-* When driving off the road, the car slows down to a halt
+* When driving off the road, the car slows down to a halt.
* Three different race tracks that takes about one minute to complete.
-* Speed meter.
+* Speedometer.
* Computer driven opponent cars.
@@ -71,69 +71,74 @@ This program is a complete car race game with a lot of nice features:
### Build and Run
Compile the source code and link x libraries if necessary.
-The program takes three options which have to be typed in a specific
+The program takes three options which have to be typed in a specific
order as described below.
- Usage: vik1 ['a']['d'][#]
+```sh
+Usage: ./vik1 ['a']['d'][#]
- a - Advanced racing in a winter landscape
- d - Racing in at night in the dark
- # - Race track selection 1-3 are valid numbers
+a - Advanced racing in a winter landscape
+d - Racing in at night in the dark
+# - Race track selection 1-3 are valid numbers
+```
Here are a few examples:
+```
Command line: Description:
+
$ ./vik1 Run track 1 at daytime in the summer
$ ./vik1 a Run track 1 at daytime in the winter
$ ./vik1 d Run track 1 at night in the summer
$ ./vik1 3 Run track 3 at daytime in the summer
$ ./vik1 d3 Run track 3 at night in the summer
$ ./vik1 ad2 Run track 2 at night in the winter
+```
-Note that the order in which the argument characters are entered is
-important. It is for example not possible to type ./vik1 da. (Well it is
+Note that the order in which the argument characters are entered is
+important. It is for example not possible to type `./vik1 da`. (Well it is
possible, but the result will not be as expected.)
-The space key accelerates the car. Releasing the space key slowly
-reduces the speed. The left and right arrow keys are used to steer the
+The space key accelerates the car. Releasing the space key slowly
+reduces the speed. The left and right arrow keys are used to steer the
car.
### Obfuscation
-The main obfuscation is the fact that the program is extremely compact.
-There are a few things I didn't want to do, e.g. define #define to a
+The main obfuscation is the fact that the program is extremely compact.
+There are a few things I didn't want to do, e.g. define `#define` to a
single letter to save some space, or to remove casts to save some space.
-The program uses a lot of variables. In fact, all letters a-z are used
+The program uses a lot of variables. In fact, all letters a-z are used
and most letters A-Z.
-The constants are chosen very carefully and thy have multiple purposes,
+The constants are chosen very carefully and they have multiple purposes,
e.g. a constant can be both the length of the track and a color.
-Most of the code is kept inside five for loops without body. Each for
-loop does many things. One for loop draws all cars by restarting a
+Most of the code is kept inside five for loops each without a body. Each for
+loop does many things. One for loop draws all cars by restarting a
couple of times. Another draws the road, mountains, and the sun.
-Main is called recursively. The return value and output depends on the
-arguments. main can return the current time, draw lines and of course be
-the entrypoint of the application.
+`main()` is called recursively. The return value and output depends on the
+arguments. `main()` can return the current time, draw lines and of course be
+the entry point of the application.
-The program frequently uses the ? operator mainly to save space but it
+The program frequently uses the `?:` operator mainly to save space but it
makes the program more obscure.
### Compiler warnings
-There are no compiler warnings when compiling with -ansi but there are
-quite many warnings from lclint. Mainly because the program is very
+There are no compiler warnings when compiling with -ansi but there are
+quite many warnings from lclint. Mainly because the program is very
optimized for code size.
### Limitations
The program only compiles and runs on X based systems.
-The program requires a display with 24 bit color depth. It also assumes
-that the byte order of the colors are as on my Linux PC. That is, The
-colors are represented by a 32 bit value where the bytes (from high to
+The program requires a display with 24 bit color depth. It also assumes
+that the byte order of the colors are as on my Linux PC. That is, The
+colors are represented by a 32 bit value where the bytes (from high to
low) are { 0, RED, GREEN, BLUE }.
## Copyright and CC BY-SA 4.0 License: