Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <Adafruit_NeoPixel.h>
- #define PIN 2
- #define LICZBADIOD 9
- Adafruit_NeoPixel LED = Adafruit_NeoPixel(LICZBADIOD, PIN, NEO_GRB + NEO_KHZ800);
- void setup()
- {
- pinMode(3, INPUT_PULLUP);
- pinMode(4, INPUT_PULLUP);
- pinMode(5, INPUT_PULLUP);
- pinMode(A5, OUTPUT);
- Serial.begin(9600);
- LED.begin();
- marchewa();
- }
- //Zmienne globalne
- int dioda = 4, jasno = 70;
- int t = 1, n = 0;
- int tab1[9];
- int tab2[9];
- void loop()
- {
- LED.setBrightness(jasno);
- Serial.print("dioda= ");
- Serial.print(dioda);
- Serial.print("\n");
- if (digitalRead(3) == LOW)
- { Serial.print("LEWO \n");
- if (dioda == 0)
- dioda = 8;
- else
- dioda -= 1;
- }
- if (digitalRead(4) == LOW)
- { Serial.print("PRAWO \n");
- if (dioda == 8)
- dioda = 0;
- else
- dioda += 1;
- }
- if (digitalRead(5) == LOW)
- { Serial.print("ENTER \n");
- ustaw(dioda);
- check();
- LED.setPixelColor(dioda, 255, 255, 0);
- LED.show();
- delay(90);
- }
- kolortura();
- ruch();
- kolory();
- // gracz pierwszy zielony = 64512
- // Gracz drugi niebieski = 252
- }
- void kolortura() {
- if (t == 1) {
- if (tab2[dioda] == 1) {
- LED.setPixelColor(dioda, 0, 255, 0);
- LED.show();
- delay(200);
- LED.setPixelColor(dioda, 0, 0, 255);
- LED.show();
- delay(200);
- return;
- }
- LED.setPixelColor(dioda, 0, 255, 0);
- LED.show();
- delay(200);
- LED.setPixelColor(dioda, 0);
- LED.show();
- delay(200);
- }
- else if (t == 2) {
- if (tab1[dioda] == 1) {
- LED.setPixelColor(dioda, 0, 0, 255);
- LED.show();
- delay(200);
- LED.setPixelColor(dioda, 0, 255, 0);
- LED.show();
- delay(200);
- return;
- }
- LED.setPixelColor(dioda, 0, 0, 255);
- LED.show();
- delay(200);
- LED.setPixelColor(dioda, 0);
- LED.show();
- delay(200);
- }
- }
- void kolory() {
- for (int i = 0; i <= 8; i++) {
- if (tab1[i] == 1) {
- LED.setPixelColor(i, 0, 255, 0);
- LED.show();
- }
- if (tab2[i] == 1) {
- LED.setPixelColor(i, 0, 0, 255);
- LED.show();
- }
- }
- }
- void ustaw(int diodka) {
- if (t == 1) {
- if (tab2[diodka] == 0) {
- tab1[diodka] = 1;
- t = 2;
- return;
- }
- else if (tab1[diodka] = 1) {
- wygrana(3);
- }
- }
- if (t == 2) {
- if (tab1[diodka] == 0) {
- tab2[diodka] = 1;
- t = 1;
- return;
- }
- else {
- wygrana(3);
- }
- }
- }
- void ruch() {
- for (int i = 0; i <= 8; i++) {
- if ( LED.getPixelColor(i) == 64512) {
- tab1[i] = 1;
- }
- if (LED.getPixelColor(i) == 252) {
- tab2[i] = 1;
- }
- }
- }
- void check() {
- Serial.print("Sprawdza Gracz 2");
- if (tab1[0] == 1 && tab1[1] == 1 && tab1[2] == 1) wygrana(1);
- else if (tab1[3] == 1 && tab1[4] == 1 && tab1[5] == 1) wygrana(1);
- else if (tab1[6] == 1 && tab1[7] == 1 && tab1[8] == 1) wygrana(1);
- else if (tab1[0] == 1 && tab1[3] == 1 && tab1[6] == 1) wygrana(1);
- else if (tab1[1] == 1 && tab1[4] == 1 && tab1[7] == 1) wygrana(1);
- else if (tab1[2] == 1 && tab1[5] == 1 && tab1[8] == 1) wygrana(1);
- else if (tab1[0] == 1 && tab1[4] == 1 && tab1[8] == 1) wygrana(1);
- else if (tab1[2] == 1 && tab1[4] == 1 && tab1[6] == 1) wygrana(1);
- else if (tab2[0] == 1 && tab2[1] == 1 && tab2[2] == 1) wygrana(2);
- else if (tab2[3] == 1 && tab2[4] == 1 && tab2[5] == 1) wygrana(2);
- else if (tab2[6] == 1 && tab2[7] == 1 && tab2[8] == 1) wygrana(2);
- else if (tab2[0] == 1 && tab2[3] == 1 && tab2[6] == 1) wygrana(2);
- else if (tab2[1] == 1 && tab2[4] == 1 && tab2[7] == 1) wygrana(2);
- else if (tab2[2] == 1 && tab2[5] == 1 && tab2[8] == 1) wygrana(2);
- else if (tab2[0] == 1 && tab2[4] == 1 && tab2[8] == 1) wygrana(2);
- else if (tab2[2] == 1 && tab2[4] == 1 && tab2[6] == 1) wygrana(2);
- else {
- n++;
- Serial.print("liczba = ");
- Serial.print(n);
- Serial.print(" /n");
- if (n == 9) {
- wygrana(4);
- }
- }
- }
- int wygrana(int x) {
- if (x == 1) {
- for (int i = 0; i <= 9; i++) {
- chase(LED.Color(0, 255, 0));
- delay(75);
- }
- clean();
- }
- if (x == 2) {
- for (int i = 0; i <= 9; i++) {
- chase(LED.Color(0, 0, 255));
- delay(75);
- }
- clean();
- }
- if ( x == 3) {
- for (int a = 0; a <= 3; a++) {
- LED.setPixelColor(0, 255, 0, 0);
- LED.setPixelColor(1, 255, 0, 0);
- LED.setPixelColor(2, 255, 0, 0);
- LED.setPixelColor(3, 255, 0, 0);
- LED.setPixelColor(4, 255, 0, 0);
- LED.setPixelColor(5, 255, 0, 0);
- LED.setPixelColor(6, 255, 0, 0);
- LED.setPixelColor(7, 255, 0, 0);
- LED.setPixelColor(8, 255, 0, 0);
- LED.show();
- delay(75);
- LED.clear();
- LED.show();
- delay(100);
- }
- }
- if (x == 4) {
- for (int i = 0; i <= 3; i++) {
- chase(LED.Color(255, 255, 255));
- delay(400);
- }
- clean();
- }
- }
- void clean() {
- for (int i = 0; i <= 8; i++) {
- tab1[i] = 0;
- tab2[i] = 0;
- }
- LED.clear();
- dioda = 4;
- t = 2;
- }
- void marchewa() {
- LED.setBrightness(jasno);
- chase(LED.Color(255, 0, 0)); // Red
- chase(LED.Color(0, 255, 0)); // Green
- chase(LED.Color(0, 0, 255)); // Blue
- delay(200);
- return;
- }
- static void chase(uint32_t c) {
- for (uint16_t i = 0; i < LED.numPixels() + 4; i++) {
- LED.setPixelColor(i , c); // Draw new pixel
- LED.setPixelColor(i - 4, 0); // Erase pixel a few steps back
- LED.show();
- digitalWrite(A5, LOW);
- delay(25);
- digitalWrite(A5, HIGH);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement