Unfortunately I cannot claim originality for the concept of this game, which the children have christened "Growworm", but I hope that this new presentation warrants a rebirth of what is a most frustrating game. The objective is simple: to collect (or in "games" talk, eat) all the mushrooms throughout the passages without crossing over your own tail. Note however, that vour tail is growing longer by the minute. Further complexity is added to the subsequent levels (of which there are basically five) by slight changes to the tunnel arrangement. At level four we also have a lighting problem and the tunnels are seen only in brief flashes. Finally at level 5 there is a simple "bonus" round. If by some chance (or by changing certain paramet-ors within the program) you do make it past level five, then the game returns to the start, but at a more hectic speed. The program is self documented, but the following notes should help with understanding some of the features of the program, and aid those people with the uncontrollable urge to make modifications: - 180 - 240 : determine the direction of movement based on the action of the joystick. Alternate keys could be programmed here using the INKEY(x) command. The move-men t at the start of each screen is controlled by line 180.
- 270 - 330 .: using the command TEST(x,y) to report the INK that is active at that point. The INKs are used as follows
ink 0 = background ink 1 = body of worm ink 2 = head of worm, colour of mushrooms ink 3 a walls of passages the results of the collision test force the program to alternate points.
- 360-410 : to provide continued action (after the start), the program tests the possibility of moving in any of the four directions. Due to the order of the tests the "auto-movement" attempts to move the worm to the left hand top comer. A re-arrangement of the first four lines would make movement to an alternate corner.
- 440 - 530 : worm drawing routine. Line 450 controls the speed of drawing and therefore the speed of the game.
- 560 - 820 : routines related to erasing, losing a life and eating a mushroom. Each routine has a small "sound" associated with it
- 850 -1130 : title screen. Note that the sarecn is kept invisible by making the writing ink the same colour as the screen until all details are complete. There is a small machine language program (lines 850 - 870) that stores a complete screen (CALL 35012). This routine could be useful in other applications.
- 1160-1370 : game instructions
- 1400 -1470 : level of difficulty. I have used the range 1 to 5, but there is no reason why this could not be increased to 9. Note that the INKEY command is used here which means that only a single digit can be used. Don't forget to change the test parameter in line 1470 if the range is altered.
- 1540 -1640 : graphics (UDG) for the game
Symbol 42 = walls of passage Symbol 180 = head for up direction Symbol 181 = head for down direction Symbol 182 = head for left direction Symbol 183 = head for right direction Symbol 201 = tail of worm Symbol 229 = mushroom Words of caution - the UDG for the walls must have the bottommost left hand point in colour since this is the point tested. The centre of the UDG for the body of the worm must also be in colour for the same reason. - 1670-1750 : screen layout
- 1780 - 2360 : basic labyrinth layout, with modifications for the higher games levels. The positions of the mushrooms are fixed for the first four levels (although the actual numbers appearing do vary) because of very strong arguments from my children. They argued that if the game was supposed to be competitive, then each competitor should have the opportunity of facing the same layout. Apart from that there is no reason why the routine used for the random positioning in the bonus level could not be used.
- 2390 - 2410 : "sound" for extra lives routine
- 2440 - 2530 : bonus for completing a screen, and set up the parameters for the next screen
- 2560 - 2600 : game over routine, which blacks out the screen and CALLs the stored title screen to restart.
- 2630 - 2770 : where I got back at the children with a completely different screen layout and random placing of the mushrooms.
The REMark lines can be omitted when typing in this program to save finger-energy. For those people that want infinite lives, just change the value of the constant "lives" in line 100. I can't offer you infinite lives but you can start with up to 32000. That should see you through a few screens.The program was written on and for our Ami, which is 464 . However, since there are no machine specific calls used I believe that there are no complications in using it on Ami's bigger CPC brothers. TAU |