Игра на Arduino Охотник

Elektro
Offline
Зарегистрирован: 10.02.2012

Запилил интересную игру на ардуинке, можно потренироваться в реакции :)

Схема:

Скетч:

#define target 6 // red led pin 
int pin = 0;    // random choose for turn on led
#define difficulty_level  2 //1 - hard,2 - medium,3 - simple
int long level = 100000*difficulty_level;
void setup() {
  
  for(int i = 2; i<= 9; i++) 
    {
     pinMode(i, OUTPUT); // configurate pin on OUTPUT in cycle
     digitalWrite(i, 0);
    }
  pinMode(10,INPUT); // configurate pin on INPUT for connect button
  digitalWrite(10,1); // TURN in PULLuo resistor on pin 10

}
unsigned long long last_time;  //var for save time


void flub()  //void for blink leds when player lose :(
{
  for(int j = 1; j <=5; j++)
  {
    for(int i = 2; i <=5; i++)
      digitalWrite(i, 1);
      delay(300);
    for(int i = 2; i <=5; i++)
      digitalWrite(i, 0);
    for(int i = 7; i <=9; i++)
      digitalWrite(i, 1);
      delay(300);
    for(int i = 7; i <=9; i++)
      digitalWrite(i, 0);
    
  }
  
}
void win() //void for blinf leds when player win :)
{
  for(int j = 1; j <=5; j++){
  for(int i = 2; i <=9; i++)
  digitalWrite(i, 1);
  delay(300);
  for(int i = 2; i <=9; i++)
  digitalWrite(i, 0);
  delay(300);
  }
}



void loop() {
  pin = random(2,9); // random choose pin
  digitalWrite(pin, 1); // turn on this pin
  last_time = micros();  // remember time
  while(micros() - last_time <= level) // cycle for wait 
  {
   // Serial.println(micros());
    if (!digitalRead(10)) // if button pushed
    {
      if(pin == target) // and if player push button when targed led was swich on
      {
        digitalWrite(pin, 0);  //swich off led
        win();  //Launch void win
        break;  // escape 
      }
      else 
      {
        digitalWrite(pin, 0); //swich off led
        flub();  //Launch void flub
        break;  // escape 
      }
    }
  }
  digitalWrite(pin, 0); //swich off led
}

Суть игры:

светодиоды переключаются в случайном порядке, когда загорится красный светодиод нужно успеть нажать на кнопку (произвести выстрел) если пал тогда начинают мигать все светодиоды, если нет то перемигиваются синие светодиоды. 

И на десерт видео:)

https://youtu.be/7xdI1F2H4Rg

В принципе игру можно доделать для двоих игроков, если вам интересно могу этим занятся :)

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Очень интересно!!!Сделайте для двоих игроков.  *пошел копировать*

 

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

А можно схему не на ардуино мини, а на уно?

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

а то не понятно, где какой порт

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

НЕ работает

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

куда кнопку то подключать?
 

Araris
Offline
Зарегистрирован: 09.11.2012

svetly пишет:

куда кнопку то подключать?
 

   if (!digitalRead(10)) // if button pushed

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Заработало

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

я сам наугад подключил

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

я сам наугад подключил

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Спасибо большое, пойду играться)))

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Только у меня почему-то медленнее мигают светодиоды, чем на видео.

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Только у меня почему-то медленнее мигают светодиоды, чем на видео.

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Нашел, можно сложость менять

Araris
Offline
Зарегистрирован: 09.11.2012

Да-да, держите нас в курсе ))).

svetly
svetly аватар
Offline
Зарегистрирован: 23.12.2016

Теперь дополнил игру пьезоэлементом. Когда выйгрываешь или проигрываешь, происходит звуковой сигнал. Очень жду версии для двух игроков ( желательно с счетиком выйгрышей). Будет очень интересно!!!!

lerochka11101995
Offline
Зарегистрирован: 27.05.2017

А скиньте скетч программы, где вы подключили пьезоэлемент.