Advertisement
Guest User

igrica

a guest
May 25th, 2016
188
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.83 KB | None | 0 0
  1. const int DelayConst = 500;
  2. int DelayDown=0;
  3. int Bounce = 3;
  4. long brojR = 0;
  5. int ledCounter[10];
  6. int State[4];
  7. int buttonState = 0;
  8. int led[4] = {2, 3, 4, 5 };
  9. int buttonNumber[4] = {0, 1, 2, 3};
  10. int AlarmLed [2] = {14,15};
  11. int button[4] ={6 ,7 , 8 , 9 };
  12. int flagUp = 1;
  13. int flagPush = 1;
  14. void setup() // ovo se izvodi SAMO jedanput
  15. {
  16.  
  17. for (int i = 0; i < 4; i++){
  18.   pinMode (led[i], OUTPUT);
  19.   }
  20.  
  21.  
  22. for (int j = 0; j < 2; j++){
  23.   pinMode ( AlarmLed[j], OUTPUT);
  24.   }
  25.  
  26. for (int z = 0; z < 4; z++){
  27.   pinMode( button[z], INPUT);
  28.   }
  29.  
  30. /* ovdje su postavljeni nasumiÄŤni brojevi(PINOVI) za led, alarmled i button
  31. oni se moraju postavljati kako je određeno na micro pro ili miniju , ovisno na kojem će se raditi*/
  32. }
  33.  
  34. void loop() // ovo se izvodi beskonaÄŤno puta
  35. {
  36. if (flagUp ==0 && Bounce < 10 && DelayDown < 200) { // povećava se broj "skokova" ledica, brže se izmjenjuju i diže se zastavica
  37.   Bounce++;
  38.   DelayDown += 20;
  39.   flagUp = 1;
  40.  
  41.   }
  42. for ( int t = 0; t < Bounce ; t++) {
  43.   brojR = random(0,4); //random broj između 0 i 3
  44.   ledCounter[t] = brojR; // pospremanje random broja
  45.   digitalWrite ( led[brojR], HIGH); // postavljanje da svijetla ledica za taj broj
  46.   delay (DelayConst - DelayDown); // delay koji počne od 0.5sec, pa se spušta po 0.02
  47.   digitalWrite ( led[brojR], LOW); //gašenje
  48.   delay (100);
  49. if ( t == (Bounce - 1)){ // postavljanje zastavice
  50.   flagUp = 0;
  51.   }
  52.    }
  53.  
  54.    // tri puta blicanje zelene ledice da obilježava da možemo početi igrati
  55. for (int v = 0; v < 3; v ++) {
  56.   digitalWrite ( AlarmLed [0], HIGH);
  57.   delay(100);
  58.   digitalWrite ( AlarmLed[0], LOW);
  59.   delay (100);
  60.   }
  61. // ovaj dio je za igru
  62. for ( int c = 0; c < Bounce; c++) { // koliko puta su ledice blicale, toliko puta možemo pogađati
  63.   while ( flagPush == 1 ){ // beskonačna petlja, postavljena zastavica. Čeka nas da pritisnemo gumb
  64.     for (int k = 0; k < 4; k++){ //vrti se petlja za svaki gumb, provjera njihova stanja
  65.       State[k] = digitalRead (button[k]); // 4 gumba, 4 stanja
  66.       buttonNumber[k]; // "redni" broj gumba
  67.       if ((State[k] == HIGH) &&( buttonNumber[k] == ledCounter[c])){ // ako je neki gumb pritisnut i ako je gumb za određenu ledicu pritisnut, izvodi se:
  68.         digitalWrite (AlarmLed[0], HIGH);  //zelena ledica svijetli
  69.         delay(100);
  70.         digitalWrite(AlarmLed[0], LOW); //gasi
  71.         delay(125);
  72.         flagPush = 0; // postavljanje zastavice u nulu tako da se izađe iz while petlje i ide u novu iteracije prve for petlje
  73.         }
  74.       if ((State[k] == HIGH) && (buttonNumber[k] != ledCounter[c])){
  75.         digitalWrite (AlarmLed[1], HIGH);
  76.         delay(1200);
  77.         digitalWrite (AlarmLed[1], LOW);
  78.         flagPush = 0;
  79.        
  80.         }
  81.       }
  82.     }
  83.   flagPush = 1; // vraćanje zastavice u 1 da opet može poceti while petlja
  84.   }
  85.  
  86.  
  87. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement