Мазмуну:

Морздо Ардуино Хангман: 9 кадам
Морздо Ардуино Хангман: 9 кадам

Video: Морздо Ардуино Хангман: 9 кадам

Video: Морздо Ардуино Хангман: 9 кадам
Video: Как научиться программировать с нуля играя в игры. Java, JavaScript, C++, C#, Python, PHP, Ruby 2024, Июнь
Anonim
Морздо Ардуино Хангман
Морздо Ардуино Хангман

Бул үйрөткүчтө мен телефонуңдан жөнөкөй фонарь же факелдин функциясы менен Морзе кодун жөнөтүү менен Hangman ойноо үчүн өзүңдүн Arduino орнотууңду көрсөтөм.

Сиз артынан ээрчишиңиз керек болгон нерселер: An Arduino Board 10 LED-lightsWires to connect all. Extra: A Piezo element (үн кошуу үчүн).

1-кадам: LED жарыгын орнотуу

LED-чырактарды орнотуу
LED-чырактарды орнотуу

Бул Морз оюну 4 чыракты колдонуп, болжолдонууга тийиш болгон 4 тамганы жана 5 чырак оюнчунун болжолдуу калтырган жашоосун көрсөтөт, андыктан биринчи кезекте сиз 9 LEDди туташтырышыңыз керек. -сүрөттө көрүнүп тургандай, кадимкидей жарык.

2 -кадам: Жарык сенсорун кошуңуз

Биз электрондук дүкөндөргө акча ыргыта албайбыз, ошондуктан мен жөнөкөй проекторду жарык сенсору катары колдонуу менен бул проекти арзан кармоону чечтим.

Сиз эмне кылышыңыз керек болсо, LED-жарыктын плюс жагын аналогдук портторуңуздун бирине (менин абалда A0) жана минус жагын жерге байланыштырыңыз.

3 -кадам: Сөздүгүңүздү кошуңуз

Сөздүгүңүздү кошуңуз
Сөздүгүңүздү кошуңуз

Биринчиден, каттарды тиешелүү Морзе коддоруна которуу үчүн сөздүктү кошуудан баштайлы. Бул үчүн, биз 26дан 5ке чейин массив жасайбыз, ар бир экинчи массивдин биринчи уячасы тамгасы менен жана кийинки 4 слоту тиешелүү Морзе коду менен же бош калган боштук менен. Мисалы, s тамгасы менен, биринчи уячада 's', экинчи, үчүнчү жана төртүнчү уячаларда '' бар. ' жана акыркы уячасы бар ''.

4 -кадам: Чырактарды демейки күйгүзүү

Демейки шартта жарыктарды күйгүзүңүз
Демейки шартта жарыктарды күйгүзүңүз
Демейки шартта жарыктарды күйгүзүңүз
Демейки шартта жарыктарды күйгүзүңүз

Бул кадамда, биз программа башталгандан кийин чырактардын күйүп турганын жана колдонуучу аларды туура тапкандан кийин Морздун тамгасын көрсөтөбүз (бул үчүн код 6 -кадамда жазылат). Биз ошондой эле оюнчунун өмүрү калгандыктан, жашоо үчүн көп жарыктар бар экенине ынанабыз.

Буга чейин, сизде жарыктын күйүп, өчүп турган убактысын жана LED-жарыгы Морзенин кайсы бөлүгүн көрсөтүп жаткандыгын көрсөтүү үчүн порт номерлери жана бүтүн сандары 0 коюлган массив бар экенине ишениңиз.

5 -кадам: Киргизүүнү кошуу

Киргизүүнү кошуу
Киргизүүнү кошуу

Эми биз кодду плеер биздин аналогдук A0 портубузга туташкан LED-жарыкка жарык чачып жаткандыгын текшерүү үчүн жазабыз жана эгер алар аны туура тамгага которушса.

Окуунун туура экенине ынануу үчүн, биз LED жарыктын ар бир 20 окуусун орточо эсептеп чыгарабыз жана жарыктын өчүп же күйүп турганын текшерүү үчүн ошол санды колдонобуз. Бул үчүн, программанын башталышында биз NUM_AVG санын жарыкты орточо көрсөткүчкө чейин текшерүүсүн каалаган убакытка койдук. Бул сан канчалык жогору болсо, окуу ошончолук так болот, бирок ал кечигүүгө алып келиши мүмкүн.

