#include "config.h" uint8 site; uint8 bullet = 0; uint8 aim_layer = 1; uint8 plane[2]; uint8 block[16]; static void Shot_One(); static void Shot_One() { if(bullet>15){ bullet=1; return; } if(bitman[site] & block[bullet]) { block[bullet] &= (~bitman[site]);// Eliminate the shot block bullet=1; scores++; // Sound_Tone(1,site+1,5); } else { ++bullet; Sound_Tone(sound_ON,bullet,1); DisPoint(site,bullet); // Iterative generation of ballistics delayus(300); Shot_One(); // Recursive elimination } } static void Block_Down() { uint8 i; for(i=0;i<15;i++) { block[i] = block[i+1]; } block[15] = rand()%256; } static void Key_Control() { int8 k = Get_Kvuale(150); switch (k) { case K_LEFT: if(site < 7) site++; break; case K_RIGHT:if(site > 0) site--; break; case K_OK: Shot_One(); return; break; default: break; } if(!(tms%20)) if(!KEY_OK) Shot_One(); } static void Shot_Game_Init() { uint8 i; Glife=1; site=3; scores=0; bullet=0; speeds = 1000; plane[1] = bitman[site]; // Draw the shape of an airplane plane[0] = plane[1]<<1 | plane[1] | plane[1]>>1; for(i=0;i<16;i++) block[i]=0x00; // Clear data block[15] = rand()%256; // Let's start with one. } static void Shot_GameDisp() { // Copier(DispRAM,block); uint8 i; for(i=0;i<16;i++) { DispRAM[i] = block[i]; } DispRAM[0] |= plane[0]; DispRAM[1] |= plane[1]; MatxDisp(DispRAM,duty); } void Shot_Game() { Shot_Game_Init(); while(Glife) { Key_Control(); plane[1] = bitman[site]; plane[0] = plane[1]<<1 | plane[1] | plane[1]>>1; if(tms > (speeds-scores)) { tms = 0; Block_Down(); if(block[0] | (block[1]&plane[1])) Glife=0; } Shot_GameDisp(); SMG_Display(scores,duty); } }