Classic Computer Magazine Archive COMPUTE! ISSUE 20 / JANUARY 1982 / PAGE 1813


Dub Scroggin Ft. Walton Beach, FL

"Zap!!" is an exciting and challenging VIC-20 game program that is designed for up to six players and up to five rounds per player. Each player may select from any of five skill levels and may change levels each round, if desired. Using keyboard controls, players maneuver a block around the screen and through a field of randomly placed and color coded graphic figures. The object is to run over and erase as many of these figures as possible in two minutes, but also to avoid running into asterisks and being zapped. After the player block is moved it cannot be stopped, but the direction of movement may be changed. The higher the skill level, the faster the block moves and the more asterisks there are. The number of scoring figures is increased also so that a higher score is possible too.

The figures on the screen count differently toward the score. If a player is "zapped," he retains his score, but his time is over. Players may run off the screen, but may strike a hidden asterisk if they do so. A vertical wraparound feature prevents players from wandering too far off the screen. A variety of colors, graphics, and sound effects add excitement to the program.

As with most computer games, proficiency at Zap! will take some practice and a lot of concentration.

The player block is moved around the screen by the computer PEEKing at the keyboard to determine the value of the last control key pressed. A direction factor is then assigned to the variable DR (steps 590-620). When moving left, DR is -1, right is 1, up is -22 and down is 22. This factor is then added to the position of the block (B) (step 650). The old block is then erased by POKEing it to 32 (blank) and a new one is placed in position (step 570). This all happens so quickly that the illusion of motion is created.

Scoring and zaps are determined by PEEKs at the block's position to see if any other figure is there (steps 670-720). Depending on the figure found at "PEEK (B)", a score is assigned and the loop continues, or if the figure is an asterisk, a "Zap!!" routine is initiated and the round ends.

In each pass through the loop (steps 550-780), several things happen or are checked for. The elapsed time is printed and there is a check to see if the time is up. If so, the loop is terminated and the round ends. A block is POKEd into position B. Steps 580 and 585 provide the vertical wraparound effect. A check is made for direction change input from the keyboard. A tone is sounded based on the current direction of movement. The old position of the block is erased and a new position is calculated. A check is made to see if any figures have been struck. If so, they are either scored or, in the case of an asterisk, the loop is terminated. After a new total score is calculated and displayed, the loop begins again.

Steps 640 and 760 are time delay steps to slow the block's motion and to increase speed as the skill level increases. If a faster or slower movement is desired, these steps may be altered.

A number of REMarks have been included in the program listing as an aid to understanding it, but I recommend that they not be typed in on your computer. This program uses all but about 250 bytes of standard VIC-20 memory and including all the remarks may result in an "out of memory" error.

Good luck and I hope you enjoy the game.