-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathHACKER
82 lines (73 loc) · 4.16 KB
/
HACKER
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
Hackers Only
------------
You're welcome to hack on any part of Filler, but these are the areas
that I am most interested in seeing advanced.
* Better robot players. I believe it's possible to write a robot player
which can beat almost all humans, even in Java. Note that all robot
players should be tested to ensure that they terminate. I have had
many instances where a robot player was in a position to win but
insisted on choosing the wrong colour and hence the game could not
finish.
* Worse robot players. Bad robot players are needed as cannon fodder for the
good robot players to help the ratings system work. They are also
useful to pit against bad human players.
* Better user interface. My GUI design skills are somewhat lacking,
and someone with some artistic talent could do a nice job I'm sure.
* Support for network play, i.e. a player at the other end of a TCP
connection. It would be cool if the other end of the connection could
be a robot player, and we could do some sort of Turing test :-).
* Support for cyborg players, i.e. human players assisted by the
robot algorithms.
* Better support for human players, so that they could have names other
than 'Human' and they could have different rankings.
* Support for new players, who may not know what the heck is going on
with all these computer players. It would be nice if the program
could automatically choose a computer player to match or challenge
their skill level.
* Better configurability, so maybe you could change the 9 colours,
and the game can remember the x,y location of the window and the
current tournament rules. I would suggest keeping all this info in
a Map and serialising it out to a file. At the very least, the game
needs to be able to run in an alternate colours mode so that
colour-blind people can play it.
* Internationalisation. The code and Java support internationalisation,
and all (hopefully) of the strings used in the game are in the file
resources.properties, so internationalising will hopefully be a
simple matter of producing new versions of the resource file. See the
file INTERNATIONALISATION for more details.
* A Windows installation. Although the code will run perfectly well on Windows,
some Windows users who have Java will not know how to build the jar and run
it, as 'make' doesn't come standard with Windows. It would be good to have
the game packaged as an EXE which will install itself. I have added a windows
target to the Makefile, which will at least make a batch file for Windows.
* Put forward and back buttons on the help panel.
* Make sure that all the right buttons and tabs are disabled. I think
At the moment you can start a tournament while a tournament is
already in progress, and I don't know what will happen if you do that.
* The tournament results are not well presented (e.g. if you are lucky, you
get told who the winner was). It would be nice to have another panel where
the tournament results are presented. (This idea came from Lang Sharpe.)
Coding Rules
------------
If you want your code to get into my code base, you'll need to follow these
rules, because I am very fussy. If I really like your ideas I will code them
myself, but that will take longer.
* Follow the coding style (brackets, spaces, NO TABS). It is Sun's standard,
so it is not too onerous.
* Any strings which appear on the GUI must come from the resource file.
I hope you'll find the source code easy to understand and well
documented. I also hope you'll keep it that way if you add to it, because
if you don't I will, and I won't be happy about that. Please send
changes back to me ([email protected]), and I'll include
the ones I like.
Organisation
------------
The organisation of the source distribution is as follows:
* src - the Java source code.
* res - Java resources. Must go in your CLASSPATH if you are not running from
the jar.
* classes - created by the make command. Must go in your CLASSPATH if you are
not running from the jar.
* windows - the prebuilt Windows distribution.
* other - an assortment of other files which are used in the build process, or
are useful to developers.