Completed Snake Program

Dependencies:   N5110 PinDetect PowerControl mbed

Fork of DocTest by Craig Evans

main.cpp

Committer:
MBirney
Date:
2015-04-08
Revision:
2:deb61a34ac31
Parent:
1:6fc14cd8ccf1
Child:
3:478b090b7e1b

File content as of revision 2:deb61a34ac31:

#include "mbed.h"
#include "N5110.h"

//    VCC,SCE,RST,D/C,MOSI,SCLK,LED
N5110 lcd(p7,p8,p9,p10,p11,p13,p21);
//d

// Can also power (VCC) directly from VOUT (3.3 V) -
// Can give better performance due to current limitation from GPIO pin
enum Difficulty {
    EASY,
    MEDIUM,
    HARD,
};
int gameSpeed;//change depending on difficulty selected

Difficulty currentDifficulty =EASY;

void displaySplash()
{
    // these are default settings so not strictly needed
    lcd.inverseMode();      // normal colour mode
    lcd.setBrightness(0.5); // put LED backlight on 50%

    //Draw S
    lcd.drawRect(28,10,2,5,1);
    lcd.drawRect(15,10,15,2,1);
    lcd.drawRect(15,10,2,10,1);
    lcd.drawRect(15,20,15,2,1);
    lcd.drawRect(28,20,2,10,1);
    lcd.drawRect(15,28,15,2,1);
    lcd.drawRect(15,25,2,3,1);

    lcd.printString("NAKE ",34,3);
    lcd.printString("By M.Birney",10,5);
    lcd.drawRect(10,5,65,30,0);

    // need to refresh display after setting pixels

    lcd.refresh();
}



void easySelected() // display when easy is selected
{
    lcd.clear();
    lcd.printString("Please Select",2,0);
    lcd.printString("Difficulty:",2,1);
    lcd.printString("Easy",20,3);
    lcd.printString("Medium",20,4);
    lcd.printString("Hard",20,5);
    lcd.refresh();
    lcd.drawCircle(10,27,2,1);
    lcd.drawCircle(10,35,2,0);
    lcd.drawCircle(10,43,2,0);

    gameSpeed= 1.0;
}
void mediumSelected() // display when medium is selected
{
    lcd.clear();
    lcd.printString("Please Select",2,0);
    lcd.printString("Difficulty:",2,1);
    lcd.printString("Easy",20,3);
    lcd.printString("Medium",20,4);
    lcd.printString("Hard",20,5);
    lcd.refresh();
    lcd.drawCircle(10,27,2,0);
    lcd.drawCircle(10,35,2,1);
    lcd.drawCircle(10,43,2,0);
    gameSpeed=1.0/4;
}

void hardSelected() // display when hard is selected
{
    lcd.clear();
    lcd.printString("Please Select",2,0);
    lcd.printString("Difficulty:",2,1);
    lcd.printString("Easy",20,3);
    lcd.printString("Medium",20,4);
    lcd.printString("Hard",20,5);
    lcd.refresh();
    lcd.drawCircle(10,27,2,0);
    lcd.drawCircle(10,35,2,0);
    lcd.drawCircle(10,43,2,1);
    gameSpeed=1.0/8;
}



int main()
{
    // first need to initialise display
    lcd.init();
    displaySplash();
    wait(1);

    easySelected();
    wait(2);
    mediumSelected();
    wait(2);
    hardSelected();

    while(1) {

        switch(currentDifficulty) {
            case EASY:

                switch (joystick.direction)

                case UP:
                hardSelected;
                break;


            case DOWN:
                mediumSelected;
                break;

                break;


            case MEDIUM:

                switch (joystick.direction)

                case UP:
                easySelected;
                break;


            case DOWN:
                hardSelected;
                break;



                break;
            case HARD:
                switch (joystick.direction)

                case UP:
                mediumSelected;
                break;


            case DOWN:
                easySelected;
                break;
                break;
        }


    }
}