#include <AccelStepper.h>
#include "HorseLane.h"
#include "Button.h"
// Setup Buttons
int btn1Pin = A1;
int btn1_Val = 0;
String _names[4];
HorseLane _Lane_names[] = {HorseLane(0, 0, -1), HorseLane(0, 0, -1), HorseLane(0, 0, -1), HorseLane(0, 0, -1)};
Button _buttons[] = {Button(-1), Button(-1), Button(-1), Button(-1)};
enum GameState {STATE_SETUP, STATE_IDLE, STATE_RUNNING};
GameState state;
int players[] {
0,
2
};
const int _btnPins[] = {A1,A2,A3,A4};
const int lanePins[][2] = {
{4, 7},
{3, 6},
{12, 13},
{2, 5},
};
// Need some Input value
//int players = 2;
void checkBtns() {
}
void gameSetup(int horseLanes[]) {
if (state != STATE_SETUP) return;
int lanesLen = sizeof(horseLanes);
for (int i = 0; i < lanesLen; i++) {
int _laneNum = horseLanes[i];
int _stepPin = lanePins[horseLanes[i]][0];
int _dirPin = lanePins[horseLanes[i]][1];
int _btnPin = _btnPins[horseLanes[i]];
String _name = "horse_lane_" + String(_laneNum);
_names[i] = _name;
_Lane_names[i] = HorseLane(_stepPin, _dirPin, _btnPin, _laneNum);
_buttons[i] = Button(_laneNum);
}
state = STATE_RUNNING;
}
void setup() {
//Start Serial
Serial.begin(9600);
pinMode(btn1Pin, INPUT);
state = STATE_SETUP;
}
void loop() {
btn1_Val = analogRead(btn1Pin);
Serial.println(btn1_Val);
if (btn1_Val > 900) {
_Lane_names[0].HorseLane::accelHorse();
//state = STATE_RUNNING;
}
else if (btn1_Val < 900 && btn1_Val >0){
_Lane_names[0].HorseLane::reverseHorse();
}
else{
_Lane_names[0].HorseLane::stopHorse();
}
switch (state) {
case STATE_SETUP:
gameSetup(players);
Serial.println(0);
break;
case STATE_IDLE:
Serial.println(1);
break;
case STATE_RUNNING:
for (int i = 0; i < 4; i++) {
//Serial.println(btn1_Val);
}
//Serial.println(2);
break;
}
//Serial.write(state);
Serial.read();
delay(520);
}