Dependencies:   4DGL-uLCD-SE Motor SparkfunAnalogJoystick mbed

Files at this revision

API Documentation at this revision

Comitter:
rpgjake
Date:
Tue Mar 14 22:37:14 2017 +0000
Commit message:
fire mbed ece 4180

Changed in this revision

4DGL-uLCD-SE.lib Show annotated file Show diff for this revision Revisions of this file
FEmain.h Show annotated file Show diff for this revision Revisions of this file
Motor.lib Show annotated file Show diff for this revision Revisions of this file
SparkfunAnalogJoystick.lib Show annotated file Show diff for this revision Revisions of this file
main.cpp Show annotated file Show diff for this revision Revisions of this file
mbed.bld Show annotated file Show diff for this revision Revisions of this file
diff -r 000000000000 -r b7a07b6cf5d0 4DGL-uLCD-SE.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/4DGL-uLCD-SE.lib	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,1 @@
+http://developer.mbed.org/users/sparkfun/code/4DGL-uLCD-SE/#e39a44de229a
diff -r 000000000000 -r b7a07b6cf5d0 FEmain.h
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/FEmain.h	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,82 @@
+#define Mapx 0x003B
+#define Mapy 0x5001
+enum attackType_t {
+    sword,
+    spear,
+    ax,
+    staff,
+    claws,
+    fangs,
+    magic};
+    
+    
+typedef struct jobs{
+        char v;
+        int x;
+        int y;
+        int movement;
+        int rng;
+        attackType_t attack;
+        int damage;
+        int defence;
+        int res;
+        int maxHealth;}job_t;
+
+job_t Lord;
+job_t Pirate;
+job_t Armor;
+job_t Cleric;
+job_t Beast;
+
+
+void init_jobs(void){
+    Lord.x = 0x003B;
+    Lord.y = 0x5066;
+    Lord.movement = 3;
+    Lord.rng = 1;
+    Lord.attack = sword;
+    Lord.damage = 10;
+    Lord.defence = 3;
+    Lord.maxHealth = 20;
+
+    Pirate.x = 0x003B;
+    Pirate.y = 0x5068;
+    Pirate.movement = 3;
+    Pirate.rng = 1;
+    Pirate.attack = ax;
+    Pirate.damage = 10;
+    Pirate.defence = 3;
+    Pirate.maxHealth = 20;
+
+    Armor.x = 0x003B;
+    Armor.y = 0x506A;
+    Armor.movement = 2;
+    Armor.rng = 1;
+    Armor.attack = spear;
+    Armor.damage = 5;
+    Armor.defence = 4;
+    Armor.maxHealth = 30;
+
+    Cleric.x = 0x003B;
+    Cleric.y = 0x506E;
+    Cleric.movement = 3;
+    Cleric.rng = 1;
+    Cleric.attack = staff;
+    Cleric.damage = 4;
+    Cleric.defence = 3;
+    Cleric.maxHealth = 10;
+    
+    
+    Beast.x = 0x003B;
+    Beast.y = 0x5070;
+    Beast.movement = 3;
+    Beast.rng = 1;
+    Beast.attack = claws;
+    Beast.damage = 5;
+    Beast.defence = 2;
+    Beast.maxHealth = 15;
+    return;
+    }
+
+
+
diff -r 000000000000 -r b7a07b6cf5d0 Motor.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Motor.lib	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/users/simon/code/Motor/#f265e441bcd9
diff -r 000000000000 -r b7a07b6cf5d0 SparkfunAnalogJoystick.lib
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/SparkfunAnalogJoystick.lib	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,1 @@
+https://developer.mbed.org/teams/a/code/SparkfunAnalogJoystick/#2b40241a7675
diff -r 000000000000 -r b7a07b6cf5d0 main.cpp
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,620 @@
+#include "mbed.h"
+#include "SparkfunAnalogJoystick.h"
+#include "uLCD_4DGL.h"
+#include "FEmain.h"
+#define MapSecA 123
+#define MapSecB 123
+
+#include "Motor.h"
+
+Motor m(p21, p24, p25); // pwm, fwd, rev
+
+#define FORTRESS 0
+#define HOUSE 1
+#define KEEP 2
+#define GRASS 3
+#define TREES 4
+#define COMP 2
+#define USER 1
+
+
+DigitalOut myled(LED1);
+uLCD_4DGL uLCD(p9,p10,p11);
+DigitalIn pb5(p5);
+DigitalIn pb6(p6);
+DigitalIn pb7(p7);
+DigitalIn pb8(p8);
+#define M_PI 3.14159265358979323846
+Serial pc(USBTX, USBRX);
+SparkfunAnalogJoystick joysttick(p18, p19, p20);
+#define x_sector 0x003B
+int analog2Keypad(SparkfunAnalogJoystick *joystick);
+int player_turn;
+
+struct tiles {
+        char v;
+        int x;
+        int y;
+        char passable;} fortress_t,house_t,keep_t,grass_t,trees_t;
+        
+tiles* tile_array[5] = {&fortress_t,&house_t,&keep_t,&grass_t,&trees_t};
+
+
+typedef struct units {
+        job_t job;
+        int v;
+        int FoF;//1 = USER // 2= COMP
+        int xloc;
+        int yloc;
+        int xlast;
+        int ylast;
+        int remain_moves;
+        int health;
+        int status;
+    } person_t;
+
+    
+static person_t Mc;
+static person_t Ak;
+static person_t Ap;
+static person_t Healer;
+static person_t Brigand;    
+static person_t Thief;
+static person_t Soldier;
+static person_t Wolf;
+static person_t Wolfa;
+static person_t Wolfb;
+static person_t Wolfc;
+
+
+
+
+person_t* person_array[12] = {NULL,&Mc,&Ak,&Ap,&Healer,&Brigand,&Thief,&Soldier,&Wolf,&Wolfa,&Wolfb,&Wolfc};
+    
+int Map1_1[8][8] = {
+    {FORTRESS, FORTRESS, FORTRESS,  GRASS,  GRASS,  GRASS,  HOUSE,  GRASS},
+    {FORTRESS, FORTRESS, FORTRESS,  GRASS,  GRASS,  GRASS,  GRASS,  GRASS},
+    {FORTRESS, FORTRESS, FORTRESS,  GRASS,  TREES,  GRASS,  GRASS,  GRASS},
+    {GRASS,    GRASS,    GRASS,     GRASS,  GRASS,  GRASS,  GRASS,  GRASS},
+    {GRASS,    GRASS,    GRASS,     GRASS,  GRASS,  GRASS,  GRASS,  GRASS},
+    {GRASS,    GRASS,    GRASS,     GRASS,  TREES,  TREES,  TREES,  GRASS},
+    {GRASS,    GRASS,    HOUSE,     TREES,  GRASS,  KEEP,   GRASS,  GRASS},
+    {GRASS,    GRASS,    GRASS,     GRASS,  GRASS,  GRASS,  GRASS,  GRASS} };
+
+int unitsMap1_1[8][8] = {
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0},
+    {0, 0, 0, 0, 0, 0, 0, 0} };
+    
+    
+    
+        
+void initialize(void);
+int user_selecting(void);//return selection
+int user_action(int selection);
+int display_status(int selection); 
+int user_movement(int selection);
+int combat(person_t* attacker, person_t* defender);
+int ai_movement(void);    
+int state;
+int cursor_x;
+int cursor_y;
+void kill_unit(person_t* dead_unit);
+    
+int main() {
+    uLCD.media_init();
+    pb5.mode(PullUp);
+    pb6.mode(PullUp);
+    pb7.mode(PullUp);
+    pb8.mode(PullUp);
+    initialize();
+    int selection;
+    int action;
+    player_turn =1;
+    cursor_x = 0;
+    cursor_y = 0;
+    state = 0;
+    person_t* temp_persona;
+    while(1) {
+        if (state == 0){
+            selection = user_selecting();}
+        //else if (state ==1)
+            //ret_val = display_status(selection); 
+        else if (state == 2){
+            action = user_movement(selection);}
+        else if (state == 3){
+            if (player_turn ==1){
+                player_turn = 2;
+                }
+            else {
+                player_turn =1;
+                }
+            for(int i=1; i<12;i++){
+                temp_persona = person_array[i]; 
+                temp_persona->remain_moves = temp_persona->job.movement; 
+                }
+            state = 0;
+            }
+        //else if (state == 4)
+    }
+}
+//cleric - lord - ax
+//noth - spear
+
+
+
+void initialize(void){
+    pc.printf("init function\n"); 
+    init_jobs();
+    keep_t.x = x_sector;
+    house_t.x = x_sector;
+    grass_t.x = x_sector;
+    trees_t.x = x_sector;
+    fortress_t.x = x_sector;
+    fortress_t.y = 0x5042;
+    trees_t.y = 0x5052;
+    keep_t.y = 0x5054;
+    grass_t.y = 0x5056;
+    house_t.y = 0x5058;
+    uLCD.set_sector_address(Mapx, Mapy);
+    uLCD.display_image(0,0);
+    Mc.job = Lord;
+    Mc.v = 1;
+    Mc.FoF = USER;
+    Mc.xlast = 1;
+    Mc.xloc = 1;
+    Mc.ylast = 3;
+    Mc.yloc = 3;
+    Mc.remain_moves = Mc.job.movement;
+    Mc.health = Mc.job.maxHealth;
+    uLCD.set_sector_address(Mc.job.x, Mc.job.y);
+    uLCD.display_image((Mc.xloc*16),(Mc.yloc*16));
+    
+    Ak.job = Armor;
+    Ak.v = 2;
+    Ak.FoF = USER;
+    Ak.xlast = 1;
+    Ak.xloc = 1;
+    Ak.ylast = 4;
+    Ak.yloc = 4;
+    Ak.remain_moves = Ak.job.movement;
+    Ak.health = Ak.job.maxHealth;
+    
+    uLCD.set_sector_address(Ak.job.x, Ak.job.y);
+    uLCD.display_image((Ak.xloc*16),(Ak.yloc*16));
+    
+    Ap.job = Pirate;
+    Ap.v = 3;
+    Ap.FoF = USER;
+    Ap.xlast = 2;
+    Ap.xloc = 2;
+    Ap.ylast = 3;
+    Ap.yloc = 3;
+    Ap.remain_moves = Ap.job.movement;
+    Ap.health = Ap.job.maxHealth;
+    
+    uLCD.set_sector_address(Ap.job.x, Ap.job.y);
+    uLCD.display_image((Ap.xloc*16),(Ap.yloc*16));
+    
+    Healer.job = Cleric;
+    Healer.v = 4;
+    Healer.FoF = USER;
+    Healer.xlast = 0;
+    Healer.xloc = 0;
+    Healer.ylast = 3;
+    Healer.yloc = 3;
+    Healer.remain_moves = Healer.job.movement;
+    Healer.health = Healer.job.maxHealth;
+    
+    uLCD.set_sector_address(Healer.job.x, Healer.job.y);
+    uLCD.display_image((Healer.xloc*16),(Healer.yloc*16));
+    
+    Wolf.job = Beast;
+    Wolf.v = 8;
+    Wolf.FoF = COMP;
+    Wolf.xlast = 7;
+    Wolf.xloc = 7;
+    Wolf.ylast = 4;
+    Wolf.yloc = 4;
+    Wolf.remain_moves = Wolf.job.movement;
+    Wolf.health = Wolf.job.maxHealth;
+    
+    uLCD.set_sector_address(Wolf.job.x, Wolf.job.y);
+    uLCD.display_image((Wolf.xloc*16),(Wolf.yloc*16));    
+    unitsMap1_1[Wolf.yloc][Wolf.xloc] = Wolf.v;
+    
+    Wolfa.job = Beast;
+    Wolfa.v = 9;
+    Wolfa.FoF = COMP;
+    Wolfa.xlast = 7;
+    Wolfa.xloc = 7;
+    Wolfa.ylast = 5;
+    Wolfa.yloc = 5;
+    Wolfa.remain_moves = Wolfa.job.movement;
+    Wolfa.health = Wolfa.job.maxHealth;
+    
+    uLCD.set_sector_address(Wolfa.job.x, Wolfa.job.y);
+    uLCD.display_image((Wolfa.xloc*16),(Wolfa.yloc*16));    
+    unitsMap1_1[Wolfa.yloc][Wolfa.xloc] = Wolfa.v;
+    
+    Wolfb.job = Beast;
+    Wolfb.v = 10;
+    Wolfb.FoF = COMP;
+    Wolfb.xlast = 6;
+    Wolfb.xloc = 6;
+    Wolfb.ylast = 4;
+    Wolfb.yloc = 4;
+    Wolfb.remain_moves = Wolfb.job.movement;
+    Wolfb.health = Wolfb.job.maxHealth;
+    
+    uLCD.set_sector_address(Wolfb.job.x, Wolfb.job.y);
+    uLCD.display_image((Wolfb.xloc*16),(Wolfb.yloc*16));    
+    unitsMap1_1[Wolfb.yloc][Wolfb.xloc] = Wolfb.v;
+    
+    
+    Wolfc.job = Beast;
+    Wolfc.v = 11;
+    Wolfc.FoF = COMP;
+    Wolfc.xlast = 7;
+    Wolfc.xloc = 7;
+    Wolfc.ylast = 3;
+    Wolfc.yloc = 3;
+    Wolfc.remain_moves = Wolfc.job.movement;
+    Wolfc.health = Wolfc.job.maxHealth;
+    
+    uLCD.set_sector_address(Wolfc.job.x, Wolfc.job.y);
+    uLCD.display_image((Wolfc.xloc*16),(Wolfc.yloc*16));    
+    unitsMap1_1[Wolfc.yloc][Wolfc.xloc] = Wolfc.v;
+    
+    unitsMap1_1[Mc.yloc][Mc.xloc] = Mc.v;
+    unitsMap1_1[Ak.yloc][Ak.xloc] = Ak.v;
+    unitsMap1_1[Ap.yloc][Ap.xloc] = Ap.v;
+    unitsMap1_1[Healer.yloc][Healer.xloc] = Healer.v;
+    
+    return;
+}
+int user_selecting(void){    
+    int xlast;
+    int ylast;
+    int action = 0;
+    int person_index = 0;
+    int tile_index = 0;
+    int keypad = 5;
+    int ret =0;
+    person_t* temp_person;
+    tiles* tile_erased;
+    int j = pb5;
+    int y = pb8;
+    while(action == 0){
+        keypad = 5;
+        xlast = cursor_x;
+        ylast = cursor_y;
+        while((keypad == 5)&&(j ==1)){
+        wait(1);
+        j = pb5;
+        y = pb8;
+        keypad = analog2Keypad(&joysttick);
+                if (y==0){
+                    state = 3;
+                    return 0;
+                    }
+        }
+        switch (keypad)
+    {
+        case 1:
+        {
+            cursor_x = cursor_x -1;
+            cursor_y = cursor_y +1;
+        }
+            break;
+        case 2:
+        {
+            cursor_y = cursor_y +1;
+        }
+            break;
+        case 3:
+        {
+            cursor_x = cursor_x +1;
+            cursor_y = cursor_y +1;
+        }
+            break;
+        case 4:
+        {
+            cursor_x = cursor_x -1;
+        }
+            break;
+        case 5:
+            break;
+        case 6:
+        {
+            cursor_x = cursor_x +1;
+        }
+            break;
+        case 7:
+        {
+            cursor_x = cursor_x -1;
+            cursor_y = cursor_y -1;
+        }
+            break;
+        case 8:
+        {
+            cursor_y = cursor_y -1;
+        }
+            break;
+        case 9:
+        {
+            cursor_x = cursor_x + 1;
+            cursor_y = cursor_y - 1;
+        }
+            break;
+    }
+        if (cursor_y <0)
+            cursor_y = 0;
+        if (cursor_x <0)
+            cursor_x = 0;
+        if (cursor_y >7)
+            cursor_y = 7;
+        if (cursor_x >7)
+            cursor_x = 7;
+        
+        
+        if((xlast != cursor_x) || (ylast != cursor_y)){
+            person_index = unitsMap1_1[ylast][xlast];
+            tile_index = Map1_1[ylast][xlast];
+            if (person_index != 0){
+                temp_person = person_array[person_index];
+                uLCD.set_sector_address(temp_person->job.x, temp_person->job.y);
+                uLCD.display_image((xlast*16), (ylast*16));
+                }
+            else{
+                tile_erased = tile_array[tile_index];
+                if (tile_index == 0){
+                    uLCD.set_sector_address(tile_erased->x, tile_erased->y);
+                    uLCD.display_image(0, 0);
+                    }
+                else{
+                    uLCD.set_sector_address(tile_erased->x, tile_erased->y);
+                    uLCD.display_image(xlast*16, ylast*16);
+                    }
+            }    
+            uLCD.rectangle((cursor_x*16), (cursor_y*16), ((cursor_x*16)+15), ((cursor_y*16)+15), 0x000000);
+        }
+        int a = pb5;
+        //int b = pb6;
+        int c = pb7;
+        int d = pb8;
+        if (pb5 == 0){
+        state = 2;
+        action = 1;
+        }
+        //else if (pb6 == 0){
+        //state = 3;
+        //action = 2;
+        //}
+        else if (pb7 == 0){
+        action = 3;
+        }
+        else if (pb8 == 0){
+        action = 4;
+        }
+    }
+    if (pb5 == 0){
+        state = 2;
+        action = 1;
+    }
+    return action;
+}
+
+
+int user_movement(int selection){
+    int Index_j;
+    Index_j = unitsMap1_1[cursor_y][cursor_x];
+    person_t* User_person;
+    if (Index_j == 0){
+    state = 4;
+    return 69;   
+    }
+    User_person = person_array[Index_j];
+    if ((User_person->remain_moves) == 0)
+    {
+        state = 0;
+        return 0;
+    }
+        if ((User_person->FoF) != player_turn)
+    {
+        state = 0;
+        return 0;
+    }
+    int j = pb7;
+    int xloc_u = 1;
+    int yloc_u = 1;
+    int xlast = 1;
+    int ylast = 1;
+while(j==1){
+    j = pb7;
+    xloc_u = (User_person->xloc);
+    yloc_u = User_person->yloc;
+    xlast = User_person->xlast;
+    ylast = User_person->ylast;
+    int keypad = 5;
+        while((keypad == 5)&&(j==1)){
+        wait(1);
+        j = pb7;
+        keypad = analog2Keypad(&joysttick);
+        }
+        switch (keypad)
+        {
+        case 1:
+            xloc_u = xloc_u -1;
+            yloc_u = yloc_u +1;
+            break;
+        case 2:
+            yloc_u = yloc_u +1;
+            break;
+        case 3:
+            xloc_u = xloc_u +1;
+            yloc_u = yloc_u +1;
+            break;
+        case 4:
+            xloc_u = xloc_u -1;
+            break;
+        case 5:
+            break;
+        case 6:
+            xloc_u = xloc_u +1;
+            break;
+        case 7:
+            xloc_u = xloc_u -1;
+            yloc_u = yloc_u -1;
+            break;
+        case 8:
+            yloc_u = yloc_u -1;
+            break;
+        case 9:
+            xloc_u = xloc_u + 1;
+            yloc_u = yloc_u - 1;
+            break;
+        }
+        if (yloc_u <0)
+            yloc_u = 0;
+        if (xloc_u <0)
+            xloc_u = 0;
+        if (yloc_u >7)
+            yloc_u = 7;
+        if (xloc_u >7)
+            xloc_u = 7;
+        int x_change = 0;
+        if (xloc_u != xlast)
+            x_change = 1;
+        int y_change = 0;
+        if (yloc_u != ylast)
+            y_change = 1;
+        if (((User_person->remain_moves)-(y_change+x_change))<0){
+            xloc_u = xlast;
+            yloc_u = ylast;
+            x_change = 0;
+            y_change = 0;
+            }
+        
+        
+        int unit_index = unitsMap1_1[yloc_u][xloc_u];  
+        if (unit_index != 0){
+            person_t* target;
+            target = person_array[unit_index];
+            int alliance = target->FoF;
+            if (alliance ==player_turn){
+                m.speed(1.0);
+                xloc_u = xlast;
+                yloc_u = ylast;
+                x_change = 0;
+                y_change = 0;
+                wait(1.0);
+                m.speed(0.0);
+                }
+            else if(((xloc_u!=xlast)||(yloc_u!=ylast))&& (alliance != (User_person-> FoF)))
+            {
+                combat(User_person, target);
+                User_person->remain_moves = 0;
+                state = 0;
+                return 0;
+            }
+        }  
+        int tile_index = Map1_1[yloc_u][xloc_u];
+        if (tile_index == 0){
+            m.speed(1.0); 
+            xloc_u = xlast;
+            yloc_u = ylast;
+            x_change = 0;
+            y_change = 0;
+            wait(1.0);
+            m.speed(0.0);
+        }      
+        
+        if((xlast != xloc_u) || (ylast != yloc_u)){
+                tile_index = Map1_1[ylast][xlast];
+                unitsMap1_1[ylast][xlast] = 0;
+                unitsMap1_1[yloc_u][xloc_u] = User_person->v;
+                tiles* tile_erased = tile_array[tile_index];
+                if (tile_index == 0){
+                    uLCD.set_sector_address(tile_erased->x, tile_erased->y);
+                    uLCD.display_image(0, 0);
+                    }
+                else{
+                    uLCD.set_sector_address(tile_erased->x, tile_erased->y);
+                    uLCD.display_image(xlast*16, ylast*16);
+                    }
+                uLCD.set_sector_address(User_person->job.x,User_person->job.y);
+                User_person->xloc = xloc_u;
+                User_person->yloc = yloc_u;
+                User_person->xlast = xloc_u;
+                User_person->ylast = yloc_u;
+                User_person->remain_moves = (User_person->remain_moves) - x_change - y_change;
+                uLCD.display_image(((User_person->xloc)*16), ((User_person->yloc)*16));    
+        }    
+}    
+    state = 0;
+    return 0;
+}
+
+int analog2Keypad(SparkfunAnalogJoystick *joystick) {
+    if (joystick->distance() > .1) { //not in deadzone, accept input
+        if ((joystick->angle() > 0.0 && joystick->angle() < 22.5) ||(joystick->angle() > 337.5 && joystick->angle() < 360.0)) {
+            return 6;
+        } else if (joystick->angle() >= 22.5 && joystick->angle() < 67.5) {
+            return 9;
+        } else if (joystick->angle() >= 67.5 && joystick->angle() < 112.5) {
+            return 8;    
+        } else if (joystick->angle() >= 112.5 && joystick->angle() < 157.5) {
+            return 7;
+        } else if (joystick->angle() >= 157.5 && joystick->angle() < 202.5) {
+            return 4;
+        } else if (joystick->angle() >= 202.5 && joystick->angle() < 247.5) {
+            return 1;
+        } else if (joystick->angle() >= 247.5 && joystick->angle() < 292.5) {
+            return 2;
+        } else if (joystick->angle() >= 292.5 && joystick->angle() < 337.5) {
+            return 3;
+        }
+    } else {
+        return 5;
+    }
+}
+
+int combat(person_t* attacker, person_t* defender){
+    int d_health = (defender->health)-((attacker->job.damage)-(defender->job.defence));
+    int a_health;
+    if (d_health < (defender->health))
+        defender->health = d_health;
+    if ((defender->health)>0){
+        a_health = (defender->health)-(((attacker->job.damage)-(defender->job.defence))/2);
+        attacker->health = a_health;
+        }
+    pc.printf("attacker health %d \n",attacker->health);
+    pc.printf("defender health %d \n",defender->health);
+    if ((defender->health)<=0)
+        kill_unit(defender);
+    if ((attacker->health)<=0)
+        kill_unit(attacker);
+    
+    
+    return 0;
+    }
+
+void kill_unit(person_t* dead_unit){
+    int xloc = dead_unit->xloc;
+    int yloc = dead_unit->yloc;
+    unitsMap1_1[yloc][xloc] = 0;
+    int tile_index = Map1_1[yloc][xloc];
+    tiles* tile_dead_spot;
+    tile_dead_spot = tile_array[tile_index];
+    uLCD.set_sector_address(tile_dead_spot->x,tile_dead_spot->y);
+    uLCD.display_image(((dead_unit->xloc)*16), ((dead_unit->yloc)*16));    
+    
+    return;
+    }
+
diff -r 000000000000 -r b7a07b6cf5d0 mbed.bld
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/mbed.bld	Tue Mar 14 22:37:14 2017 +0000
@@ -0,0 +1,1 @@
+http://mbed.org/users/mbed_official/code/mbed/builds/e1686b8d5b90
\ No newline at end of file