Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <LiquidCrystal.h>
- int duzina;
- int x = 0, y = 0, i, j, br, tmp, manji;
- int brKockica1 = 1;
- int brKockica2 = 1;
- int prvi[6], drugi[6];
- int tenkic1 = 0, tenkic2 = 0;
- byte taster, prev = 0;
- bool set = false;
- bool izvlacenje1Kraj = false;
- typedef enum Stanje {biramBroj1, biramBroj2, izvlacim1, izvlacim2, bitka};
- Stanje stanje = biramBroj1;
- LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
- byte ocitaj_taster()
- {
- int tmp = analogRead(0); //stanje tastera se ocitava preko
- //analognog ulaza 0
- if (tmp > 635 && tmp < 645) //SELECT
- return 1;
- if (tmp > 405 && tmp < 415) //LEFT
- return 2;
- if (tmp > 95 && tmp < 105) //UP
- return 3;
- if (tmp > 252 && tmp < 262) //DOWN
- return 4;
- if (tmp < 5) //RIGHT
- return 5;
- return 0; //nije pritisnut nijedan od tastera
- }
- bool selectPritisnuto()
- {
- taster = ocitaj_taster();
- delay(50);
- if (taster != prev && taster == 1)
- {
- prev = taster;
- return true;
- }
- prev = taster;
- return false;
- }
- void setup()
- {
- Serial.begin(9600);
- lcd.begin(16, 2);
- lcd.clear();
- lcd.setCursor(x, y);
- }
- void loop()
- {
- taster = ocitaj_taster();
- if (taster != prev)
- {
- delay(50);
- prev = taster;
- if (stanje == biramBroj1)
- {
- if (taster == 3)
- {
- if (brKockica1 == 6)
- brKockica1 = 1;
- else brKockica1++;
- }
- else if (taster == 4)
- {
- if (brKockica1 == 1)
- brKockica1 = 6;
- else
- brKockica1--;
- }
- }
- else if (stanje == biramBroj2)
- {
- if (taster == 3)
- {
- if (brKockica2 == 6)
- brKockica2 = 1;
- else brKockica2++;
- }
- else if (taster == 4)
- {
- if (brKockica2 == 1)
- brKockica2 = 6;
- else
- brKockica2--;
- }
- }
- if (taster == 1)
- {
- if (stanje == biramBroj1)
- stanje = izvlacim1;
- else if (stanje == biramBroj2)
- stanje = izvlacim2;
- }
- }
- switch (stanje)
- {
- case biramBroj1:
- {
- lcd.setCursor(0, 0);
- lcd.print(brKockica1);
- } break;
- case izvlacim1:
- {
- lcd.clear();
- br = 1;
- for (i = 0; i < brKockica1; i++)
- {
- while (1)
- {
- lcd.setCursor(i, 0);
- lcd.print(br);
- if (selectPritisnuto())
- {
- prvi[i] = br;
- break;
- delay(100);
- }
- br++;
- if (br == 7)
- br = 1;
- delay(100);
- }
- }
- stanje = biramBroj2;
- for (i = 0; i < brKockica1; i++)
- Serial.print(prvi[i]);
- Serial.println(' ');
- } break;
- case biramBroj2:
- {
- lcd.setCursor(0, 1);
- lcd.print(brKockica2);
- } break;
- case izvlacim2:
- {
- br = 1;
- for (i = 0; i < brKockica2; i++)
- {
- while (1)
- {
- lcd.setCursor(i, 1);
- lcd.print(br);
- if (selectPritisnuto())
- {
- drugi[i] = br;
- break;
- delay(100);
- }
- br++;
- if (br == 7)
- br = 1;
- delay(100);
- }
- }
- stanje = bitka;
- for (i = 0; i < brKockica2; i++)
- Serial.print(drugi[i]);
- Serial.println(' ');
- } break;
- case bitka:
- {
- for (i = 0; i < brKockica1 - 1; i++)
- for (j = i; j < brKockica1; j++)
- {
- if (prvi[i] < prvi[j])
- {
- tmp = prvi[i];
- prvi[i] = prvi[j];
- prvi[j] = tmp;
- }
- }
- for (i = 0; i < brKockica2 - 1; i++)
- for (j = i; j < brKockica2; j++)
- {
- if (drugi[i] < drugi[j])
- {
- tmp = drugi[i];
- drugi[i] = drugi[j];
- drugi[j] = tmp;
- }
- }
- for (i = 0; i < brKockica1; i++)
- Serial.print(prvi[i]);
- Serial.println(' ');
- for (i = 0; i < brKockica2; i++)
- Serial.print(drugi[i]);
- Serial.println(' ');
- manji = min(brKockica1, brKockica2);
- for (i = 0; i < manji; i++)
- {
- if (prvi[i] < drugi[i])
- tenkic1++;
- else if (prvi[i] == drugi[i])
- tenkic1++;
- else if (prvi[i] > drugi[i])
- tenkic2++;
- }
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print("Prvi gubi ");
- lcd.print(tenkic1);
- lcd.setCursor(0, 1);
- lcd.print("Drugi gubi ");
- lcd.print(tenkic2);
- while (1);
- } break;
- }
- delay(50);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement