-
Notifications
You must be signed in to change notification settings - Fork 0
/
README
178 lines (149 loc) · 8.16 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
174
175
176
177
ABOUT:
==
This game is still being developed and is not a functional program (yet).
Please give feedback and advise if you feel the need to do so at: beast _ a t _ snerulab _ d o t _ nl
==
While teaching myself Python I wanted to do it the fun way, by recreating the game BEAST that I played for hours and hours when I was young.
Beast is an ASCII game written and developed by Dan Baker, Alan Brown, Mark Hamilton and Derrick Shadel in 1984.
TODO:
* Implement Astar algorithm to give the beasts a non-dumb AI
* Implement multi-threading
* Implement levels with their characteristics
* Implement menu
* Implement player movement with numpad and arrow keys
* Implement multiplayer (controlled by W-A-S-D)
DOCUMENTATION:
http://en.wikipedia.org/wiki/Beast_%28video_game%29
http://peteg.org/beasts/beasts.html
https://www.youtube.com/watch?v=gffS40Djmxc
http://dosbox.svatopluk.com/B/Beast/
http://theodor.lauppert.ws/games/beast.htm
NOTES:
* calculate unicode character:
>>> unichr(ord(u'¤'))
u'\xa4'
ORIGINAL MANUAL:
B E A S T
The object is to eliminate the invading BEASTS. This is accomplished
by squashing the beasts between two blocks. You can "push" the lighter blocks
around by moving against/into them. If you move against a long row of
blocks, the entire wall (row of blocks) will be pushed (moved). If you push
a block against a Beast, and there is a block behind the Beast, then the Beast
is "squashed", and destroyed. If a block isn't behind a Beast when you push
the block against it, it isn't squashed, and stops you from pushing the
blocks.
At higher levels of play, different obstacles will face you. A
detailed description of these obstacles (or options) and what they do/cause
are discussed later.
To start play, just type: BEAST. If you know what level of play
you would like to start at, type: BEAST L. Where "L" can be any letter.
The default letter of play (When no letter is specified) is "E". This is
a "Novice" level of play. The following is a brief description of the
different levels of playing:
A,B,C: Are "EASY" levels. For people not too familiar with arcade
style games, or those not at ease using the cursor keys.
D,E,F,G: Are "NOVICE" levels. For beginning players of the game.
H,I,J,K: Are "HARD" levels. These should be played after completing
or winning one of the novice levels. The hard levels introduce
new and different beasts, and a longer game.
L,M,N,O: Are titled the "UNKNOWN" levels. These are levels which
can be defined by the player. And because of this, the actual
skill level is not known. The instructions on how to use and
define these levels is described later.
P,Q,R,S: Are "ADVANCED" levels. More and more beasts of different
varieties will be seen at these levels. Try these after becoming
fairly good at levels I,J, or K. The beasts also become smarter,
so watch out!
T,U,V,W: Are "EXPERT" levels. Beasts are more numerous, and
quicker. The number of levels to play before winning is also
increased greatly.
X,Y,Z: Are "PRO" levels. These are also commonly known as the
levels for 'crazy' people. If you win at any of these levels,
you are then a true "MASTER OF THE BEASTS".
B E A S T O P T I O N ' S
OPTION EXPLANATION
------------------------------------------------------------------------------
Pull Blocks While the space bar is held down, the block behind
you will be PULLED along behind you. (Handy for getting
blocks off the edges of the playing field.)
Speed Game Up As time goes by, the game will speed up, and the
Beasts will also speed up. (Watch out, the longer you play,
the faster the Beasts move!)
Electric Blocks This makes all SOLID blocks electrified. A normal
block which is pushed into an electric block is turned into
dust, and eliminated. If you touch an electric block, you
are also turned into dust (Killed) - so be careful!
NOTE: The outer walls will not kill you if you ran into it.
Eggs Eggs are dormant for awhile, then they hatch into
a crazy type of Beast. This Beast can push blocks just like
you can. If you are between two blocks, it could squash
you! NOTE: It can also squash other Beasts, or push blocks
into Electric blocks.
B E A S T H E L P
------------------------------------------------------------------------------
The following is a brief description of the keys you can use in BEAST:
Keys before game begins: (After the game has been executed)
<any letter> = Select level letter and show options for that level.
"1" = Select single player game (Only RIGHT player)
"2" = Select dual player game.
<F1> = Show current HIGH Scores
<F1> with <Del> = Reset High Scores in the high score table.
<F2> = Set Speed of game.
<F7> = Exit game
<F8> = IBM 3270 ON/OFF: Uses different KeyBoard routine.
<F9> = Sound ON/OFF
Keys during play: (While the beasts are attacking you)
<arrow keys> = Move the player (Auto repeat until key is released)
left arrow or numeric 4: Move player left
down arrow or numeric 2: Move player down
'End' key or numeric 1: Move player diagonal left/down
NOTE: holding two keys down simultaneously causes diagonal moving
IE: left arrow and up arrow held would cause up/left diagonal.
<Space Bar> = Pull block while held down (not in 3270 mode).
<ESC> = Escape ... Puts you randomly on the board and:
will also subtract 10 points from your score. (If you have 10 points)
<NUM_LOCK> = Pause game ON/OFF. Stop game until hit again.
<F7> = Abort game, and allow new level of play to be selected.
<F9> = Sound ON/OFF
<Ctrl-F1> = Go to shell.
Ctrl-BREAK = Abort game, Clear screen, and go to DOS/shell.
Keys during Level Definition: (Defining level L,M,N, or O)
<up arrow> = Move cursor to option above current option.
<Y> = Set current option to YES. (If it is a Yes/No option)
<N> = Set current option to No. (If it is a Yes/No option)
<number> = Set option to number entered. Some options only allow
a single number, others allow 2 digit numbers. If the number is
invalid, then it will be ignored. (IE. If you type in 99 for the
initials number of beasts, it will be ignored.)
<ESC> = Leave option setting/defining mode.
<other key> = Move cursor to next option below. (If the cursor is at
at the bottom, it will wrap to the top option.)
U N K N O W N L E V E L O P T I O N S
-------------------------------------------------------------------------------
Options which can be defined, and what they can be defined to:
INITIAL BEASTS: How many beasts are on the board when the game starts.
SUPER BEAST RATIO: The ratio of Super beasts to normal beasts. This
can be set to 0,1,2,3, or 4 where 0=NONE, 1=1 out of 8, 2=1 out of 4,
3=1 out of 2, and 4=ALL. Selecting 0 would mean that NO super beasts
would ever be in this level. Selecting 2 would mean to have every
fourth beast be a super beast, or 1/4 of all the beasts would be
super beasts.
EGGS: How many eggs to start of this game with. Legal
numbers are 0 to 20. If 0 is selected, eggs will never appear!
Any number above 0 will cause eggs to start, and multiply.
PULL BLOCKS: This is a YES/NO option. YES means that when the
space bar is held down, the player will pull the block which is behind
him. NO means that the player can't pull blocks (Which is harder).
AUTO SPEED-UP: This is a YES/NO option. YES means that as time goes
by, the game will speed up, and the beasts speed will also speed up.
NO means that the games speed will stay fairly constant.
EXPLOSIVE BLOCKS: This is a YES/NO option. YES means that all solid
blocks are explosive, and will turn anything touching them to dust.
NO means that solid blocks are just solid. NOTE: At higher levels
of play, it helps to be able to "dust" a few normal blocks against
an explosive block when they get in your way.
WINNING LEVEL: The last numeric level to be completed before you
win the game. legal entries are 1 to 99.
HATCHING RATE: The average time it takes an egg to hatch. Legal
numbers are 0 to 99. If you enter 30, it takes about 40-50 second
for the eggs to hatch, entering a 0 is almost immediate hatching.