В
Все
М
Математика
О
ОБЖ
У
Українська мова
Х
Химия
Д
Другие предметы
Н
Немецкий язык
Б
Беларуская мова
М
Музыка
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
У
Українська література
Р
Русский язык
Ф
Французский язык
П
Психология
О
Обществознание
А
Алгебра
М
МХК
Г
География
И
Информатика
П
Право
А
Английский язык
Г
Геометрия
Қ
Қазақ тiлi
Л
Литература
И
История

«Создание гаджетов на Arduino» Тема: Игра на Arduino «Охотник»
Домашнее задание: Игра на Arduino
Доработайте код программы, который написали на занятии.
Чтобы игра была динамичнее, добавьте условие, чтобы от переменной score каждый раз отнималась 1 единица. Добавьте
соответствующее условие в функцию playGame(). Пока score>0,
отнимайте от переменной единицу с каждым обходом цикла.
Добавьте пьезоэлемент и напишите такой код, чтобы после нажатия кнопки воспроизводилась мелодия победы или
проигрыша. Определенная мелодия должна воспроизводиться в зависимости от того, успел ли игрок нажать кнопку,
когда загорелся красный светодиод.

код в который надо добавить команды :
#include
#define LED_RED 0
#define LED_BLUE1 6
#define LED_BLUE2 7
#define LED_BLUE3 8
#define LED_BLUE4 9
#define LED_BLUE5 10
#define BUTTON_PIN 13
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int myPins[] = {LED_RED, LED_BLUE1, LED_BLUE2,
LED_BLUE3, LED_BLUE4, LED_BLUE5};
int pin = 0; // random choose for turn on led
int millisec = 500;
int gameStatus = 0;
int score = 0;
int a = 1;

void setup() {
lcd.begin(16, 2);
pinMode(BUTTON_PIN, INPUT_PULLUP);
for (int i = 0; i < (sizeof(myPins) /
sizeof(myPins[0]));
i++) {
pinMode(myPins[i], OUTPUT);
digitalWrite(myPins[i], LOW);
}
}
void loop() {
switch (gameStatus) {
case 0:
playGame();
break;
case 1:
playerWin();
break;
case 2:
playerLose();
break;
}
}
void LCDstart() {
lcd.display();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("SCORE:");
lcd.setCursor(7, 0);
lcd.print(score);
}
void playGame() {
LCDstart();
pin = random((sizeof(myPins) / sizeof(myPins[0])));
digitalWrite(myPins[pin], HIGH);
if (digitalRead(BUTTON_PIN)) {
if (myPins[pin] == LED_RED) {
gameStatus = 1;
}
else {
gameStatus = 2;
}
}
delay(millisec);
digitalWrite(myPins[pin], LOW);
}
void playerWin() {
gameStatus = 0;
score += 10000 % millisec;
if (millisec > 50) {
millisec -= 20;
}
for (int i = 1; i >= 0; i--) {
for (int j = 0; j < (sizeof(myPins) /
sizeof(myPins[0])); j++) {
digitalWrite(myPins[j], i);
}
delay(600);
}
}
void playerLose() {
gameStatus = 0;
score -= 1000 / millisec;
millisec += 10;
for (int i = 1; i >= 0; i--) {
for (int j = 1; j < (sizeof(myPins) /
sizeof(myPins[0])); j++) {
digitalWrite(myPins[j], i);
}
delay(600);
}
}

Показать ответ
Ответ:
chelsea6
chelsea6
05.03.2021 22:00

что это?прикол или как???

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота