forked from fraktalsyndrom/AAAH-SNAYKUU
-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
173 lines (142 loc) · 7.66 KB
/
README
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
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
<SNAYKUU>
<An engine/API for programming Snake bots and pitting them against each other>
Copyright (C) <2011> <Arian Jafari, Sixten Hilborn, Erik Thuning>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
To view a copy of the GNU General Public License, see
<http://www.gnu.org/licenses/>.
---------------------------------------------------------------------------
## SNAYKUU THE MANUAL: THIS TIME IT'S PERSONAL
# Version 0.2
# TABLE OF CONTENTS
[1.0] GETTING STARTED
[1.1] Compiling the source
[1.2] Compiling your bots
[1.3] Programming your bot
[2.0] USING THE APPLICATION
[2.1] Starting SNAYKUU
[2.2] The main menu
[2.3] The 'Game settings' tab
[2.4] Replays
[2.5] Developer mode
[3.0] IN- AND POST-GAME
[3.1] The game board
[3.2] The score board
[3.3] The post-game window
[4.0] CREDITS
---------------------------------------------------------------------------
[1.0] GETTING STARTED:
[1.1] Compiling the source
(NOTE - This step is only for those who are interested in modifying
the source code. The program can be run by simply double-clicking
the 'snaykuu.jar' file)
If you have ant installed:
Using your terminal, navigate to the 'snaykuu' folder
and run the command 'ant jar'. This compiles the code
be executed either by double-clicking it or running
and creates an executable jar file, which can then
'ant run'.
[1.2] Compiling your bots
If you don't have ant installed:
Navigate to the directory where your snaykuu.jar is located,
and then run this command:
> javac bot/*.java -cp snaykuu.jar
If you have ant installed:
Using your terminal, navigate to the 'snaykuu' folder
and type 'ant bot'. Your bots are now compiled.
[1.3] Programming your bot
The essence of writing a SNAYKUU bot is simple. Your bot is a java class
implementing the interface Brain, requiring a single method called
getNextMove. This method will be called once each tick of the game, and is
basically where you calculate in which direction you want your snake to
move next. Each tick you are given a GameState object, which is a detailed
representation of the current state of the game, also containing several
useful methods to assist you in the coding process.
Much more detailed information can be found in the API
in the doc/ subfolder.
[2.0] USING THE APPLICATION:
[2.1] Starting SNAYKUU
Start the program by either double-clicking 'snaykuu.jar', navigating to the
snaykuu directory and running 'java -jar snaykuu.jar' in a terminal, or by
running the 'ant run' command if you have ant installed.
[2.2] The main menu
When you first start SNAYKUU, you will see two lists in the middle of the
screen; 'Snakes in game' and 'Available snakes'. 'Available snakes' contains
a list of all the compiled classes implementing the 'Brain' interface. By
double clicking the name of a bot in the 'Available snakes' list, you can
add/remove it to the game. When you want to start the game, press the
'Start' button.
[2.3] The 'Game settings' tab
In the 'Game settings' tab you can manually select which settings you want
to play with. These are your options:
Board width The width of the game board, in squares.
Board height The height of the game board, in squares.
Pixels per square
The size of each square, in pixels.
Fruit to win
The number of fruits each snake has to eat in order to win
the game.
Ticks between fruits
The frequency with which new fruits appear on the game board.
'5' means that a new fruit spawns every five ticks.
Ticks per unit of snayk growth
The frequency with which snakes grow. '5' means that snakes grow
every five ticks.
Thinking time (ms/frame)
The amount of time (in ms) each brain has to decide on its
next move.
Game speed (ms/frame)
The amount of time (in ms) that will elapse between each 'tick'.
Decrease to make the game appear to move faster, and vice versa.
NOTE: It is recommended that this is set to at least thrice the
value of 'Thinking time'.
[2.4] Replays
After a game has been played, you are given the option to save a replay
of the game at hand to be able to view later. If you want to view a saved
replay, simply click Replay tab, click the "Load an old replay and play it!"
button, and use the built in file browser to find your .srp replay file.
Note that replays saved in older versions may not be compatible wth your
current version.
[2.5] Developer mode
In the developer mode, you can run any number of 'simulated' games much
faster than running them individually with graphics. To use dev mode, begin
by selecting the participating snakes in the snake selection screen. Then,
navigate to the 'developer' tab, select the number of games you want to be
simulated, and then click 'Run test games'. The program will freeze for a
while while the simulations are running. When it is done, a menu will pop up
containing statistics and data from the simulations.
[3.0] IN- AND POST-GAME:
[3.1] The game board
This screen is fairly straight-forward. The snakes show up on the screen,
ready to rumble! Fruit objects will occasionally show up on the board, and it
is up to the snakes to reach them and devour them.
[3.2] The score board
On the right hand side of the game board is a live-updated score board of
the current round. Snakes are shown, identified by name and color, together
with the number of fruits they have eaten and the number of turns they
have survived.
[3.3] The post-game window
After a game has finished, a new window displaying the results of the game
will pop up, together with some options. The score board will be nearly
identical to the one that is shown during the game, showing the scores of all
the snakes as well as their placement in the round. Together with this, four
buttons will appear; 'New game', 'Rematch', 'Save replay' and 'Exit'. This is
what they do:
New game Brings you to the original snake selection menu.
Rematch Immediately starts a new round using the same snakes
and game settings.
Save replay Allows you to save a replay of this game. See [2.4].
Exit Exits the application.
[4.0] CREDITS:
Sixten Hilborn Project co-manager, Lead coder, Whiteboard wizard.
Arian Jafari Project co-manager, Lead coder, Documentation dork,
Executive credits producer.
Erik Thuning Coder, Tester, Graphics guru, Affine transformer.
Fredrik Norberg Tester, Master fruit devourer.
Esbjörn Olsson Tester, Internet aficionado, Security ninja.