Rename hint.txt and hint.text to README.md
This commit is contained in:
1 parent
77fb0f11a2
commit
851e191519
166 files changed
No files matched your search
@@ -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.
|
||||
Reference in new issue
Block a user