Declaration: I have read the University Regulations on Plagiarism [1] and state that the work covered by this declaration is my own and does not contain any unacknowledged work from other sources. I understand that my code will be run through a source code plagiarism detection engine and will be compared to all code submitted in this module (both in Leeds and at the Joint School in China). I confirm my consent to the University copying and distributing any or all of my work in any form and using third parties (who may be based outside the EU/EEA) to monitor breaches of regulations, to verify whether my work contains plagiarised material, and for quality assurance purposes. I confirm that details of any mitigating circumstances or other matters which might have affected my performance and which I wish to bring to the attention of the examiners, have been submitted to the Student Support Office. [1] Available on the School Student Intranet

Dependencies:   mbed Gamepad N5110 Joystick

main.cpp

Committer:
el16dlc
Date:
2019-05-09
Revision:
4:0fc3441556e1
Parent:
3:660de4311976
Child:
5:23a85b16ee54

File content as of revision 4:0fc3441556e1:

/*
ELEC2645 Embedded Systems Project
School of Electronic & Electrical Engineering
University of Leeds

Name: DANIEL CROCKFORD
Username: el16dlc
Student ID Number: 201039580
Date: 07/05/2019
*/


#include "main.h"
#include "Snake.h"
#include "Game_engine.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h> 

// Gamepad Peripherals
N5110 lcd(PTC9,PTC0,PTC7,PTD2,PTD1,PTC11);

Gamepad gamepad;

// Instances
GameEngine engine;


int main() {
    srand(time(NULL));
    Init(); 
    Welcome();
    engine.init();
    

    
    while(1) {
        render();
        update();
    }
}


// Initialise gamepad
void Init() {
    lcd.init();
    gamepad.init();
    lcd.setContrast(0.5);
    lcd.setBrightness(0.5);
    gamepad.leds_off();
    gamepad.check_event(Gamepad::A_PRESSED);
    gamepad.check_event(Gamepad::B_PRESSED);
    gamepad.check_event(Gamepad::X_PRESSED);
    gamepad.check_event(Gamepad::Y_PRESSED);
    gamepad.check_event(Gamepad::L_PRESSED);
    gamepad.check_event(Gamepad::R_PRESSED);
    gamepad.check_event(Gamepad::BACK_PRESSED);
    gamepad.check_event(Gamepad::START_PRESSED);  
}

// Prototype welcome screen
void Welcome() {
    lcd.clear();
    lcd.printString("Welcome",2,1);
    lcd.refresh();
    wait(2.0);
}

// Draws each frame on screen
void render() {
    lcd.clear();
    engine.draw(lcd);
    lcd.refresh();
}
void update() {
    engine.get_dir(gamepad);
    engine.snake_move();
    engine.food_move();
    engine.snake_body(lcd);
    lcd.refresh();
    wait(0.2);
}