Съдържание:

Игра Sudoku на Arduino Sorta: 3 стъпки (със снимки)
Игра Sudoku на Arduino Sorta: 3 стъпки (със снимки)

Видео: Игра Sudoku на Arduino Sorta: 3 стъпки (със снимки)

Видео: Игра Sudoku на Arduino Sorta: 3 стъпки (със снимки)
Видео: Сделал игру по фильму за 30 секунд #программист #gamedev #компьютер #игры #айти 2024, Ноември
Anonim
Игра Sudoku на Arduino Sorta
Игра Sudoku на Arduino Sorta

Много хора обичат да играят судоку, а внуците харесват игри за гадаене, затова реших да направя преносима игра „Sorta Sudoku“. В моята версия играта е 4x4 мрежа, но е предоставен само един номер. Идеята е да отгатнете останалите числа в най -малкото опити. Това е проста игра, но може да бъде пристрастяваща, когато преследвате перфектния резултат от 15. Играта изисква както елемент на късмет, така и логика, а най -добрият резултат, който съм виждал досега, е 16. Погледнете, защото дори ако не се интересувате от изграждането на играта, може да има някои елементи от софтуера, които можете да използвате в някой от вашите собствени проекти.

Стъпка 1: Хардуер

Хардуер
Хардуер
Хардуер
Хардуер
Хардуер
Хардуер

Хардуерът може да се основава на почти всяка версия на Arduino. Направих прототипирането с помощта на Nano и след това записах кода в чип ATMega328. Това е същият чип, използван в Nano, но използването му само по себе си позволява по -компактно изграждане и по -ниска консумация на енергия. Както можете да видите, изградих веригата на малка дъска, която се връща към LCD модула. Другият аспект, който е различен, е, че Nano работи на 16-MHz с помощта на външен кристал, но аз избрах да използвам вградения 8-MHz осцилатор за чипа ATMega328. Това спестява части и енергия.

LCD дисплеят от 2004 г. се свързва с Arduino по същия начин, както 1602 LCD. Интересна разлика е в адресирането на местата за показване. Очевидно има разлика, защото има четири реда вместо два, но през 2004 г. третият ред е продължение на първия ред, а четвъртият ред е разширение на втория ред. С други думи, ако имате тестова програма, която току -що изпрати низ от знаци на LCD дисплея, 21 -вият знак ще се появи в началото на третия ред, а 41 -ият символ ще се върне обратно в началото на първия ред. Софтуерът обработва тази разлика с таблица за търсене на LCD адрес.

Входът за играта е домашна матрица за превключване 4x4. Всеки превключвател съответства директно на еквивалентното място на дисплея. Има и превключвател за захранване и ключ за нулиране. Превключвателят за нулиране изчиства старата игра и генерира нова игра.

Реших да направя моята версия на батерията, така че използвах обикновена 18650 литиево-йонна, 3,6-волтова батерия. Това изискваше да добавя малка платка, която да позволява зареждане чрез USB, и друга малка платка, за да повиша напрежението на батерията до 5 волта за LCD и ATMega чипа. Снимките показват модулите, които използвах, но има и модули „всичко в едно“, които изпълняват и двете функции.

Стъпка 2: Софтуер

Софтуерът е един и същ както за чипа Nano, така и за ATMega328. Единствената разлика е в метода на програмиране. Използвам моя собствена версия на LCD софтуер barebones и софтуер за декодиране на матрична клавиатура. Това са отделни „включващи“файлове за проекта.

Командите „random“и „randomSeed“се използват за създаване на играта. Добавих запазване към EEPROM на „семето“, за да гарантирам, че при всяко включване се генерира различна последователност. Редовете на пъзела са получени от 24-елементен масив за търсене. Първите три реда се избират на случаен принцип от таблицата, като се проверява дали избраният ред не противоречи на предишен ред. Последният ред се попълва ръчно, защото в този момент ще има само един възможен модел. След това остава само да сканирате матрицата на клавиатурата и да преобразувате натискането на клавишите в цифри.

За да познаете число, натиснете съответния превключвател неколкократно. Всяко натискане увеличава показания номер. Ако превишите желания номер, просто продължете да натискате. Ако пуснете превключвателя за секунда, той ще заключи последния показан номер. Ако номерът е неправилен, той ще изчисти номера и можете да опитате отново. Всяко предположение увеличава показания брояч и след като числото е правилно отгатнато, този матричен превключвател е ефективно деактивиран.

Стъпка 3: Показва

Дисплеи
Дисплеи
Дисплеи
Дисплеи
Дисплеи
Дисплеи

Ето няколко снимки на различните дисплеи.

Препоръчано: