Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define BUZZER_PIN 13 // пин с пищалкой
- #define PLAYER_COUNT 2 // количество игроков-ковбоев
- int buttonPins[PLAYER_COUNT] = {0, 1};
- int ledPins[PLAYER_COUNT] = {11, 12};
- boolean lifes[PLAYER_COUNT*3] = {0,0,0,0,0,0};
- int firstPL = 0;
- int secondPL = 3;
- void setup()
- {
- pinMode(BUZZER_PIN, OUTPUT);
- for (int player = 0; player< PLAYER_COUNT; ++player)
- {
- pinMode(ledPins[player], OUTPUT);
- pinMode(buttonPins[player], INPUT_PULLUP);
- }
- for (int i = 0; i < PLAYER_COUNT*3; i++)
- {
- pinMode(2+i, OUTPUT);
- digitalWrite(2+i, lifes[i]);
- }
- firstPL = constrain(firstPL, 0, 2);
- secondPL = constrain(secondPL, 3, 5);
- }
- void loop()
- {
- if(firstPL < 3 && secondPL < 6)
- {
- delay(random(2000, 7000));
- tone(BUZZER_PIN, 3000, 250); // 3 килогерца, 250 миллисекунд
- for (int player = 0; ;player = (player+1) % PLAYER_COUNT)
- {
- // если игрок номер «player» нажал кнопку...
- if (!digitalRead(buttonPins[player]))
- {
- // ...включаем его светодиод и сигнал победы на 1 сек
- digitalWrite(ledPins[player], HIGH);
- tone(BUZZER_PIN, 4000, 1000);
- delay(1000);
- digitalWrite(ledPins[player], LOW);
- if(player == 1)
- {
- lifes[secondPL] = 1;
- ++secondPL;
- }
- if(player == 0)
- {
- lifes[firstPL] = 1;
- ++firstPL;
- }
- for(int i = 0; i < PLAYER_COUNT*3; i++)
- digitalWrite(2+i,lifes[i]);
- break; // Есть победитель! Выходим (англ. break) из цикла
- }
- }
- }
- else
- tone(BUZZER_PIN, 4000);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement