Игра "бомба" на ардуино

kva4991
Offline
Зарегистрирован: 22.11.2013

Игра заключается в следующем: игроки становятся в круг и передают бомбу по кругу, при передаче бомбы,игрок отвечает на вопрос ведущего, у кого бомба в руках взорвётся-выбывает.



Есть 4 кнопки ,первая запускает цикл заново(равносильно ресету), 2,3 и 4 кнопки устанавливают верхний порог времени взрыва,расчитывающееся рандомно 1, 1.5 , 3 минут соответственно.

всё время до взрыва работает таймер типа пип-пип-пип.



вот скетч,который есть на данный момент:





const int din = 8; // пин светодиода

int ledState = LOW; // текущее состояние светодиода

long previousMillis = 0; // переменная для хранения времени

long intPause = 500; // интервал между звуком

int intBeep=150; //время звучания

void setup() 

{

pinMode(din, OUTPUT);

}



void loop()

{

unsigned long currentMillis = millis();

if(currentMillis - previousMillis > intPause) //проверяем не пора ли пиликнуть



previousMillis = currentMillis; //сохранили последнее время

if (ledState == LOW) ledState = HIGH; else ledState = LOW;// включаем или выключаем в зависимости от текущего состояния 

if (ledState==HIGH) 

{

tone(din,2000,intBeep);

}

}

}





Главная проблема на этот момент:звук взрыва,долго пытался его сделать похожим на "бууум"

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

Клапауций
Offline
Зарегистрирован: 10.02.2013

не проще рандомно отстреливать одного из играющих - оставшиеся в живых оплачивают пышные похороны и празднуют принятие в клуб нового члена?

kva4991
Offline
Зарегистрирован: 22.11.2013

чтото не смешно...,лучше помогите пожалуйста со звуком взрыва.

Клапауций
Offline
Зарегистрирован: 10.02.2013

kva4991 пишет:

чтото не смешно...,лучше помогите пожалуйста со звуком взрыва.

БУМ!

kva4991
Offline
Зарегистрирован: 22.11.2013

а как это в скетч написать?

Kolchugin
Offline
Зарегистрирован: 15.12.2013

Есть библиотека, по проигрыванию wav файлов. Посмотрите, может быть это то что вам нужно: http://cyber-place.ru/showthread.php?t=274&page=1

kva4991
Offline
Зарегистрирован: 22.11.2013

const int din = 8; //динамик

const int go = 2; //кнопка начала игры

const int but1 = 3; // время игры до 1 минуты

const int but2 = 4; //время игры до 1.5 минуты

const int but3 = 5; //время игры до 3 минут

const int motor = 7; //моторчик

const int flash = 6; // светодиод



int ledState = LOW; // текущее состояние таймера

long previousMillis = 0; // переменная для хранения времени



long intPause = 500; // интервал между звуком



int intBeep=150; //время звучания



unsigned long currentMillis = millis();



void setup()



{



  pinMode(din, OUTPUT);

  pinMode(motor, OUTPUT);

  pinMode(flash, OUTPUT);

}







void loop()



{





  if ((but1 or but2 or but3)==LOW){

    return;

  }

  else{

    if(currentMillis - previousMillis > intPause) //проверяем не пора ли пиликнуть



    {



      previousMillis = currentMillis; //сохранили последнее время



      if (ledState == LOW) ledState = HIGH;

      else ledState = LOW;// включаем или выключаем в зависимости от текущего состояния



      if (ledState==HIGH)

      {

        tone(din,2000,intBeep);

      }



    }







  }

}

 

kva4991
Offline
Зарегистрирован: 22.11.2013

если кому интересно,новости по теме выкладываю вот сюда:

http://forum.amperka.ru/threads/%D0%98%D0%B3%D1%80%D0%B0-%D0%B1%D0%BE%D0...