msBtnPushed, жарыктын күйүп турган убактысын билдирет.lastPressed - бул мурунку циклде жарык күйүп тургандыгын көзөмөлдөгөн логикалык.

6 -кадам: Киргизүүнү иштетүү

Киргизүүнү иштетүү
Киргизүүнү иштетүү
Киргизүүнү иштетүү
Киргизүүнү иштетүү

Бул кадам үчүн, Морзе кошулбайт деп ойлоо үчүн жетиштүү убакыт өткөндөн кийин эмне кылуу керектигин карап чыгабыз жана Морздун кат түрүндө жөнөтүлгөнүн жана анын туура тамга экендигин текшеришибиз керек.

Бул үчүн, биз оюнчуларыбыз божомолдошун каалаган сөзгө wordToGuess сабын орнотушубуз керек. Менде кокустук сандардын генератору бар, аны башында туш келди сөзгө коюуга болот, бирок сиз аны жөн эле бир сөзгө койсоңуз болот.

Биз ошондой эле эсептегичтин ар бир циклге жогорулашын текшеришибиз керек, антпесе бүт программа эч нерсе кылбайт. Мындан тышкары, мен ар бир милисекундда бир цикл бар экенине ынануу үчүн, кечигүү функциясын коштум.

PS: Бардык Serial.println функциялары тестирлөө максатында гана. Алар аяктагандан кийин жок кылынышы мүмкүн.

GoodTimer жана badTimer - бул үн кошуу үчүн Piezo элементин колдонууну пландап жатсаңыз, жөн гана баалуулуктар. Эгер сиз кааласаңыз, анда экинчи сүрөттөгү үндөрдү ойнотуучу кодду да кошушуңуз керек.

7 -кадам: Туура табылган каттарды морсинг

Туура божомолдонгон каттарды морсинг
Туура божомолдонгон каттарды морсинг

Мурда убада кылынгандай, бул кадамда биз туура болжолдонгон тамгаларды чагылдырган чырактарды алардын каты кылабыз.

Бул үчүн мен эки функцияны жаздым: morseThis жана nextLetter. It мурда биздин таймерлер массивине койгон сандарды колдонот жана Морзе кодунун кайсы бөлүгүнө жаркырап турганына жараша аларды өзгөртөт.

Эгерде таймер жарык күйө турган убакытка жетсе, анда ал жөн гана жарыкты күйгүзөт жана кодду иштетип, жарыкты өчүрүп кайра күйгүзүү үчүн жаңы таймерлерди коет. өчүрүлгөндө, ал жарыкты өчүрүп, андан кийин каттын кийинки бөлүгүн көрсөтүү үчүн кодду коет. Эгерде кийинки бөлүк жок болсо, аны биринчи бөлүккө кайтарат.

8 -кадам: Орнотуубузду кайра карап чыгуу жана баштапкы абалга келтирүү

Биздин Орнотууну карап чыгуу жана Баштапкы абалга келтирүү
Биздин Орнотууну карап чыгуу жана Баштапкы абалга келтирүү

Албетте, эгерде жарыктар чыгууга жана киргизүүгө коюлбаса, программа иштебейт. Мен wordToGuess деп аталган массивге киргизген сөздөрдүн тизмесинен сөз кошуу үчүн туш келди сан генераторун кошом.

Мындан тышкары, биз баштапкы абалга келтирүү функциясын кошуп, бардык маанилер баштапкы абалга келтирилгенин текшеришибиз керек.

9 -кадам: Бардык өзгөрмөлөр бир сүрөттө

Бардык өзгөрмөлөр бир сүрөттө
Бардык өзгөрмөлөр бир сүрөттө

Акыр -аягы, сиз муну бардык керектүү өзгөрмөлөрдүн туура орнотулгандыгын текшерүү үчүн колдоно аласыз.

Эми Морздо Hangman ойноп ырахат алыңыз!

Сунушталууда: