#include <Adafruit_NeoPixel.h> // library for the individually addressable LEDs I used
#define NeoPixelPIN 3
#define MAXBRIGHTNESS 255
#define NUMPIXELS 318 //Number of LEDs - should be 318 with more LEDS on strip
#define LEDperTILE 3
#define DELAYVAL 50
Adafruit_NeoPixel pixels(NUMPIXELS, NeoPixelPIN, NEO_GRB + NEO_KHZ800);
int * getTileColor(int tileType);
void shuffleBoard();
void readButtons();
void setTiles();
void setNumbers();
int tileValues[106];
int tileNumbers[106];
bool gameChanged = true;
void setup() {
Serial.begin(115200);
pixels.begin();
buttonsSetup();
numberSetup();
shuffleBoard();
}
void loop() {
pixels.clear();
if (gameChanged){ //Only update tiles if change has occured
setTiles();
setNumbers();
gameChanged = false;
}
for(int i=0; i < NUMPIXELS; i++) {
int* color = getTileColor(tileValues[i / LEDperTILE]);
pixels.setPixelColor(i, pixels.Color(color[0], color[1], color[2]));
}
pixels.show();
readButtons();
delay(DELAYVAL); // Pause before next pass through loop
}