Game doesn't work properly, but it's a 'form' of Tetris.

Dependencies:   N5110 mbed

Revision:
1:7da5b36d5f50
Child:
2:dc75e15229ee
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Main.cpp	Thu Apr 28 14:33:28 2016 +0000
@@ -0,0 +1,202 @@
+#include "mbed.h"
+#include "N5110.h"
+
+//Tetris by Kristian Bridges
+
+//         VCC,    SCE,   RST,   D/C,   MOSI,  SCLK,   LED
+N5110 lcd (PTE26 , PTA0 , PTC4 , PTD0 , PTD2 , PTD1 , PTC3);
+
+AnalogIn potX(PTB2);
+AnalogIn potY(PTB3);
+DigitalIn joyButton(PTB11);
+
+#define tolerance 0.05f
+#define down_tolerance -0.05f
+
+Ticker checkJoy;
+
+enum direction_t {
+    UP, //0
+    DOWN, //1
+    LEFT, //2
+    RIGHT, //3
+    CENTRE, //4
+    UNKNOWN //5
+};
+
+typedef struct {
+    float initial_x,initial_y;
+    float current_x,current_y;
+    int button;
+    direction_t direction;
+} joystick;
+
+joystick joy;
+
+volatile int g_bank_index  = 0;
+volatile int index1 = g_bank_index;
+volatile int g_joyFlag = 0;
+char buffer[14];
+char buffer2[14];
+int xlcd;
+int ylcd;
+
+void menu();
+void joyCal();
+void joyUpdate();
+void selection();
+void game();
+void achievements();
+void options();
+
+int main()
+{
+    lcd.init();
+    lcd.clear();
+    lcd.printString("Tetris",24,1);
+    lcd.printString("by",36,2);
+    lcd.printString("K.Bridges",15,3);
+    lcd.printString("SID: 200859491",0,5);
+    wait(2);
+    lcd.clear();
+    joyCal();
+    checkJoy.attach(&joyUpdate,0.01);
+    menu();
+
+}
+
+void menu()
+{
+
+    int x,y;
+
+    lcd.printString("New Game",18,1);
+    lcd.printString("Achievements",6,2);
+    lcd.printString("Options",21,3);
+
+    while(joy.button == 0) {
+        if(g_joyFlag) {
+            g_joyFlag = 0;
+
+            switch(joy.direction) {
+                case UP:
+                    if(g_bank_index == 0) {
+                        g_bank_index = 2;
+                        break;
+                    } else
+                        g_bank_index--;
+                    break;
+                case DOWN:
+                    if(g_bank_index == 2) {
+                        g_bank_index = 0;
+                    } else
+                        g_bank_index++;
+            }
+            if(g_bank_index == 0) {
+                
+                lcd.clear();
+                lcd.printString("New Game",18,1);
+                lcd.printString("Achievements",6,2);
+                lcd.printString("Options",21,3);
+                
+                for(x=0; x<WIDTH; x++) {
+                    for(y=7; y<15; y++) {
+                        if(lcd.getPixel(x,y)) {
+                            lcd.clearPixel(x,y);
+                        } else {
+                            lcd.setPixel(x,y);
+                        }
+                    }
+                }
+            }
+            if(g_bank_index == 1) {
+                
+                lcd.clear();
+                lcd.printString("New Game",18,1);
+                lcd.printString("Achievements",6,2);
+                lcd.printString("Options",21,3);
+                
+                for(x=0; x<WIDTH; x++) {
+                    for(y=14; y<22; y++) {
+                        if(lcd.getPixel(x,y)) {
+                            lcd.clearPixel(x,y);
+                        } else {
+                            lcd.setPixel(x,y);
+                        }
+                    }
+                }
+            }
+            if(g_bank_index == 2) {
+                
+                lcd.clear();
+                lcd.printString("New Game",18,1);
+                lcd.printString("Achievements",6,2);
+                lcd.printString("Options",21,3);
+                
+                for(x=0; x<WIDTH; x++) {
+                    for(y=21; y<29; y++) {
+                        if(lcd.getPixel(x,y)) {
+                            lcd.clearPixel(x,y);
+                        } else {
+                            lcd.setPixel(x,y);
+                        }
+                    }
+                }
+            }
+            lcd.refresh();
+        }
+        sleep();
+    }//end of while loop
+
+}//end of function
+
+void joyCal()
+{
+    joy.initial_x = potX;
+    joy.initial_y = potY;
+    joyButton.mode(PullDown);
+}
+
+void joyUpdate()
+{
+    joy.current_x = potX - joy.initial_x; //current x-position
+    joy.current_y = potY - joy.initial_y; //current y-position
+    joy.button = joyButton; //current button state
+
+    if((joy.current_y) > tolerance && fabs(joy.current_x) < tolerance) {    //fabs returns an absolute value
+        joy.direction = UP;
+    } else if((joy.current_y) < down_tolerance && fabs(joy.current_x) < tolerance) {
+        joy.direction = DOWN;
+    } else if((joy.current_x) > tolerance && fabs(joy.current_y) < tolerance) {
+        joy.direction = LEFT;
+    } else if((joy.current_x) < tolerance && fabs(joy.current_y) < tolerance) {
+        joy.direction = RIGHT;
+    } else if(fabs(joy.current_x) < tolerance && fabs(joy.current_y) < tolerance) {
+        joy.direction = CENTRE;
+    } else
+        joy.direction = UNKNOWN;
+    g_joyFlag = 1;
+}
+
+void selection()
+{
+    if(g_bank_index == 0) {
+        game();
+    } else if(g_bank_index == 1) {
+        achievements();
+    } else if(g_bank_index == 2) {
+        options();
+    }
+}
+
+void game()
+{
+}
+
+void achievements()
+{
+}
+
+void options()
+{
+}