«Создание гаджетов на 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);
}
}
174
206
Ответы на вопрос:
//pascalabc.net //версия 3.3, сборка 1634 (14.02.2018) begin var s : = readstring.joinintostring(' ').tointegers; var (a,b): =(s.where(t-> t=1).count,s.where(t-> t=2).count); (s.findlastindex(t-> t=s.min)+1).println; println((b=0) and (a> +1)*5: a*5+b*5); end. пример: 1122222212222111122217 100
Реши свою проблему, спроси otvet5GPT
-
Быстро
Мгновенный ответ на твой вопрос -
Точно
Бот обладает знаниями во всех сферах -
Бесплатно
Задай вопрос и получи ответ бесплатно
Популярно: Информатика
-
rsobal45gmailcom18.06.2022 07:16
-
Dusa77705.02.2022 15:38
-
стефания3127.05.2021 22:34
-
ренпарне67806.01.2021 05:34
-
maximfz13.06.2022 07:29
-
lanadanelianlana17.03.2020 05:36
-
ashirova120918.04.2023 09:23
-
merkulovaannet24.06.2020 19:35
-
Pancho223415.02.2023 00:06
-
karakatitsa123.11.2020 02:29
Есть вопросы?
-
Как otvet5GPT работает?
otvet5GPT использует большую языковую модель вместе с базой данных GPT для обеспечения высококачественных образовательных результатов. otvet5GPT действует как доступный академический ресурс вне класса. -
Сколько это стоит?
Проект находиться на стадии тестирования и все услуги бесплатны. -
Могу ли я использовать otvet5GPT в школе?
Конечно! Нейросеть может помочь вам делать конспекты лекций, придумывать идеи в классе и многое другое! -
В чем отличия от ChatGPT?
otvet5GPT черпает академические источники из собственной базы данных и предназначен специально для студентов. otvet5GPT также адаптируется к вашему стилю письма, предоставляя ряд образовательных инструментов, предназначенных для улучшения обучения.