Peter's version

Fork of ScoreCount by George Cochrane

Committer:
gcme93
Date:
Fri May 03 12:07:30 2013 +0000
Revision:
6:e269f6c282bc
Parent:
5:a50e02fc49cd
the final copy

Who changed what in which revision?

UserRevisionLine numberNew contents of line
gcme93 0:c82f950266fc 1 #include "mbed.h"
gcme93 0:c82f950266fc 2 #include "TSISensor.h"
gcme93 0:c82f950266fc 3 #include "TextLCD.h"
gcme93 3:8e42915e7375 4 #include "process_signal.h"
gcme93 4:7cec137649a0 5 #include "reciever.h"
gcme93 6:e269f6c282bc 6 #include "transmitter.h"
gcme93 0:c82f950266fc 7
gcme93 3:8e42915e7375 8
gcme93 2:289c6ccc4e86 9 //RGB LED SETUP
gcme93 2:289c6ccc4e86 10 DigitalOut Red(PTC6);
gcme93 2:289c6ccc4e86 11 DigitalOut Blue(PTC10);
gcme93 2:289c6ccc4e86 12 DigitalOut Green(PTC11);
gcme93 0:c82f950266fc 13
gcme93 6:e269f6c282bc 14 Serial pc(USBTX,USBRX);
gcme93 6:e269f6c282bc 15
gcme93 2:289c6ccc4e86 16 //LCD SCREEN SETUP
gcme93 0:c82f950266fc 17 TextLCD lcd(PTD7, PTD6, PTA17, PTA16, PTC17, PTC16); // rs, e, d4-d7
gcme93 0:c82f950266fc 18
gcme93 3:8e42915e7375 19 //INITIAL PARAMETERS AND GLOBAL VARIABLES
gcme93 3:8e42915e7375 20 int hit=0;
gcme93 3:8e42915e7375 21 int lives=10; //How many lives to start game with
gcme93 3:8e42915e7375 22 unsigned char data[4];
gcme93 3:8e42915e7375 23 unsigned char Ah=0;
gcme93 3:8e42915e7375 24 unsigned char Bh=0;
gcme93 3:8e42915e7375 25 unsigned char Ch=0;
gcme93 3:8e42915e7375 26 unsigned char Dh=0;
gcme93 3:8e42915e7375 27 char Player='A';
gcme93 0:c82f950266fc 28
gcme93 3:8e42915e7375 29 //BEGIN!
gcme93 0:c82f950266fc 30
gcme93 0:c82f950266fc 31 int main()
gcme93 2:289c6ccc4e86 32 {
gcme93 2:289c6ccc4e86 33 while(1)
gcme93 5:a50e02fc49cd 34 {
gcme93 5:a50e02fc49cd 35 reset_array(); //At start of new game reset hits from players to 0
gcme93 2:289c6ccc4e86 36
gcme93 2:289c6ccc4e86 37 while (lives>=0)
gcme93 0:c82f950266fc 38 {
gcme93 5:a50e02fc49cd 39 Blue=1; //Blue light always on when playing
gcme93 5:a50e02fc49cd 40 Red=0;
gcme93 3:8e42915e7375 41 Green=0;
gcme93 0:c82f950266fc 42
gcme93 2:289c6ccc4e86 43 if (lives==0)
gcme93 2:289c6ccc4e86 44 {
gcme93 5:a50e02fc49cd 45 Green=1; //Turquoise if no lives remain (effectively last life left)
gcme93 2:289c6ccc4e86 46 }
gcme93 2:289c6ccc4e86 47
gcme93 5:a50e02fc49cd 48
gcme93 3:8e42915e7375 49 lcd.cls();
gcme93 3:8e42915e7375 50
gcme93 0:c82f950266fc 51 lcd.locate(0,0);
gcme93 5:a50e02fc49cd 52 lcd.printf("Player %c \n", Player); //Print which player you are
gcme93 3:8e42915e7375 53
gcme93 3:8e42915e7375 54 lcd.locate(0,1);
gcme93 5:a50e02fc49cd 55 lcd.printf("Lives left: %d \n", lives); //Print how many lives are left
gcme93 3:8e42915e7375 56
gcme93 0:c82f950266fc 57
gcme93 3:8e42915e7375 58 //Have you been hit?
gcme93 3:8e42915e7375 59
gcme93 5:a50e02fc49cd 60 int signal;
gcme93 4:7cec137649a0 61 signal=Interrogate();
gcme93 3:8e42915e7375 62 hit= process_signal(signal);
gcme93 0:c82f950266fc 63
gcme93 6:e269f6c282bc 64
gcme93 0:c82f950266fc 65 lives--;
gcme93 0:c82f950266fc 66
gcme93 2:289c6ccc4e86 67 if(lives<0)
gcme93 2:289c6ccc4e86 68 {
gcme93 2:289c6ccc4e86 69 goto end; //Skip to the end (avoids read out of -1 lives)
gcme93 2:289c6ccc4e86 70 }
gcme93 2:289c6ccc4e86 71
gcme93 2:289c6ccc4e86 72 //Update lives on LCD
gcme93 3:8e42915e7375 73
gcme93 3:8e42915e7375 74 lcd.locate(0,1);
gcme93 3:8e42915e7375 75 lcd.printf("You've been hit!");
gcme93 0:c82f950266fc 76
gcme93 2:289c6ccc4e86 77 //Flash to register hit
gcme93 5:a50e02fc49cd 78 unsigned char i;
gcme93 5:a50e02fc49cd 79 for(i=0;i<4;i++) //INCREASE i TO EXTEND TIME THAT GUN IS DISABLED!
gcme93 1:d41b5b18175b 80 {
gcme93 2:289c6ccc4e86 81 Blue=0;
gcme93 2:289c6ccc4e86 82 Red=1;
gcme93 1:d41b5b18175b 83 wait(0.2);
gcme93 2:289c6ccc4e86 84 Red=0;
gcme93 2:289c6ccc4e86 85 Blue=1;
gcme93 3:8e42915e7375 86 wait(0.2);
gcme93 1:d41b5b18175b 87 }
gcme93 6:e269f6c282bc 88
gcme93 0:c82f950266fc 89 }
gcme93 5:a50e02fc49cd 90
gcme93 2:289c6ccc4e86 91 end:
gcme93 1:d41b5b18175b 92
gcme93 2:289c6ccc4e86 93 Blue=0;
gcme93 4:7cec137649a0 94 Green=0;
gcme93 0:c82f950266fc 95 lcd.cls();
gcme93 0:c82f950266fc 96 lcd.locate(0,0);
gcme93 0:c82f950266fc 97 lcd.printf(" - GAME OVER - ...you suck");
gcme93 0:c82f950266fc 98
gcme93 1:d41b5b18175b 99
gcme93 1:d41b5b18175b 100 unsigned char i;
gcme93 5:a50e02fc49cd 101 for(i=0;i<50;i++) //Flashing to indicate game over - INCREASE i FOR LONGER BREAK BEFORE RESET
gcme93 1:d41b5b18175b 102 {
gcme93 2:289c6ccc4e86 103 Red=1;
gcme93 1:d41b5b18175b 104 wait(0.05);
gcme93 2:289c6ccc4e86 105 Red=0;
gcme93 2:289c6ccc4e86 106 wait(0.05);
gcme93 1:d41b5b18175b 107 }
gcme93 2:289c6ccc4e86 108
gcme93 2:289c6ccc4e86 109 //Pretty green light and resetting
gcme93 2:289c6ccc4e86 110 Green=1;
gcme93 2:289c6ccc4e86 111 lives= 10;
gcme93 2:289c6ccc4e86 112 wait(2);
gcme93 2:289c6ccc4e86 113 Green=0;
gcme93 2:289c6ccc4e86 114 lcd.cls();
gcme93 0:c82f950266fc 115 }
gcme93 0:c82f950266fc 116 }