Advertisement
Guest User

Riziko Arduino

a guest
Nov 21st, 2018
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.79 KB | None | 0 0
  1. #include <LiquidCrystal.h>
  2.  
  3. int duzina;
  4. int x = 0, y = 0, i, j, br, tmp, manji;
  5. int brKockica1 = 1;
  6. int brKockica2 = 1;
  7. int prvi[6], drugi[6];
  8.  
  9. int tenkic1 = 0, tenkic2 = 0;
  10.  
  11. byte taster, prev = 0;
  12. bool set = false;
  13. bool izvlacenje1Kraj = false;
  14. typedef enum Stanje {biramBroj1, biramBroj2, izvlacim1, izvlacim2, bitka};
  15. Stanje stanje = biramBroj1;
  16. LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
  17.  
  18.  
  19. byte ocitaj_taster()
  20. {
  21.   int tmp = analogRead(0); //stanje tastera se ocitava preko
  22.   //analognog ulaza 0
  23.   if (tmp > 635 && tmp < 645) //SELECT
  24.     return 1;
  25.   if (tmp > 405 && tmp < 415) //LEFT
  26.     return 2;
  27.   if (tmp > 95 && tmp < 105) //UP
  28.     return 3;
  29.   if (tmp > 252 && tmp < 262) //DOWN
  30.     return 4;
  31.   if (tmp < 5) //RIGHT
  32.     return 5;
  33.   return 0; //nije pritisnut nijedan od tastera
  34. }
  35. bool selectPritisnuto()
  36. {
  37.   taster = ocitaj_taster();
  38.   delay(50);
  39.   if (taster != prev && taster == 1)
  40.   {
  41.     prev = taster;
  42.     return true;
  43.   }
  44.   prev = taster;
  45.   return false;
  46.  
  47. }
  48. void setup()
  49. {
  50.   Serial.begin(9600);
  51.   lcd.begin(16, 2);
  52.   lcd.clear();
  53.   lcd.setCursor(x, y);
  54. }
  55.  
  56. void loop()
  57. {
  58.   taster = ocitaj_taster();
  59.   if (taster != prev)
  60.   {
  61.     delay(50);
  62.     prev = taster;
  63.     if (stanje == biramBroj1)
  64.     {
  65.       if (taster == 3)
  66.       {
  67.         if (brKockica1 == 6)
  68.           brKockica1 = 1;
  69.         else brKockica1++;
  70.       }
  71.       else if (taster == 4)
  72.       {
  73.         if (brKockica1 == 1)
  74.           brKockica1 = 6;
  75.         else
  76.           brKockica1--;
  77.       }
  78.     }
  79.     else if (stanje == biramBroj2)
  80.     {
  81.       if (taster == 3)
  82.       {
  83.         if (brKockica2 == 6)
  84.           brKockica2 = 1;
  85.         else brKockica2++;
  86.       }
  87.       else if (taster == 4)
  88.       {
  89.         if (brKockica2 == 1)
  90.           brKockica2 = 6;
  91.         else
  92.           brKockica2--;
  93.       }
  94.     }
  95.  
  96.     if (taster == 1)
  97.     {
  98.       if (stanje == biramBroj1)
  99.         stanje = izvlacim1;
  100.       else if (stanje == biramBroj2)
  101.         stanje = izvlacim2;
  102.     }
  103.  
  104.   }
  105.   switch (stanje)
  106.   {
  107.     case biramBroj1:
  108.       {
  109.         lcd.setCursor(0, 0);
  110.         lcd.print(brKockica1);
  111.       } break;
  112.  
  113.     case izvlacim1:
  114.       {
  115.         lcd.clear();
  116.         br = 1;
  117.         for (i = 0; i < brKockica1; i++)
  118.         {
  119.           while (1)
  120.           {
  121.             lcd.setCursor(i, 0);
  122.             lcd.print(br);
  123.             if (selectPritisnuto())
  124.             {
  125.               prvi[i] = br;
  126.               break;
  127.               delay(100);
  128.             }
  129.             br++;
  130.             if (br == 7)
  131.               br = 1;
  132.             delay(100);
  133.           }
  134.         }
  135.         stanje = biramBroj2;
  136.         for (i = 0; i < brKockica1; i++)
  137.           Serial.print(prvi[i]);
  138.         Serial.println(' ');
  139.       } break;
  140.  
  141.     case biramBroj2:
  142.       {
  143.         lcd.setCursor(0, 1);
  144.         lcd.print(brKockica2);
  145.       } break;
  146.  
  147.     case izvlacim2:
  148.       {
  149.         br = 1;
  150.         for (i = 0; i < brKockica2; i++)
  151.         {
  152.           while (1)
  153.           {
  154.             lcd.setCursor(i, 1);
  155.             lcd.print(br);
  156.             if (selectPritisnuto())
  157.             {
  158.               drugi[i] = br;
  159.               break;
  160.               delay(100);
  161.             }
  162.             br++;
  163.             if (br == 7)
  164.               br = 1;
  165.             delay(100);
  166.           }
  167.         }
  168.         stanje = bitka;
  169.         for (i = 0; i < brKockica2; i++)
  170.           Serial.print(drugi[i]);
  171.         Serial.println(' ');
  172.       } break;
  173.  
  174.     case bitka:
  175.       {
  176.         for (i = 0; i < brKockica1 - 1; i++)
  177.           for (j = i; j < brKockica1; j++)
  178.           {
  179.             if (prvi[i] < prvi[j])
  180.             {
  181.               tmp = prvi[i];
  182.               prvi[i] = prvi[j];
  183.               prvi[j] = tmp;
  184.             }
  185.           }
  186.  
  187.  
  188.         for (i = 0; i < brKockica2 - 1; i++)
  189.           for (j = i; j < brKockica2; j++)
  190.           {
  191.             if (drugi[i] < drugi[j])
  192.             {
  193.               tmp = drugi[i];
  194.               drugi[i] = drugi[j];
  195.               drugi[j] = tmp;
  196.             }
  197.           }
  198.  
  199.         for (i = 0; i < brKockica1; i++)
  200.           Serial.print(prvi[i]);
  201.         Serial.println(' ');
  202.  
  203.         for (i = 0; i < brKockica2; i++)
  204.           Serial.print(drugi[i]);
  205.         Serial.println(' ');
  206.  
  207.         manji = min(brKockica1, brKockica2);
  208.  
  209.         for (i = 0; i < manji; i++)
  210.         {
  211.           if (prvi[i] < drugi[i])
  212.             tenkic1++;
  213.           else if (prvi[i] == drugi[i])
  214.             tenkic1++;
  215.           else if (prvi[i] > drugi[i])
  216.             tenkic2++;
  217.         }
  218.         lcd.clear();
  219.         lcd.setCursor(0, 0);
  220.         lcd.print("Prvi gubi ");
  221.         lcd.print(tenkic1);
  222.  
  223.         lcd.setCursor(0, 1);
  224.         lcd.print("Drugi gubi ");
  225.         lcd.print(tenkic2);
  226.  
  227.         while (1);
  228.       } break;
  229.   }
  230.  
  231.  
  232.  
  233.   delay(50);
  234. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement