Мазмұны:

«Ниндзя доллары» Ардуиноға арналған ойын: 3 қадам
«Ниндзя доллары» Ардуиноға арналған ойын: 3 қадам

Бейне: «Ниндзя доллары» Ардуиноға арналған ойын: 3 қадам

Бейне: «Ниндзя доллары» Ардуиноға арналған ойын: 3 қадам
Бейне: Топ сильнейших персонажей в черепашек ниндзя🔥🔥 2024, Қараша
Anonim
Кескін
Кескін

Arduino.it үшін тағы бір тамаша ойын - бұл мен шығарған соңғыға қарағанда әлдеқайда жетілдірілген, неге ол басқаларға қарағанда күрделірек? Бұл күрделірек, себебі бұл секіруге, түсіруге, дыбыстық жарық пен жаңа нүктелерді бақылау әдісіне ие.

Жабдықтар

  1. Ардуино.
  2. Нан тақтасы
  3. секіргіш сымдар
  4. Қызыл жарық диоды
  5. 2 түйме
  6. 2 10км резистор
  7. 2 220R резисторы.
  8. Өте жарқын көк жарық диодты.
  9. пьезо дыбысы
  10. 16*2 СКД дисплейі

1 -қадам: Барлығын бірге қосыңыз

Бәрін бірге қосу
Бәрін бірге қосу

Енді сіз бәрін сыммен байланыстыруыңыз керек

2 -қадам: қалай ойнау керек:

  1. Ардуиноны қосыңыз.
  2. СКД: «ойын басталады» және кері санақты басып шығаруы керек.
  3. Түймелердің бірін секіру үшін, екіншісін ату үшін басыңыз.
  4. Сіз секірген әрбір блоктан сіз бір ұпай ұтып алдыңыз, және әрбір * ұпай сізге 5 ұпай береді.
  5. Егер сізде 50 ұпай немесе одан жоғары болса, сіз жеңдіңіз

3 -қадам: Кодекс

// есте сақтау керек, бұл жылдамдықты жоғарылатады.

#қосу

const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;

const int buttonPin1 = 1; const int buttonPin2 = 6; const int buzzer = 7; белгісіз ұзын нүкте = 0; // түймешіктерді орнатыңыз bool buttonState1 = 0; bool түймесіState2 = 0; // int randomNums кедергілерінің орналасуы үшін кездейсоқ сан [6]; // кедергілер саны үшін кездейсоқ сан int randomNum = 0; // pts int randomNums1 позициясы үшін кездейсоқ сан [3]; // pts саны үшін кездейсоқ сан int randomNum1 = 0; // басталатын кешіктіру уақыты, ол біртіндеп белгісіз int myDelay = 500; // бұл логиканы түйменің 2 басылғанын тексеру үшін жасады, себебі егер ол цикл үшін бірінші рет басылса, мен кедергілер оның соңына дейін жазылмағанын қалаймын bool temp = 0; // бұл айнымалы жауынгердің атыс кезінде позицияларын сақтайды. 16 позиция болуы мүмкін, себебі жауынгерде 16 позиция бар. int tempI [16]; // мен бұл логиканы нүктенің ұсталғанын тексеру үшін қолданамын bool temp1 = 0;

// ұсталған нүктенің орнын сақтау үшін осы айнымалы мәнді қолданыңыз. бұл барлық нүктелердің орнын бірінші циклдің бір итерациясында сақтау үшін болуы керек. егер ол тек бір позицияны сақтаса, онда «ескі» нүкте жаңа итерацияға оралады

int tempI1 [3]; // бұл айнымалыны жауынгердің бірнеше кадрлары болу үшін қолданыңыз, ол сондай -ақ tempI массивінің ұзындығы int button2IsPressed = 0; LiquidCrystal lcd (rs, en, d4, d5, d6, d7);

жарамсыз орнату () {

// СКД бағандар мен жолдар санын орнатыңыз: lcd.begin (16, 2); // түйме түйреуіш режимін орнату pinMode (buttonPin1, INPUT); pinMode (buttonPin2, INPUT); pinMode (дыбыстық сигнал, OUTPUT); lcd.setCursor (4, 0); lcd.print («ОЙЫН»); lcd.setCursor (2, 1); lcd.print («БАСТАУ»); lcd.print («5»); кешіктіру (1000); lcd.setCursor (12, 1); lcd.print («4»); кешіктіру (1000); lcd.setCursor (12, 1); lcd.print («3»); кешіктіру (1000); lcd.setCursor (12, 1); lcd.print («2»); кешіктіру (1000); lcd.setCursor (12, 1); lcd.print («1»); кешіктіру (1000); lcd.clear ();

}

void loop () {

Мұнда:

randomNum = кездейсоқ (5);

үшін (int i = 0; i9 && pts19 && pts29 && pts = 50) {pts = 0; myDelay = 500; lcd.clear (); lcd.setCursor (5, 0); lcd.print («ЖЕҢІМ»); тон (дыбыстық сигнал, 262); кешіктіру (200); тон (дыбыстық сигнал, 330); кешіктіру (200); үн (дыбыстық сигнал, 392); кешіктіру (100); тон (дыбыстық сигнал, 330); кешіктіру (100); тон (дыбыстық сигнал, 392); кешіктіру (100); тон (дыбыстық сигнал, 523); кешіктіру (200); noTone (дыбыстық сигнал); кешіктіру (3000); lcd.clear (); бұл жерде; } else lcd.setCursor (15, 0); lcd.print (нүкте); buttonState1 = digitalRead (buttonPin1); buttonState2 = digitalRead (buttonPin2); // егер жауынгер атпаса немесе ол атса, бірақ ол да секірсе, егер (! temp) {for (int j = 0; jrandomNums [j]) {lcd.setCursor (randomNums [j], 1); lcd.print («#»); }

}

}

// нүктелерді орнату

if (! temp1) {for (int j = 0; j

}

Ұсынылған: