4180 fianl project

Dependencies:   4DGL-uLCD-SE EthernetInterface HTTPClient mbed-rtos mbed

main.cpp

Committer:
honelight
Date:
2015-04-20
Revision:
0:28f8ba171e86

File content as of revision 0:28f8ba171e86:

#include "mbed.h"
#include "uLCD_4DGL.h"
#include "board.h"
#include "rtos.h"
#include "EthernetInterface.h"
#include "HTTPClient.h"

uLCD_4DGL lcd(p28,p27,p30); // serial tx, serial rx, reset pin;

DigitalIn in0(p11);
DigitalIn in1(p12);
DigitalIn in2(p13);
DigitalIn in3(p14);
DigitalIn in4(p15);
DigitalIn in5(p16);
DigitalIn in6(p17);
DigitalIn in7(p18);
DigitalIn in8(p19);

Mutex stdio_mutex;



int player1=1;
int player2=2;
int turn =1;
int printout = 0;


void printBoard(int ** board)
{
    lcd.cls();
    lcd.line(0, 42 , 127, 42 , 0xFF0000);
    lcd.line(0, 84 , 127, 84 , 0xFF0000);
    lcd.line(42, 0 , 42, 127, 0xFF0000);
    lcd.line(84, 0, 84, 127, 0xFF0000);
    for(int i=0; i<3; i++)
    {
        for(int j=0; j<3; j++)
        {
            if(board[i][j] == 1)
            {
                lcd.line( j*42+2 , i*42 + 2 ,(j+1)*42-2 , (i+1)*42-2 , GREEN);
                lcd.line( j*42+2 , (i+1)*42 - 2 ,(j+1)*42-2 , (i)*42+2 , GREEN);
            }
            else if(board[i][j] == 2)
            {
                lcd.circle(42*j+21, 42*i+21, 19, BLUE);
            }
        }
    }
}

HTTPClient http; 
char str[2048];
int main() {
    
    EthernetInterface eth;
    eth.init(); //Use DHCP
    eth.connect();
    printf("IP Address is %s\n", eth.getIPAddress());
    printf("%d\n", sizeof(str));
    int ret = http.get("http://ece4180mbedonlinegaming.azurewebsites.net/odata/TicTacToeGames(1)?$select=BoardState", str, 2048);
    printf("%d\n",ret);
    printf("Result: %s\n", str);
    /*
    in0.mode(PullUp);
    in1.mode(PullUp);
    in2.mode(PullUp);
    in3.mode(PullUp);
    in4.mode(PullUp);
    in5.mode(PullUp);
    in6.mode(PullUp);
    in7.mode(PullUp);
    in8.mode(PullUp);
    
    Board board;
    int ** output = board.get_board();
    printBoard(output);
    lcd.baudrate(3000000);
    
    lcd.line(0, 42 , 127, 42 , 0xFF0000);
    lcd.line(0, 84 , 127, 84 , 0xFF0000);
    lcd.line(42, 0 , 42, 127, 0xFF0000);
    lcd.line(84, 0, 84, 127, 0xFF0000);
    
    while (true) {
        if(!in0)
            printout = 1;
        else if(!in1)
            printout = 2;
        else if(!in2)
            printout = 3;
        else if(!in3)
            printout = 4;
        else if(!in4)
            printout = 5;
        else if(!in5)
            printout = 6;
        else if(!in6)
            printout = 7;
        else if(!in7)
            printout = 8;
        else if(!in8)
            printout = 9;
        else
            printout = 0;
            
        
        if(printout>0)
        {
            bool valid = board.updateBoard(turn, printout-1);

            if(valid)
            {
                output = board.get_board();
                printBoard(output);
                printout=0;
                int victory = board.check_victory(turn);
                if(victory ==1)
                {
                    lcd.cls();
                    lcd.printf("player 1 win!");
                    return 0;
                }
                else if(victory == 2)
                {
                    lcd.cls();
                    lcd.printf("player 2 win!");
                    return 0;
                }
                if(turn ==1)
                    turn =2;
                else
                    turn =1;
            }
        }
        Thread::wait(400);
    }   
    */
    
}