Игра на Arduino Охотник
- Войдите на сайт для отправки комментариев
Пт, 23/12/2016 - 16:06
Запилил интересную игру на ардуинке, можно потренироваться в реакции :)
Схема:
Скетч:
#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
}
Суть игры:
светодиоды переключаются в случайном порядке, когда загорится красный светодиод нужно успеть нажать на кнопку (произвести выстрел) если пал тогда начинают мигать все светодиоды, если нет то перемигиваются синие светодиоды.
И на десерт видео:)
В принципе игру можно доделать для двоих игроков, если вам интересно могу этим занятся :)


Очень интересно!!!Сделайте для двоих игроков. *пошел копировать*
А можно схему не на ардуино мини, а на уно?
а то не понятно, где какой порт
НЕ работает
куда кнопку то подключать?
куда кнопку то подключать?
if(!digitalRead(10))// if button pushedЗаработало
я сам наугад подключил
я сам наугад подключил
Спасибо большое, пойду играться)))
Только у меня почему-то медленнее мигают светодиоды, чем на видео.
Только у меня почему-то медленнее мигают светодиоды, чем на видео.
Нашел, можно сложость менять
Да-да, держите нас в курсе ))).
Теперь дополнил игру пьезоэлементом. Когда выйгрываешь или проигрываешь, происходит звуковой сигнал. Очень жду версии для двух игроков ( желательно с счетиком выйгрышей). Будет очень интересно!!!!
А скиньте скетч программы, где вы подключили пьезоэлемент.