The Game of Daleks

How to play Daleks.

The game comes from the BBC Dr. Who series. Dr Who, the zany hero, explores the galaxy in his Tardis, a time machine that looks like a British "call box", a phone booth. In one of his travels, he comes in contact with the dreaded Daleks, half human, half robot foes who's cries of "Exterminate him! Exterminate him!" follow Dr. Who on a mad chase across their planet. Fortunately, Dr. Who remembered to take two tools with him: his Sonic Screwdriver and his Teleporter.

The game consists of:

  1. Board: A grid for game play
  2. Dr Who: A white circle
  3. Daleks: Yellow squares
  4. Wrecks: Black triangles
  5. Status: Report of score and current status.
  6. Controls: Four buttons and a menu for controlling the game

Game Rules

Dr. Who can move one space in any direction, "King moves", by clicking on the spot. The legal moves are highlighted with black dots. He can also move in place, by clicking directly on himself.

When Dr. Who moves, the Daleks "chase" him by moving one space in the direction that gets them closest to Dr. Who. Daleks are not too bright, however, and in their zeal to catch Dr. Who, often run into each other, creating wrecks, shown by black triangles. They also can wreck themselves by running onto other wrecks. In either case the Dalek is removed.

The key to the game, therefore, is for Dr. Who to move so as to avoid getting captured, and to eliminate Daleks by having them get into wrecks. The two boards above show a before and after scene where Dr. Who moves to the North-West corner. Two of the persuing Daleks wreck themselves. You can also see the movement of the other Daleks as they close in on the happless Dr.

Dr. Who has two tools for combating his fearful enemies. The first is his Sonic Screwdriver which, when used via the Zap button, eliminates all immediately adjacent Daleks, and advances all the rest just as if Dr. Who moved in place. The second is his Teleporter, the Jump button, which will let him jump to a randomly chosen spot on the board, again immediately followed by a move in place. This is clearly dangerous, due to the possibility of landing next to a Dalek.

The game proceeds until Dr. Who is captured, or no Daleks remain. If Dr. Who creates several well placed wrecks, he can end the board by the Finish button. This continuously has Dr. Who move in place until he is captured or all the Daleks are eliminiated. Each Daleck eliminated scores double during the Finish.

A new game is started by the New button. If Dr. Who just won, the next board is presented, which will have a greater population of initial Daleks. Note that the Zaps accumulate; if you do not use one on the previous board, you'll now have two "charges". The Jumps do not accumulate; you'll restart with 10. You'll likely not run out of both Zaps and Jumps, but if you do, you'll have one final Jump or Zap which will immediately be followed by Finish. A dramatic last stand!

The Status box shows the score (number of Daleks wrecked) with the number of Daleks left on the board. This is followed by which board in the game you are on, with the percent of the board populated by Daleks at the start of the board. Finally, the battery indicators for the Teleporter and Sonic Screwdriver showing how many times remaining they can be used on this board.

The menu offers slightly different versions of the game. The two variations offer Dr. Who more moves, but fewer "escapes"; fewer Jumps and Zaps. The population of Daleks also is greater.

Game Internals

Here is the source If you have downloaded the JDK from the Java home page , then you can simply place the source file in a directory and compile it. It also needs the audio files in the audio directory. You are welcome to the entire system as a compressed tar file.

The Applet parameters control almost all the text visible in the game, thus forms the basis for internationalized versions. Only the Status string is not parameterized, and I'll do that one of these days. The Applet tag is:

<applet code="Daleks.class" width=400 height=400>
    <param name=buttons value="New|Jump|Zap|Finish">
    <param name=grid value="15 3">
    <param name=games value="Classic:0 0, 1 0, 1 1|-1 10|5 1 15:
        Diamond:0 0, 1 0, 1 1, 2 0|-2 -2|7 3 22:
        Diagonal:0 0, 1 0, 1 1, 2 2|-1 4|7 3 22">

The "buttons" parameter controls the names of the three buttons. The "grid" parameter controls the size of the board squares and the anamation step used by the Daleks. Use of "20 2", for example, would give you a larger grid, with very smooth anamation by the Daleks. This is useful for learning the game because you can watch the pieces move more easily. The "games" parameter supplies the entries in the menu. Each entry consists of a game name and a set of three |-separated parameters. The first is the set of moves Dr. Who can make. The second is the initial Zap and Jump count, with negative meaning they accumulate across boards. The third is the Dalek population control, initial, increment, maximum. Each game set is :-separated. Look at the "Classic" game and see if you can figure out how these control the default game. And feel free to download and modify the game all you'd like. Let me know of any changes you make.