СДЕЛАЙТЕ СВОИ УРОКИ ЕЩЁ ЭФФЕКТИВНЕЕ, А ЖИЗНЬ СВОБОДНЕЕ

Благодаря готовым учебным материалам для работы в классе и дистанционно

Скидки до 50 % на комплекты
только до

Готовые ключевые этапы урока всегда будут у вас под рукой

Организационный момент

Проверка знаний

Объяснение материала

Закрепление изученного

Итоги урока

Кнопочные ковбои (игра для Ардуино)

Категория: Информатика

Нажмите, чтобы узнать подробности

Презентация для проведения занятий по образовательной робототехнике.

Просмотр содержимого документа
«Кнопочные ковбои (игра для Ардуино)»

Кнопочные ковбои.   простая игра на скорость реакции, кто первый спустил курок, тот и победил

Кнопочные ковбои.

простая игра на скорость реакции, кто первый спустил курок, тот и победил

int buttonPins[2] = {3, 13};//кнопки int ledPins[2] = {9, 11};//светодиоды int mas[2] = {0,0};//счет void setup() {  pinMode(12, OUTPUT); //пищалка  for (int player = 0; player  // при помощи квадратных скобок получают значение в массиве  // под указанным в них номером. Нумерация начинается с нуля  pinMode(ledPins[player], OUTPUT);  pinMode(buttonPins[player], INPUT_PULLUP);  }  Serial.begin(9600); }

int buttonPins[2] = {3, 13};//кнопки

int ledPins[2] = {9, 11};//светодиоды

int mas[2] = {0,0};//счет

void setup()

{

pinMode(12, OUTPUT); //пищалка

for (int player = 0; player

// при помощи квадратных скобок получают значение в массиве

// под указанным в них номером. Нумерация начинается с нуля

pinMode(ledPins[player], OUTPUT);

pinMode(buttonPins[player], INPUT_PULLUP);

}

Serial.begin(9600);

}

void loop() {  // даём сигнал «пли!», выждав случайное время от 2 до 7 сек  delay(random(2000, 7000));  tone(12, 3000, 250); // 3 килогерца, 250 миллисекунд  for (int player = 0; ; player = (player+1) % 2) {  // если игрок номер «player» нажал кнопку...  if (!digitalRead(buttonPins[player])) {  // ...включаем его светодиод и сигнал победы на 1 сек  digitalWrite(ledPins[player], HIGH);  tone(12, 4000, 1000);  mas[player]+=1;  delay(1000);  digitalWrite(ledPins[player], LOW);  Serial.print(mas[0]);  Serial.print(

void loop()

{

// даём сигнал «пли!», выждав случайное время от 2 до 7 сек

delay(random(2000, 7000));

tone(12, 3000, 250); // 3 килогерца, 250 миллисекунд

for (int player = 0; ; player = (player+1) % 2) {

// если игрок номер «player» нажал кнопку...

if (!digitalRead(buttonPins[player])) {

// ...включаем его светодиод и сигнал победы на 1 сек

digitalWrite(ledPins[player], HIGH);

tone(12, 4000, 1000);

mas[player]+=1;

delay(1000);

digitalWrite(ledPins[player], LOW);

Serial.print(mas[0]);

Serial.print(" ");

Serial.print(mas[1]);

Serial.println("");

break; // Есть победитель! Выходим (англ. break) из цикла

}

}

}

Задание. Самостоятельно измените существующую программу и схему 1. Сделайте напряженный вариант игры: пусть интервал между сигналами будет в диапазоне от 10 до 15 секунд. 2. Добавьте в игру еще двух ковбоев!

Задание. Самостоятельно измените существующую программу и схему

1. Сделайте напряженный вариант игры: пусть интервал между сигналами будет в диапазоне от 10 до 15 секунд.

2. Добавьте в игру еще двух ковбоев!

В игре есть лазейка: кнопку можно зажать до сигнала «пли!» и таким образом сразу же выиграть. Дополните программу так, чтобы так выиграть было нельзя.

В игре есть лазейка: кнопку можно зажать до сигнала «пли!» и таким образом сразу же выиграть. Дополните программу так, чтобы так выиграть было нельзя.

void loop() {  // даём сигнал «пли!», выждав случайное время от 2 до 7 сек  delay(random(2000, 7000));  for (; ;) {  if (digitalRead(buttonPins[0]) && digitalRead(buttonPins[1])) break;  else Serial.println(

void loop()

{

// даём сигнал «пли!», выждав случайное время от 2 до 7 сек

delay(random(2000, 7000));

for (; ;) {

if (digitalRead(buttonPins[0]) && digitalRead(buttonPins[1])) break;

else Serial.println(" error - dont press button");

}

tone(12, 3000, 250); // 3 килогерца, 250 миллисекунд

for (int player = 0; ; player = (player+1) % 2) {