Advertisement
Guest User

Untitled

a guest
Apr 22nd, 2019
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.53 KB | None | 0 0
  1. #include <Adafruit_NeoPixel.h>
  2. #define PIN 2
  3. #define LICZBADIOD 9
  4.  
  5.  
  6. Adafruit_NeoPixel LED = Adafruit_NeoPixel(LICZBADIOD, PIN, NEO_GRB + NEO_KHZ800);
  7.  
  8. void setup()
  9. {
  10.   pinMode(3, INPUT_PULLUP);
  11.   pinMode(4, INPUT_PULLUP);
  12.   pinMode(5, INPUT_PULLUP);
  13.   pinMode(A5, OUTPUT);
  14.   Serial.begin(9600);
  15.   LED.begin();
  16.   marchewa();
  17. }
  18.  
  19. //Zmienne globalne
  20. int dioda = 4, jasno = 70;
  21. int t = 1, n = 0;
  22. int tab1[9];
  23. int tab2[9];
  24. void loop()
  25. {
  26.   LED.setBrightness(jasno);
  27.   Serial.print("dioda= ");
  28.   Serial.print(dioda);
  29.   Serial.print("\n");
  30.  
  31.   if (digitalRead(3) == LOW)
  32.   { Serial.print("LEWO \n");
  33.     if (dioda == 0)
  34.       dioda = 8;
  35.     else
  36.       dioda -= 1;
  37.  
  38.   }
  39.  
  40.  
  41.  
  42.   if (digitalRead(4) == LOW)
  43.   { Serial.print("PRAWO \n");
  44.     if (dioda == 8)
  45.       dioda = 0;
  46.     else
  47.       dioda += 1;
  48.  
  49.   }
  50.  
  51.  
  52.  
  53.   if (digitalRead(5) == LOW)
  54.   { Serial.print("ENTER \n");
  55.     ustaw(dioda);
  56.     check();
  57.  
  58.  
  59.     LED.setPixelColor(dioda, 255, 255, 0);
  60.     LED.show();
  61.     delay(90);
  62.  
  63.  
  64.   }
  65.  
  66.   kolortura();
  67.   ruch();
  68.   kolory();
  69.   // gracz pierwszy zielony = 64512
  70.   // Gracz drugi niebieski = 252
  71.  
  72.  
  73. }
  74. void kolortura() {
  75.   if (t == 1) {
  76.     if (tab2[dioda] == 1) {
  77.       LED.setPixelColor(dioda, 0, 255, 0);
  78.       LED.show();
  79.       delay(200);
  80.       LED.setPixelColor(dioda, 0, 0, 255);
  81.       LED.show();
  82.       delay(200);
  83.       return;
  84.     }
  85.     LED.setPixelColor(dioda, 0, 255, 0);
  86.     LED.show();
  87.     delay(200);
  88.     LED.setPixelColor(dioda, 0);
  89.     LED.show();
  90.     delay(200);
  91.   }
  92.   else if (t == 2) {
  93.     if (tab1[dioda] == 1) {
  94.       LED.setPixelColor(dioda, 0, 0, 255);
  95.       LED.show();
  96.       delay(200);
  97.       LED.setPixelColor(dioda, 0, 255, 0);
  98.       LED.show();
  99.       delay(200);
  100.       return;
  101.     }
  102.     LED.setPixelColor(dioda, 0, 0, 255);
  103.     LED.show();
  104.     delay(200);
  105.     LED.setPixelColor(dioda, 0);
  106.     LED.show();
  107.     delay(200);
  108.   }
  109. }
  110. void kolory() {
  111.   for (int i = 0; i <= 8; i++) {
  112.     if (tab1[i] == 1) {
  113.       LED.setPixelColor(i, 0, 255, 0);
  114.       LED.show();
  115.  
  116.     }
  117.     if (tab2[i] == 1) {
  118.       LED.setPixelColor(i, 0, 0, 255);
  119.       LED.show();
  120.  
  121.     }
  122.   }
  123. }
  124. void ustaw(int diodka) {
  125.   if (t == 1) {
  126.     if (tab2[diodka] == 0) {
  127.       tab1[diodka] = 1;
  128.       t = 2;
  129.       return;
  130.     }
  131.     else if (tab1[diodka] = 1) {
  132.       wygrana(3);
  133.     }
  134.   }
  135.   if (t == 2) {
  136.     if (tab1[diodka] == 0) {
  137.       tab2[diodka] = 1;
  138.       t = 1;
  139.       return;
  140.     }
  141.     else {
  142.       wygrana(3);
  143.     }
  144.   }
  145. }
  146.  
  147. void ruch() {
  148.   for (int i = 0; i <= 8; i++) {
  149.     if ( LED.getPixelColor(i) == 64512) {
  150.       tab1[i] = 1;
  151.     }
  152.     if (LED.getPixelColor(i) == 252) {
  153.       tab2[i] = 1;
  154.     }
  155.  
  156.   }
  157. }
  158.  
  159.  
  160.  
  161. void check() {
  162.   Serial.print("Sprawdza Gracz 2");
  163.   if (tab1[0] == 1 && tab1[1] == 1 && tab1[2] == 1) wygrana(1);
  164.   else if (tab1[3] == 1 && tab1[4] == 1 && tab1[5] == 1) wygrana(1);
  165.   else if (tab1[6] == 1 && tab1[7] == 1 && tab1[8] == 1) wygrana(1);
  166.   else if (tab1[0] == 1 && tab1[3] == 1 && tab1[6] == 1) wygrana(1);
  167.   else if (tab1[1] == 1 && tab1[4] == 1 && tab1[7] == 1) wygrana(1);
  168.   else if (tab1[2] == 1 && tab1[5] == 1 && tab1[8] == 1) wygrana(1);
  169.   else if (tab1[0] == 1 && tab1[4] == 1 && tab1[8] == 1) wygrana(1);
  170.   else if (tab1[2] == 1 && tab1[4] == 1 && tab1[6] == 1) wygrana(1);
  171.   else if (tab2[0] == 1 && tab2[1] == 1 && tab2[2] == 1) wygrana(2);
  172.   else if (tab2[3] == 1 && tab2[4] == 1 && tab2[5] == 1) wygrana(2);
  173.   else if (tab2[6] == 1 && tab2[7] == 1 && tab2[8] == 1) wygrana(2);
  174.   else if (tab2[0] == 1 && tab2[3] == 1 && tab2[6] == 1) wygrana(2);
  175.   else if (tab2[1] == 1 && tab2[4] == 1 && tab2[7] == 1) wygrana(2);
  176.   else if (tab2[2] == 1 && tab2[5] == 1 && tab2[8] == 1) wygrana(2);
  177.   else if (tab2[0] == 1 && tab2[4] == 1 && tab2[8] == 1) wygrana(2);
  178.   else if (tab2[2] == 1 && tab2[4] == 1 && tab2[6] == 1) wygrana(2);
  179.   else {
  180.  
  181.     n++;
  182.     Serial.print("liczba = ");
  183.     Serial.print(n);
  184.     Serial.print(" /n");
  185.     if (n == 9) {
  186.       wygrana(4);
  187.     }
  188.   }
  189. }
  190.  
  191.  
  192.  
  193.  
  194.  
  195. int wygrana(int x) {
  196.   if (x == 1) {
  197.     for (int i = 0; i <= 9; i++) {
  198.       chase(LED.Color(0, 255, 0));
  199.       delay(75);
  200.  
  201.     }
  202.     clean();
  203.   }
  204.   if (x == 2) {
  205.     for (int i = 0; i <= 9; i++) {
  206.       chase(LED.Color(0, 0, 255));
  207.       delay(75);
  208.     }
  209.     clean();
  210.   }
  211.   if ( x == 3) {
  212.     for (int a = 0; a <= 3; a++) {
  213.       LED.setPixelColor(0, 255, 0, 0);
  214.       LED.setPixelColor(1, 255, 0, 0);
  215.       LED.setPixelColor(2, 255, 0, 0);
  216.       LED.setPixelColor(3, 255, 0, 0);
  217.       LED.setPixelColor(4, 255, 0, 0);
  218.       LED.setPixelColor(5, 255, 0, 0);
  219.       LED.setPixelColor(6, 255, 0, 0);
  220.       LED.setPixelColor(7, 255, 0, 0);
  221.       LED.setPixelColor(8, 255, 0, 0);
  222.       LED.show();
  223.       delay(75);
  224.  
  225.       LED.clear();
  226.       LED.show();
  227.       delay(100);
  228.     }
  229.   }
  230.   if (x == 4) {
  231.     for (int i = 0; i <= 3; i++) {
  232.       chase(LED.Color(255, 255, 255));
  233.       delay(400);
  234.  
  235.     }
  236.     clean();
  237.   }
  238. }
  239. void clean() {
  240.   for (int i = 0; i <= 8; i++) {
  241.     tab1[i] = 0;
  242.     tab2[i] = 0;
  243.   }
  244.   LED.clear();
  245.   dioda = 4;
  246.   t = 2;
  247. }
  248.  
  249. void marchewa() {
  250.   LED.setBrightness(jasno);
  251.   chase(LED.Color(255, 0, 0)); // Red
  252.   chase(LED.Color(0, 255, 0)); // Green
  253.   chase(LED.Color(0, 0, 255)); // Blue
  254.   delay(200);
  255.   return;
  256. }
  257.  
  258. static void chase(uint32_t c) {
  259.   for (uint16_t i = 0; i < LED.numPixels() + 4; i++) {
  260.     LED.setPixelColor(i  , c); // Draw new pixel
  261.     LED.setPixelColor(i - 4, 0); // Erase pixel a few steps back
  262.     LED.show();
  263.     digitalWrite(A5, LOW);
  264.     delay(25);
  265.     digitalWrite(A5, HIGH);
  266.   }
  267. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement