mbed Checkers

Dependencies:   4DGL-uLCD-SE SDFileSystem mbed wave_player

main.cpp

Committer:
dcox32
Date:
2016-03-17
Revision:
0:e70461c0741e

File content as of revision 0:e70461c0741e:

#include "mbed.h"
#include "uLCD_4DGL.h"
#include "Speaker.h"
#include "SDFileSystem.h"
#include "wave_player.h"
#include <iostream>




DigitalOut myled1(LED1);
DigitalOut myled2(LED2);
DigitalOut myled3(LED3);
DigitalIn  select(p19);
DigitalIn  move(p20);
DigitalIn  clear(p23);  // clear the piece manually

uLCD_4DGL uLCD(p28,p27,p30);
SDFileSystem sd(p11, p12, p13, p17, "sd");
AnalogOut DACout(p18);

wave_player waver(&DACout);

int x1_start = 8;
int y1_start = 8;
int x2_start = 21;
int y2_start = 21;
int x1_r2 = 22;
int y1_r2 = 22;
int x2_r2 = 35;
int y2_r2 = 35;

int p1_x = 15;
int p1_y = 15;
int p2_x = 112;
int p2_y = 112;
int r = 4;

int row [8];
int col [8];


class Nav_Switch
{
public:
    Nav_Switch(PinName up,PinName down,PinName left,PinName right,PinName fire);
    int read();
//boolean functions to test each switch
    bool up();
    bool down();
    bool left();
    bool right();
    bool fire();
//automatic read on RHS
    operator int ();
//index to any switch array style
    bool operator[](int index) {
        return _pins[index];
    };
private:
    BusIn _pins;
 
};
Nav_Switch::Nav_Switch (PinName up,PinName down,PinName left,PinName right,PinName fire):
    _pins(up, down, left, right, fire)
{
    _pins.mode(PullUp); //needed if pullups not on board or a bare nav switch is used - delete otherwise
    wait(0.001); //delays just a bit for pullups to pull inputs high
}
inline bool Nav_Switch::up()
{
    return !(_pins[0]);
}
inline bool Nav_Switch::down()
{
    return !(_pins[1]);
}
inline bool Nav_Switch::left()
{
    return !(_pins[2]);
}
inline bool Nav_Switch::right()
{
    return !(_pins[3]);
}
inline bool Nav_Switch::fire()
{
    return !(_pins[4]);
}
inline int Nav_Switch::read()
{
    return _pins.read();
}
inline Nav_Switch::operator int ()
{
    return _pins.read();
}
 
Nav_Switch myNav( p9, p6, p7, p5, p8); //pin order on Sparkfun breakout

class Game_Cursor
{
    int x_, y_, r_, p_,n_,ID_,status_;
    
public:
    void set_values (int,int,int);
    void set_color (int);
    void set_n (int);
    void draw_cursor();
    void set_ID(int);
    void set_status(int);
    int get_x() { return x_;}
    int get_y() { return y_;}
    int get_r() { return r_;}   
    int get_p() { return p_;}
    int get_n(){ return n_;}
    int get_ID() { return ID_;}
    int get_status() {return status_;}
    
};

void Game_Cursor::set_values (int x, int y, int r)
{
    x_ = x;
    y_ = y;
    r_ = r;
}

void Game_Cursor::set_color (int p)
{
    p_ = p;
}

void Game_Cursor::set_n(int n)
{
    n_ = n;
}
    
void Game_Cursor::draw_cursor()
{
    uLCD.circle(x_,y_,r_,p_);
}
void Game_Cursor::set_ID (int ID)
{
    ID_ = ID;
}
void Game_Cursor::set_status (int status)
{
    status_ = status;
}
class Game_Piece
{
    int x_,y_,r_,p_,ID_;
public:
    void set_values (int,int,int,int);
    void set_ID(int);
    int get_x() { return x_;}
    int get_y() { return y_;}
    int get_r() {
        return r_;
    }
    int get_p() {
        return p_;
    }
    int get_ID() {
        return ID_;
    }    
};

void Game_Piece::set_values (int x, int y, int r, int p)
{
    x_ = x;
    y_ = y;
    r_ = r;
    p_ = p;
}

void Game_Piece::set_ID (int ID)
{
    ID_ = ID;
}    

class Game_Cell
{
    int x_,y_,color_,status_,n_,ID_;
    public:
    void set_values(int,int,int);
    void set_status(int);
    void set_n(int);
    void set_ID(int);
    int get_x(){ return x_;}
    int get_y(){ return y_;}
    int get_color(){ return color_;}
    int get_status(){ return status_;}
    int get_n(){ return n_;}
    int get_ID(){ return ID_;}
};
void Game_Cell::set_values(int x, int y, int color)
{
    x_ = x;
    y_ = y;
    color_=color;
}

void Game_Cell::set_status(int status)
{
    status_ = status;
}  

void Game_Cell::set_n(int n)
{
    n_ = n;
}

void Game_Cell::set_ID(int ID)
{
    ID_ = ID;
}    
          
int main()
{
    int player_1_pieces = 12;
    int player_2_pieces = 12;

    row[0]=15;
    col[0]=15;
    for(int i=1; i<8; i++) {
        row[i]=row[i-1]+14;
        col[i]=col[i-1]+14;
    }

    while(1) {
       // uLCD.background_color(BLUE);
        uLCD.cls();
        //uLCD.printf("Player 1");
        
        Game_Piece p1_[12];
        Game_Piece p2_[12];
        
        Game_Cell cell[64];
        
         // Player One Pieces
        p1_[0].set_values(row[0],col[0],r,BLACK);
        p1_[0].set_ID(1);
        p1_[1].set_values(row[2],col[0],r,BLACK);
        p1_[1].set_ID(2);
        p1_[2].set_values(row[4],col[0],r,BLACK);
        p1_[2].set_ID(3);
        p1_[3].set_values(row[6],col[0],r,BLACK);
        p1_[3].set_ID(4);
        p1_[4].set_values(row[1],col[1],r,BLACK);
        p1_[4].set_ID(5);
        p1_[5].set_values(row[3],col[1],r,BLACK);
        p1_[5].set_ID(6);
        p1_[6].set_values(row[5],col[1],r,BLACK);
        p1_[6].set_ID(7);
        p1_[7].set_values(row[7],col[1],r,BLACK);
        p1_[7].set_ID(8);
        p1_[8].set_values(row[0],col[2],r,BLACK);
        p1_[8].set_ID(9);
        p1_[9].set_values(row[2],col[2],r,BLACK);
        p1_[9].set_ID(10);
        p1_[10].set_values(row[4],col[2],r,BLACK);
        p1_[10].set_ID(11);
        p1_[11].set_values(row[6],col[2],r,BLACK);
        p1_[11].set_ID(12);
        
        // Player Two Pieces
        p2_[0].set_values(row[1],col[5],r,RED);
        p2_[0].set_ID(13);
        p2_[1].set_values(row[3],col[5],r,RED);
        p2_[1].set_ID(14);
        p2_[2].set_values(row[5],col[5],r,RED);
        p2_[2].set_ID(15);
        p2_[3].set_values(row[7],col[5],r,RED);
        p2_[3].set_ID(16);
        p2_[4].set_values(row[0],col[6],r,RED);
        p2_[4].set_ID(17);
        p2_[5].set_values(row[2],col[6],r,RED);
        p2_[5].set_ID(18);
        p2_[6].set_values(row[4],col[6],r,RED);
        p2_[6].set_ID(19);
        p2_[7].set_values(row[6],col[6],r,RED);
        p2_[7].set_ID(20);
        p2_[8].set_values(row[1],col[7],r,RED);
        p2_[8].set_ID(21);
        p2_[9].set_values(row[3],col[7],r,RED);
        p2_[9].set_ID(22);
        p2_[10].set_values(row[5],col[7],r,RED);
        p2_[10].set_ID(23);
        p2_[11].set_values(row[7],col[7],r,RED);
        p2_[11].set_ID(24);
        
        // row one cells 0 - 7
        cell[0].set_values(15,15,WHITE);
        cell[0].set_status(1);
        cell[0].set_n(0);
        cell[0].set_ID(p1_[0].get_ID());
        cell[1].set_values(29,15,0x999999);
        cell[1].set_status(0);
        cell[1].set_n(1);
        cell[1].set_ID(0);
        cell[2].set_values(43,15,WHITE);
        cell[2].set_status(1);
        cell[2].set_n(2);
        cell[2].set_ID(p1_[1].get_ID());
        cell[3].set_values(57,15,0x999999);
        cell[3].set_status(0);
        cell[3].set_n(3);        
        cell[3].set_ID(0);
        cell[4].set_values(71,15,WHITE);
        cell[4].set_status(1);
        cell[4].set_n(4);
        cell[4].set_ID(p1_[2].get_ID());
        cell[5].set_values(85,15,0x999999);
        cell[5].set_status(0);
        cell[5].set_n(5);
        cell[5].set_ID(0);
        cell[6].set_values(99,15,WHITE);
        cell[6].set_status(1);
        cell[6].set_n(6);
        cell[6].set_ID(p1_[3].get_ID());
        cell[7].set_values(113,15,0x999999);
        cell[7].set_status(0);
        cell[7].set_n(7);
        cell[7].set_ID(0);
        
       // row two cells 8 through 15
        cell[8].set_values(15,29,0x999999);
        cell[8].set_status(0);
        cell[8].set_n(8);
        cell[8].set_ID(0);
        cell[9].set_values(29,29,WHITE);
        cell[9].set_status(1);
        cell[9].set_n(9);
        cell[9].set_ID(p1_[4].get_ID());
        cell[10].set_values(43,29,0x999999);
        cell[10].set_status(0);
        cell[10].set_n(10);
        cell[10].set_ID(0);
        cell[11].set_values(57,29,WHITE);
        cell[11].set_status(1); 
        cell[11].set_n(11);
        cell[11].set_ID(p1_[5].get_ID());       
        cell[12].set_values(71,29,0x999999);
        cell[12].set_status(0);
        cell[12].set_n(12);
        cell[12].set_ID(0);
        cell[13].set_values(85,29,WHITE);
        cell[13].set_status(1);
        cell[13].set_n(13);
        cell[13].set_ID(p1_[6].get_ID());
        cell[14].set_values(99,29,0x999999);
        cell[14].set_status(0);
        cell[14].set_n(14);
        cell[14].set_ID(0);
        cell[15].set_values(113,29,WHITE);
        cell[15].set_status(1);
        cell[15].set_n(15);
        cell[15].set_ID(p1_[7].get_ID());
        
        //row three cells 16 - 23
        cell[16].set_values(15,43,WHITE);
        cell[16].set_status(1);
        cell[16].set_n(16);
        cell[16].set_ID(p1_[8].get_ID());
        cell[17].set_values(29,43,0x999999);
        cell[17].set_status(0);
        cell[17].set_n(17);
        cell[17].set_ID(0);
        cell[18].set_values(43,43,WHITE);
        cell[18].set_status(1);
        cell[18].set_n(18);
        cell[18].set_ID(p1_[9].get_ID());
        cell[19].set_values(57,43,0x999999);
        cell[19].set_status(0); 
        cell[19].set_n(19);
        cell[19].set_ID(0);       
        cell[20].set_values(71,43,WHITE);
        cell[20].set_status(1);
        cell[20].set_n(20);
        cell[20].set_ID(p1_[10].get_ID());
        cell[21].set_values(85,43,0x999999);
        cell[21].set_status(0);
        cell[21].set_n(21);
        cell[21].set_ID(0);
        cell[22].set_values(99,43,WHITE);
        cell[22].set_status(1);
        cell[22].set_n(22);
        cell[22].set_ID(p1_[11].get_ID());
        cell[23].set_values(113,43,0x999999);
        cell[23].set_status(0);
        cell[23].set_n(23);
        cell[22].set_ID(0);
        
        // row four cells 24 - 31
        cell[24].set_values(15,57,0x999999);
        cell[24].set_status(0);
        cell[24].set_n(24);
        cell[24].set_ID(0);
        cell[25].set_values(29,57,WHITE);
        cell[25].set_status(0);
        cell[25].set_n(25);
        cell[25].set_ID(0);
        cell[26].set_values(43,57,0x999999);
        cell[26].set_status(0);
        cell[26].set_n(26);
        cell[26].set_ID(0);
        cell[27].set_values(57,57,WHITE);
        cell[27].set_status(0); 
        cell[27].set_n(27);
        cell[27].set_ID(0);       
        cell[28].set_values(71,57,0x999999);
        cell[28].set_status(0);
        cell[28].set_n(28);
        cell[28].set_ID(0);
        cell[29].set_values(85,57,WHITE);
        cell[29].set_status(0);
        cell[29].set_n(29);
        cell[29].set_ID(0);
        cell[30].set_values(99,57,0x999999);
        cell[30].set_status(0);
        cell[30].set_n(30);
        cell[20].set_ID(0);
        cell[31].set_values(113,57,WHITE);
        cell[31].set_status(0);
        cell[31].set_n(31);
        cell[31].set_ID(0); 
        
        // row five cells 32 - 39
        cell[32].set_values(15,71,WHITE);
        cell[32].set_status(0);
        cell[32].set_n(32);
        cell[32].set_ID(0);
        cell[33].set_values(29,71,0x999999);
        cell[33].set_status(0);
        cell[33].set_n(33);
        cell[33].set_ID(0);
        cell[34].set_values(43,71,WHITE);
        cell[34].set_status(0);
        cell[34].set_n(34);
        cell[34].set_ID(0);
        cell[35].set_values(57,71,0x999999);
        cell[35].set_status(0); 
        cell[35].set_n(35);
        cell[35].set_ID(0);       
        cell[36].set_values(71,71,WHITE);
        cell[36].set_status(0);
        cell[36].set_n(36);
        cell[36].set_ID(0);
        cell[37].set_values(85,71,0x999999);
        cell[37].set_status(0);
        cell[37].set_n(37);
        cell[38].set_values(99,71,WHITE);
        cell[38].set_status(0);
        cell[38].set_n(38);
        cell[38].set_ID(0);
        cell[39].set_values(113,71,0x999999);
        cell[39].set_status(0);
        cell[39].set_n(39);
        cell[29].set_ID(0);   
             
        // row six cells 40 - 47
        cell[40].set_values(15,85,0x999999);
        cell[40].set_status(0);
        cell[40].set_n(40);
        cell[40].set_ID(0);
        cell[41].set_values(29,85,WHITE);
        cell[41].set_status(2);
        cell[41].set_n(41);
        cell[41].set_ID(p2_[0].get_ID());  //
        cell[42].set_values(43,85,0x999999);
        cell[42].set_status(0);
        cell[42].set_n(42);
        cell[42].set_ID(0);
        cell[43].set_values(57,85,WHITE);
        cell[43].set_status(2); 
        cell[43].set_n(43);
        cell[43].set_ID(p2_[1].get_ID());  //     
        cell[44].set_values(71,85,0x999999);
        cell[44].set_status(0);
        cell[44].set_n(44);
        cell[44].set_ID(0);
        cell[45].set_values(85,85,WHITE);
        cell[45].set_status(2);
        cell[45].set_n(45);
        cell[45].set_ID(p2_[2].get_ID());  //
        cell[46].set_values(99,85,0x999999);
        cell[46].set_status(0);
        cell[46].set_n(46);
        cell[46].set_ID(0);
        cell[47].set_values(113,85,WHITE);
        cell[47].set_status(2);
        cell[47].set_n(47);
        cell[47].set_ID(p2_[3].get_ID()); // 
                
        // row seven cells 48 - 55
        cell[48].set_values(15,99,WHITE);
        cell[48].set_status(2);
        cell[48].set_n(48);
        cell[48].set_ID(p2_[4].get_ID());
        cell[49].set_values(29,99,0x999999);
        cell[49].set_status(0);
        cell[49].set_n(49);
        cell[49].set_ID(0);
        cell[50].set_values(43,99,WHITE);
        cell[50].set_status(2);
        cell[50].set_n(50);
        cell[50].set_ID(p2_[5].get_ID());
        cell[51].set_values(57,99,0x999999);
        cell[51].set_status(0); 
        cell[51].set_n(51);
        cell[50].set_ID(0);       
        cell[52].set_values(71,99,WHITE);
        cell[52].set_status(2);
        cell[52].set_n(52);
        cell[52].set_ID(p2_[6].get_ID());
        cell[53].set_values(85,99,0x999999);
        cell[53].set_status(0);
        cell[53].set_n(53);
        cell[53].set_ID(0);
        cell[54].set_values(99,99,WHITE);
        cell[54].set_status(2);
        cell[54].set_n(54);
        cell[54].set_ID(p2_[7].get_ID());
        cell[55].set_values(113,99,0x999999);
        cell[55].set_status(0);
        cell[55].set_n(55);
        cell[55].set_ID(0);
                
        // row eight cells 56 - 64       
        cell[56].set_values(15,113,0x999999);
        cell[56].set_status(0);
        cell[56].set_n(56);
        cell[56].set_ID(0);
        cell[57].set_values(29,113,WHITE);
        cell[57].set_status(2);
        cell[57].set_n(57);
        cell[57].set_ID(p2_[8].get_ID());
        cell[58].set_values(43,113,0x999999);
        cell[58].set_status(0);
        cell[58].set_n(58);
        cell[58].set_ID(0);
        cell[59].set_values(57,113,WHITE);
        cell[59].set_status(2); 
        cell[59].set_n(59);
        cell[59].set_ID(p2_[9].get_ID());       
        cell[60].set_values(71,113,0x999999);
        cell[60].set_status(0);
        cell[60].set_n(60);
        cell[60].set_ID(0); 
        cell[61].set_values(85,113,WHITE);
        cell[61].set_status(2);
        cell[61].set_n(61);
        cell[61].set_ID(p2_[10].get_ID()); 
        cell[62].set_values(99,113,0x999999);
        cell[62].set_status(0);
        cell[62].set_n(62);
        cell[62].set_ID(0); 
        cell[63].set_values(113,113,WHITE);
        cell[63].set_status(2);
        cell[63].set_n(63);
        cell[63].set_ID(p2_[11].get_ID()); 
               
        //Board
        uLCD.filled_rectangle(8, 8, 120, 119, 0x999999);
        uLCD.rectangle(8,8,120,120,BLUE);
        uLCD.filled_rectangle(x1_start,y1_start,x2_start,y2_start, WHITE);
        uLCD.filled_rectangle(x1_r2,y1_r2,x2_r2,y2_r2, WHITE);

        // odd rows
        for(int i = 0; i < 8; i=i+2) {
            uLCD.filled_rectangle(x1_start+14*i,y1_start,x2_start+14*i,y2_start, WHITE);
            uLCD.filled_rectangle(x1_start+14*i,y1_start+28,x2_start+14*i,y2_start+28,WHITE);
            uLCD.filled_rectangle(x1_start+14*i,y1_start+28*2,x2_start+14*i,y2_start+28*2,WHITE);
            uLCD.filled_rectangle(x1_start+14*i,y1_start+28*3,x2_start+14*i,y2_start+28*3,WHITE);
        }
        // even rows
        for(int j = 0; j < 7; j=j+2) {
            uLCD.filled_rectangle(x1_r2+14*j,y1_r2,x2_r2+14*j,y2_r2, WHITE);
            uLCD.filled_rectangle(x1_r2+14*j,y1_r2+28,x2_r2+14*j,y2_r2+28, WHITE);
            uLCD.filled_rectangle(x1_r2+14*j,y1_r2+28*2,x2_r2+14*j,y2_r2+28*2, WHITE);
            uLCD.filled_rectangle(x1_r2+14*j,y1_r2+28*3,x2_r2+14*j,y2_r2+28*3, WHITE);
        }
        uLCD.rectangle(8,8,120,120,BLUE);
      
        
    // draw player one pieces
    for(int k = 0;k<12;k++) {
        uLCD.filled_circle(p1_[k].get_x(),p1_[k].get_y(),p1_[k].get_r(),p1_[k].get_p());
        }
 
    // draw player two pieces
    for(int k = 0;k<12;k++) {
        uLCD.filled_circle(p2_[k].get_x(),p2_[k].get_y(),p2_[k].get_r(),p2_[k].get_p());
        }
        
    Game_Cursor g_c;
    
    g_c.set_values(row[0],col[0],6);
    g_c.set_color(BLUE);
    g_c.set_n(0);
    g_c.draw_cursor();
    g_c.set_ID(0);
    g_c.set_status(0);   
    
    myled3=0;
        
    int location = 0;   
    int timer = 0; 
        while(1) {

            
            if(player_1_pieces < 12) // change 12 back to 1
                {
                    while(1)
                    {
                     uLCD.background_color(WHITE);
                     uLCD.cls();
                     wait(0.2);
                     uLCD.cls();
                     uLCD.locate(4,6);
                     uLCD.background_color(WHITE);
                     uLCD.set_font(FONT_7X8);
                     uLCD.text_mode(TRANSPARENT);
                     uLCD.text_bold(ON);
                     uLCD.text_string("GAME OVER", 4, 6, FONT_7X8, BLUE);
                     uLCD.locate(2,10);
                     uLCD.text_bold(ON);
                     uLCD.text_string("Player 1 Loses", 2, 10, FONT_7X8, RED);
                     uLCD.text_width(4); //4X size text
                     uLCD.text_height(4);
                     uLCD.color(RED);
                     myled1=0;
                     myled2=0;
                     myled3=0;
                     FILE *wave_file;
                     wave_file=fopen("/sd/champ.wav","r");
                     waver.play(wave_file);
                     fclose(wave_file);
                     
                     while(1)
                     {
                         myled2=1;
                         wait(0.2);
                         myled2=0;
                         wait(0.2);
                         }
                     
                     
          
                    }
                }
                
            if(player_2_pieces < 12)  // change 12 back to 1
                {
                    while(1)
                    {
                     uLCD.background_color(BLUE);
                     uLCD.cls();
                     wait(0.2);
                     uLCD.cls();
                     uLCD.locate(4,6);
                     uLCD.background_color(BLUE);
                     uLCD.set_font(FONT_7X8);
                     uLCD.text_mode(TRANSPARENT);
                     uLCD.text_bold(ON);
                     uLCD.text_string("GAME OVER", 4, 6, FONT_7X8, WHITE);
                     uLCD.locate(2,10);
                     uLCD.text_bold(ON);
                     uLCD.text_string("Player 2 Loses", 2, 10, FONT_7X8, WHITE);
                     uLCD.text_width(4); //4X size text
                     uLCD.text_height(4);
                     uLCD.color(RED);
                     myled1=0;
                     myled2=0;
                     myled3=0;
                     FILE *wave_file;
                     wave_file=fopen("/sd/champ.wav","r");
                     waver.play(wave_file);
                     fclose(wave_file);
                     while(1)
                     {
                         myled1=1;
                         wait(0.2);
                         myled1=0;
                         wait(0.2);
                         }
                     
                     
          
                    }
                }
   
            if(select)
            {
 
                if(g_c.get_ID() == 0)
                    {
                    location = g_c.get_n();
                    g_c.set_status(cell[location].get_status());
                    g_c.set_ID(cell[location].get_ID());
                    
                    }

                    
            }
            
            if(move)
            {

               myled3 =1;
                if(g_c.get_ID() > 0)
                {
                  if(cell[g_c.get_n()].get_status() < 1)
                  {
                     int x = g_c.get_x();
                     int y = g_c.get_y();
                     uLCD.filled_circle(cell[location].get_x(),cell[location].get_y(),r,WHITE);
                     if (g_c.get_status() == 1)
                     {
                     uLCD.filled_circle(x,y,r,BLACK);
                     FILE *wave_file;
                     wave_file=fopen("/sd/bang.wav","r");
                     waver.play(wave_file);
                     fclose(wave_file);
                     }
                     else if (g_c.get_status() == 2)
                     {
                     uLCD.filled_circle(x,y,r,RED);
                     FILE *wave_file;
                     wave_file=fopen("/sd/zip.wav","r");
                     waver.play(wave_file);
                     fclose(wave_file);
                     }
                     cell[g_c.get_n()].set_status(cell[location].get_status());
                     cell[location].set_status(0);
                     cell[g_c.get_n()].set_ID(g_c.get_ID());
                     cell[location].set_ID(0);
                     location = 0;
                     g_c.set_ID(0);
                     g_c.set_status(0);
                   
                    myled3 = 0;
                     
                  }

                    
                }    
            }   
            
            if(clear)
            {
             if(cell[g_c.get_n()].get_status() == 1)
                {
                    uLCD.filled_circle(g_c.get_x(),g_c.get_y(),r,WHITE);
                    cell[g_c.get_n()].set_status(0);
                    player_1_pieces--;
                    FILE *wave_file;
                    wave_file=fopen("/sd/wow.wav","r");
                    waver.play(wave_file);
                    fclose(wave_file);
                    
                }
             if(cell[g_c.get_n()].get_status() == 2)
                {
                    uLCD.filled_circle(g_c.get_x(),g_c.get_y(),r,WHITE);
                    cell[g_c.get_n()].set_status(0);
                    player_2_pieces--;
                    FILE *wave_file;
                    wave_file=fopen("/sd/wow.wav","r");
                    waver.play(wave_file);
                    fclose(wave_file);
                }
            }
            
            if(myNav.down()){
                int c = cell[g_c.get_n()].get_color();
                g_c.set_color(c);
                g_c.draw_cursor();
                int i = g_c.get_n()+ 8;
                if(i > 63) {
                    i=0;
                    }
                int x = cell[i].get_x();
                int y = cell[i].get_y();
                g_c.set_n(i);
                g_c.set_values(x,y,6);
                g_c.set_color(BLUE);
                g_c.draw_cursor();
                }
            if(myNav.right()){
                int c = cell[g_c.get_n()].get_color();
                g_c.set_color(c);
                g_c.draw_cursor();
                int i = g_c.get_n()+ 1;
                if(i>63) {
                    i=63;
                    }
                int x = cell[i].get_x();
                int y = cell[i].get_y();
                g_c.set_n(i);
                g_c.set_values(x,y,6);
                g_c.set_color(BLUE);
                g_c.draw_cursor();
                }
                if(myNav.left()){
                int c = cell[g_c.get_n()].get_color();
                g_c.set_color(c);
                g_c.draw_cursor();
                int i = g_c.get_n()- 1;
                if(i<0){
                    i=0;
                    }
                int x = cell[i].get_x();
                int y = cell[i].get_y();
                g_c.set_n(i);
                g_c.set_values(x,y,6);
                g_c.set_color(BLUE);
                g_c.draw_cursor();
                }
                if(myNav.up()){
                int c = cell[g_c.get_n()].get_color();
                g_c.set_color(c);
                g_c.draw_cursor();
                int i = g_c.get_n()- 8;
                if(i<0){
                    i=0;
                    }
                int x = cell[i].get_x();
                int y = cell[i].get_y();
                g_c.set_n(i);
                g_c.set_values(x,y,6);
                g_c.set_color(BLUE);
                g_c.draw_cursor();
                }     
            myled1 = 1;
            myled2 = 0;
            wait(0.2);
            myled1 = 0;
            myled2 =1;
            wait(0.2);

        }
    }
}