This is an old revision of the document!
Sudoku
Autor: Mincea Lucian (336CB)
Introducere
Proiectul isi propune implementarea unui joc de Sudoku. Controlul va fi facut dintr-o tastatura numerica ce va avea rolul de navigator prin puzzle (selectarea casutei) si de a introduce o cifra pentru completarea casutei. Afisarea puzzle-ului se va face pe un LCD.
Descriere generală
Schema bloc
Miscarea pe tabla de joc si introducerea numerelor se face folosind keypad-ul astfel:
'2' - mutare cu o celula in sus
'8' - mutare cu o celula in jos
'4' - mutare cu o celula in stanga
'6' - mutare cu o celula in dreapta
'5' - selectarea celulei pentru introducerea valorii dorite
Dupa selectarea celulei se introduce un numar de la 1 la 6 dupa care jucatorul se poate misca din nou.
Butonul '#' declanseaza verificarea jocului. Se afiseaza un mesaj corespunzator starii in care se afla jocul, iar jucatorul are 2 posibilitati:
Hardware Design
Lista de piese:
Arduino Uno
Ecran LCD SPI
Tastatura numerica 4×3
Breadborad
Rezistente
Fire
Schema electrica:
Software Design
Diagrama de activitati
Diagrama de stari
Functii:
set_board() - initializeaza tabla de joc cu unul din cele 5 jocuri statice
draw_sudoku() - deseneaza pe LCD tabla de joc, pozitia jucatorului fiind reprezentata prin culoarea rosu
get_key() - Keypad.getKey(); functie de biblioteca pentru a verifica daca o tasta a fost apasata; functie neblocanta
interpret_key() - se interpreteaza inputul utilizatorului in functie de starea jocului
move si fill_cell sunt descrise in functia intepret_key()
check_result() - se verifica starea jocului
draw_menu - deseneaza meniul ce apare la apasarea tastei '#'; afiseaza un mesaj un functie de rezultatul verificarii si afiseaza optiunile de “NEW GAME” si “CONTINUE”
Biblioteci folosite:
Rezultate Obţinute
Care au fost rezultatele obţinute în urma realizării proiectului vostru.
Concluzii
Download
O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună

.
Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.
Jurnal
Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.
Bibliografie/Resurse
Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.
Export to PDF