Rename hint.txt and hint.text to README.md

This commit is contained in:
Cody Boone Ferguson committed 2023-02-08 05:08:28 -08:00
1 parent 77fb0f11a2
commit 851e191519
166 files changed

No files matched your search

+103
View File
@@ -0,0 +1,103 @@
# Best Game
Raphael Meyer
US
## Judges' Comments:
### To build:
make meyer
### To run:
./meyer
For your first input try:
a 0 1
This entry turns a newspaper solitare puzzle into a competition
with the computer to be the last one moving. The object of this
source code is to determine the object of this source code! :-)
## Selected Author's Comments:
I wanted submit a fully object-oriented entry to show that
object-orientated code:
1. is ridiculously bloated
2. is unreadable
3. isn't WYWIWID anymore
But I just totally failed. No, I didn't fail in showing any of
the points above. Before I even had the chance to prove any of
these claims, (1) already brought me to my knees. The code got
so much bloated up, that I missed the size limit by a few hundred
bytes. Therefore, I broke the only rule in this contest, I think
you shouldn't break in any case: Rule Nr 2, The size of ...
The degree of claim (2) actually depends on the compiler. As I
_manualy_ compiled it from [a generic object-oriented programming
language] to C, it didn't just end up unreadable, but awfully
messed up, i.e. obfuscated.
As it is already (pre)compiled to C, you could also call it an object-
disoriented progam.
Comparing this progam to a potential object-oriented implementation,
it is obvious, that object-oriented code isn't WYWIWID (what
you write is what it does). It may be tempting to think that
Object o;
might do something similar as
struct not_an_object o;
But this program reveals that it doesn't. Even worse, this program only
reveals the tip of the iceberg, what kind of black magic is involved in
a simple declaration of an object.
A few things you can explore about object-orientation in this program
include:
- constructors (invoked by the new operator)
- new operators (every class gets its own new operator at compile time)
- virtual method tables
(all the virtual method tables have been combined to a single vtable)
- runtime method binding
- inheritance and polymorphism
It is left as an exercise to the reader to find a corresponding
implementation in a popular object-oriented programming language.
### Starting the game
./meyer [SEED]
### Gameplay
It is a sudoku based game. The goal of the game is to be able
to do the last valid 'move'.
On your turn you have to set a free cell to a value between 1 to 9 without breaking the following rule:
any number must be unique in its
1. row
2. column
3. 3x3 block.
Expected input for your move:
row column number
where
row: [a-i]
column: [0-8]
number: [1-9].
The game can be aborted with 'q'.
The one who can do the last move wins the game.