diff --git a/School/vg2/borg/demos/rubix.ino b/School/vg2/borg/demos/rubix.ino new file mode 100644 index 0000000..1dec621 --- /dev/null +++ b/School/vg2/borg/demos/rubix.ino @@ -0,0 +1,72 @@ +// A single pxiel moves in a random direction over and over again +#include +#include + +#define NUM_LEDS 54 +#define DATA_PIN 7 + +#define BLUE (CRGB) 0x0000FF +#define RED (CRGB) 0xFF0000 +#define GREEN (CRGB) 0x00FF00 +#define ORANGE (CRGB) 0xFF8C00 +#define WHITE (CRGB) 0xFFFFFF +#define YELLOW (CRGB) 0xFFFF00 + +CRGB leds[NUM_LEDS]; +CRGB solution[NUM_LEDS]; + +void setup() { + FastLED.addLeds(leds, NUM_LEDS); + initMap(); + randomSeed(analogRead(0)); + FastLED.clear(); + FastLED.show(); + + // Make the solution memory structure + setColor({0, 255, 255}, BLUE, solution); + setColor({1, 255, 255}, RED, solution); + setColor({2, 255, 255}, GREEN, solution); + setColor({3, 255, 255}, ORANGE, solution); + setColor({4, 255, 255}, WHITE, solution); + setColor({5, 255, 255}, YELLOW, solution); + + setColor({0, 1, 1}, BLUE, leds); + setColor({1, 1, 1}, RED, leds); + setColor({2, 1, 1}, GREEN, leds); + setColor({3, 1, 1}, ORANGE, leds); + setColor({4, 1, 1}, WHITE, leds); + setColor({5, 1, 1}, YELLOW, leds); + + for (byte i = 0; i < 6; i++) { + for (byte j = 0; j < 8; j++) { + byte selection; + do { + selection = random(0, NUM_LEDS); + } + while (leds[selection] != (CRGB) 0x000000); + + switch (i) { + case 0: + leds[selection] = BLUE; + break; + case 1: + leds[selection] = RED; + break; + case 2: + leds[selection] = GREEN; + break; + case 3: + leds[selection] = ORANGE; + break; + case 4: + leds[selection] = WHITE; + break; + case 5: + leds[selection] = YELLOW; + break; + } + } + } + FastLED.show(); +} +void loop() {}