Video: Arduino Sorta Sudoku o'yini: 3 qadam (rasmlar bilan)
2025 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2025-01-13 06:58
Ko'p odamlar Sudoku va nabiralarini o'yinni yaxshi ko'radilar, shuning uchun men "Sorta Sudoku" ko'chma o'yinini yaratishga qaror qildim. Mening versiyamda, o'yin 4x4 o'lchamli, lekin faqat bitta raqam berilgan. Qolgan sonlarni eng kam urinishda taxmin qilish g'oyasi. Bu oddiy o'yin, lekin siz 15 -dan mukammal ball to'plaganingizda, bu o'ziga qaram bo'lib qolishi mumkin. O'yinda ham omad, ham mantiq, ham hozirgacha ko'rgan eng yaxshi ball talab qilinadi. 16 ga qarang, chunki hatto Agar siz o'yinni yaratishga qiziqmasangiz, o'z loyihalaringizdan birida foydalanishingiz mumkin bo'lgan dasturiy ta'minot elementlari bo'lishi mumkin.
1 -qadam: Uskuna
Uskuna deyarli har qanday Arduino versiyasiga asoslangan bo'lishi mumkin. Men prototipni Nano yordamida qildim va keyin kodni ATMega328 chipiga yozdim. Bu Nano -da ishlatiladigan chip, lekin uni o'zi ishlatish yanada ixcham tuzilishga va kam quvvat sarflashga imkon beradi. Ko'rib turganingizdek, men sxemani LCD moduliga cho'zilgan kichik non panelida qurdim. Boshqa tomoni shundaki, Nano tashqi kristal yordamida 16 MGts da ishlaydi, lekin men ATMega328 chipi uchun o'rnatilgan 8 MGtsli osilatordan foydalanishni tanladim. Bu qismlar va quvvatni tejaydi.
2004 yilgi LCD displeyi Arduino -ga 1602 LCD displeyi bilan bir xil. Ko'rgazma joylarining manzili bilan qiziq bir farq bor. Shubhasiz, farq bor, chunki ikkita o'rniga to'rtta chiziq bor, lekin 2004 yilda uchinchi qator birinchi qatorning kengaytmasi va to'rtinchi qator ikkinchi qatorning kengaytmasi. Boshqacha qilib aytadigan bo'lsak, agar sizda LCD displeyga bir nechta belgilar yuborilgan test dasturi bo'lsa, 21 -belgi uchinchi qatorning boshida ko'rsatiladi va 41 -belgi birinchi qatorning boshiga qaytadi. Dastur bu farqni LCD manzillarni qidirish jadvali bilan boshqaradi.
O'yin uchun kirish 4x4 o'lchamli uy qurilishi matritsasi. Har bir kalit to'g'ridan -to'g'ri ekrandagi mos keladigan joyga mos keladi. Bundan tashqari, quvvat tugmasi va qayta o'rnatish tugmasi mavjud. Qayta tiklash tugmasi eski o'yinni tozalaydi va yangi o'yinni yaratadi.
Men o'z batareyamni quvvatlantirishga qaror qildim, shuning uchun umumiy 18650 Li-ionli, 3,6 voltli batareyadan foydalandim. Buning uchun men USB -ni qayta zaryad qilish uchun kichik taxtani va LCD va ATMega chiplari uchun 5 voltli batareyaning kuchlanishini oshirish uchun boshqa kichik kartani qo'shishim kerak edi. Rasmlarda men ishlatgan modullar ko'rsatilgan, lekin ikkala funktsiyani bajaradigan hammasi bir xil modullar mavjud.
2 -qadam: dasturiy ta'minot
Dastur Nano va ATMega328 chiplari uchun bir xil. Faqat farq dasturlash usulida. Men LCD dasturiy ta'minot va klaviatura matritsasini dekodlash dasturining o'z yalang'och versiyasidan foydalanaman. Bular loyiha uchun alohida "qo'shish" fayllari.
O'yinni yaratishda "tasodifiy" va "randomSeed" buyruqlari ishlatiladi. Men har bir kuchlanishda har xil ketma -ketlik hosil bo'lishini ta'minlash uchun "urug '" ning EEPROM -ga saqlash qo'shdim. Jumboqning satrlari 24 elementli qidiruv qatoridan olingan. Dastlabki uchta satr jadvaldan tasodifiy tanlanadi va tanlangan chiziq oldingi satrga zid kelmasligini tekshiradi. Oxirgi satr qo'lda to'ldiriladi, chunki bu vaqtda faqat bitta mumkin bo'lgan naqsh bo'ladi. Shundan so'ng, bu faqat klaviatura matritsasini skanerlash va tugmachalarni raqamlarga aylantirish.
Raqamni taxmin qilish uchun tegishli kalitni qayta -qayta bosing. Har bir bosish ko'rsatilgan raqamni oshiradi. Agar siz kerakli raqamni haddan tashqari oshirib yuborsangiz, bosishni davom ettiring. Agar siz kalitni bir soniya qo'yib yuborsangiz, u ko'rsatiladigan oxirgi raqamni qulflaydi. Agar raqam noto'g'ri bo'lsa, raqam o'chiriladi va qaytadan urinib ko'rishingiz mumkin. Har bir taxmin ko'rsatiladigan hisoblagichni ko'paytiradi va raqam to'g'ri taxmin qilinganidan so'ng, matritsa kaliti o'chiriladi.
3 -qadam: Ko'rsatadi
Bu erda turli xil displeylarning rasmlari.