#include "screen.h"
#include "game.h"
#include "control.h"
#include "queue.h"
#define PIN_CLK 13
#define PIN_DIN 11
#define PIN_CS 10
#define X_SEGMENTS 4
#define Y_SEGMENTS 4
#define PIN_VERT A2
#define PIN_HORZ A1
#define PIN_SEL A0
#define SCREENDATABYTESSIZE (8 * X_SEGMENTS * Y_SEGMENTS)
#define MAXSNAKELEN (8 * 8 * X_SEGMENTS * Y_SEGMENTS)
uint8_t _screen[SCREENDATABYTESSIZE]={0};
SCR_SETUP _scr = {0};
CTRL_SETUP _ctrl = {0};
QUEUE _qx={0};
QUEUE _qy={0};
uint8_t _qxdata[MAXSNAKELEN]={0};
uint8_t _qydata[MAXSNAKELEN]={0};
void setup()
{
q_init(&_qx,_qxdata,sizeof(_qxdata));
q_init(&_qy,_qydata,sizeof(_qydata));
_scr.pin_clk = PIN_CLK;
_scr.pin_din = PIN_DIN;
_scr.pin_cs = PIN_CS;
_scr.x_segments = X_SEGMENTS ;
_scr.y_segments = Y_SEGMENTS ;
_scr.scrbuf = _screen;
scr_init(&_scr);
scr_clear(&_scr);
scr_show(&_scr);
_ctrl.pin_h = PIN_HORZ;
_ctrl.pin_v = PIN_VERT;
_ctrl.pin_s = PIN_SEL;
ctrl_init(&_ctrl);
game_init(&_scr,&_ctrl,&_qx,&_qy);
}
void loop()
{
ctrl_read(&_ctrl);
game_loop();
game_draw();
scr_show(&_scr);
delay(1);
}