Electron User 3.02 ================== Defuse! ------- F. James McPherson has assigned you to a very dangerous task... In the game of DEFUSE you are in a terrorist house in which a bomb has been hidden inside a bag. Unfortunately, there are quite a few bags left inside the house - and your job is to locate the one with the bomb inside. To check for a bomb all you have to do is run over the bag with your metal-detector and it will tell you if the bomb is contained within the bag. However, the terrorists have positioned a number of booby-traps in the house. Luckily for you these have been located and marked with flags, but if you hit it will explode. Added to your problems is the fact that you only have twenty seconds in which to find the bomb before it explodes. An explanation of how to play the game and the controls used are also included within the program. The controls are: Z - Left, X - Right, * - Up, ? - Down Procedures Setup Chooses the colours and prints the writing. Uses the data from lines 1370-1390 and PROCroom to draw the house. Prints the flags and bags randomly. Chooses the random position of the bomb. move The main procedure. Moves the character around the screen according to the keyboard entries, and checks if you have hit a flag or bag. room() Draws a room with top left and bottom right coordinates at XR1%, YR1%, XR2% and YR2% end Called once the game is over. Prints the ending lines and asks if you want another game. doneit Called once the bomb is found, pauses and makes sound effects, then moves on to the next screen. intro Uses DATA from lines 2190-2270 and prints it in the centre of a specified line in a random colour. d Asks you to "Press any key" and clears the screen. Variables H% Hiscores S% Score G% Number of bags X% & Y% Coordinates of player J% & K% Text coordinates of player D% & E% Coordinates of player before it moved RX% & RY% Randomly-chosen coordinates for the bag and the flags XB% & YB% Coordinates of the bag with the bomb in it L% Colour of the point the player has just moved toKARATE WARRIORWin your black belt in this gruelling test of Karate skill by Matthew Holroyd As a pupil at the temple of Tanhii you have been trained in Taijutsu, the Ninja's art of unarmed combat. Now comes your final test. Before leaving the temple to become a Warrior of the Night you must fight against another opponent who wishes to qualify like you. Both of you are fantastic fighters, with hands and feet of steel. Your opponent eyes you, then circle to the left. You step to the right, following the curve of the arena. He stops and leaps forward, attempting a Tettsui-uchi, but you are quick and adopting the Kokutsu Dachi stance you deliver a block with your right forearm. Then you whirl round and float into the air. Your feet clasp around his face and you spin, sending him flying with a Teeth of Tiger throw. He lies dazed on the floor. You bow and then leave the arena. You have got your black belt. The aim of the game is to become a black belt before your opponent does. This is done by winning each fall. Both of you start off with white belts and must each win five falls to reach blacks. Each player has four moves. These are: Yoko Geri Chudan - Side kick to the ribs or chest. Kansetsu-Geri - Knife kick to the opponent's ankles. Kakato-Geri - Jumping heel hick to the jaw. Somersault - Back flip used in retreat. When striking with a Koko Geri Chudan, the player will move forward. This kick is used to advance towards your opponent and is also the most common kick used. The Kansetsu-Geri is a very useful and effective kick as it is used to topple an unaware opponent. When kicks are being delivered, the mvoe can be used to duck or dodge a strike and also to swipe away the foundation leg. The Kakato-Geri is a spectacular flying kick to the jaw. This kick is very advanced and also safe as you cannot be struck when you are using this move. If can be blocked using a Yoko Geri Chudan or can be dodged using a Kansetsu-Geri. When you feel uneasy or open to attack a somersault is a very useful move. It is the safest move as you cannot be touched while you are flying through the air, but it allows your opponent to advance. You cannot always somersault - only when you are far enough away from the edge of the arena. The game is quite complicated in the way it prints out the men's different positions. Because the characters are so large and there are so many positions we define the chracters for each new position just before we print them. This is because each man is made up of twelve characters and as there are twelve positions of each man we would soon run out of spare character spaces if we tried to define all these at the beginning of the program. Only the characters for the positions of the man facing right are defined. Then, in the program, we use a small machine code routine which reverses the characters to produce a man facing left. Using this technique we save half the work when defining, and half the work when typing in. Game Controls: Player 1   Player 2 CTRL Somersault RETURN A High kick ] S Side kick : X Sweeping kick / Q/W - Sound Off/On, F/R - Freeze/Restart, I - Instructions Variables belt1% Player 1's belt belt2% Player 2's belt X% Player 1's x coordinate N% Player 2's x coordinate B% Set to 1 if striking, 0 if not C% Set to 1 if striking, 0 if not E% The code for player 1's move R% The code for player 2's move I% Controls the animation of player 1's moves J% Controls the animation of player 2's moves man$ Player 1's man man2$ Player 2's man M%,O% Used in PROCcheck to compare to I% and J%  Procedures caller Calls the machine code routine which reverses the characters delay() Makes a delay kick1,2 Controls the normal kicks of the two players hikick1,2 Controls the high kicks of the two players sweep1,2 Controls the sweeping moves of the two players som1,2 Takes care of the somersault init Defines the variables stancekickchars1,2hikchars1,2sweepchars1,2somchars1,2 Define the characters for the moves reverse Machine code routine used to reverse characters screen Draws the screen check Checks when the players are striking and acts accordingly deadchars1,2 Characters for the dying men man1dead Displays player 1 dying man2dead Displays player 2 dying nextbelt Works out the next belt for each player start Controls the starting of each fall win Prints the winning screen and draws the winner bow Characters for the bowing men inst Instructions freeze Freeze facilityPAINT ROLLER Get stuck in and paint the town blue in this game of fun from Carl Dunkley Fancy a spot of decorating? Then PAINT ROLLER is just the game for you. Splash it all over and never mind the mess! The object of the game is to steer a speeding roller round the screen, painting it a nice deep blue. Sounds easy doesn't it? Don't be fooled - it requires skill and concentration. The screen is littered with paintbots and rocks. Run over the paintpots but be careful not to hit the rocks - the result is disastrous. Re-painting an area that's already been done is a waste of precious paint, so plan your route ahead carefully. If you're having difficulty and the game is too fast, insert a delay loop of the form:    FORdelay=1TO50:NEXT after the REPEAT in line 80. Procedures play Runs frame find Finds an empty screen location init Assembles machine code and defines graphics characters screen Sets up screen dead Loses a life over Game over bonus Obtains a bonus for completing a screen reset Resets variables and prints instructions   Main Variables H% High score S% Current score F% Frame counter L% Number of lives left X% X coordinate of roller Y% Y coordinate of roller AM Area to be painted TRAIN We seem to be in a mechanical frame of mind nowadays. The June issue had Dave Robinson's Engine, showing us the ins and outs of internal combustion. Now we have Paul Heath's TRAIN, a delightful little piece of animated action. Program Explanation 50-100 Set up the screen background and draw the rail 110-250 Make use of PROCcircle to draw the engine's wheels 260-340 Use PROCSPOKE and PROCSPOKE2 to draw the spokes 350-470 Draw the sleepers 480-660 Produce the train's body 670-700 Smoke clouds 710-970 Produce the animation techniques by changing the colours on the screen 980-1200 Define the procedures Procedures PROCcircle(X,Y,R) Draws a solid circle with centre coordinates X,Y with radius R PROCSPOKE & PROCSPOKE2 Draw the spokes. Two procedures are used to offset the spokes so that when the colour changes take place the wheels appear to revolve. PROCWAIT Waits and makes the noises