Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2023:vstoica:sudoku [2023/05/07 00:20]
maria_beatrice.dinu created
pm:prj2023:vstoica:sudoku [2023/05/28 01:49] (current)
maria_beatrice.dinu [Bibliografie/Resurse]
Line 1: Line 1:
-= Sudoku =+====== Sudoku ​======
  
-== Introducere == +Dinu Maria-Beatrice 332CA 
 + 
 +===== Introducere ​=====
  
 Proiectul consta in implementarea jocului clasic sudoku. Jocul va fi afisat pe un ecran LCD, miscarea pe ecran se va face printr-un joystick, iar numerele vor fi introduse printr-un keypad. Proiectul consta in implementarea jocului clasic sudoku. Jocul va fi afisat pe un ecran LCD, miscarea pe ecran se va face printr-un joystick, iar numerele vor fi introduse printr-un keypad.
  
-== Descriere generala == +Scopul acestui proiect este sa creeze o interfata fizica si interactiva pentru rezolvarea puzzle-urilor Sudoku, fiind o combinatie interesanta intre programare, electronica si jocuri logice. 
-{{:​pm:​prj2023:​vstoica:​schema_bloc_sudoku.png?​200|Schema bloc}}+ 
 +===== Descriere generala ===== 
 +Sudoku este un joc logic care implica completarea unei grile de 9x9 cu cifre de la 1 la 9. Scopul jocului este sa plasezi fiecare cifra in asa fel incat sa fie respectate anumite reguli.\\ 
 +  * Fiecare rand din grila trebuie sa contina toate cifrele de la 1 la 9, fara repetitii. 
 +  * Fiecare coloana din grila trebuie sa contina toate cifrele de la 1 la 9, fara repetitii. 
 +  * Fiecare regiune de 3x3 trebuie sa contina toate cifrele de la 1 la 9, fara repetitii. 
 + 
 +Proiectul utilizeaza un ecran LCD pentru a afisa grila sudoku si cifrele asociate, permitand utilizatorului sa vada si sa interactioneze direct cu puzzle-ul. Keypad-ul este folosit pentru a introduce cifre in grila, iar joystick-ul pentru a naviga prin diferite celule ale grilei sudoku. 
 + 
 +{{:​pm:​prj2023:​vstoica:​schema_bloc_sudoku.png?​500|Schema bloc}} 
 + 
 +===== Hardware design ===== 
 + 
 +Lista componente\\ 
 +  - Arduino UNO 
 +  - Ecran LCD 1.8" SPI 
 +  - Tastatura numerica 4*4 
 +  - Joystick 
 +  - Breadboard 400 de puncte 
 +  - Rezistente + fire 
 + 
 +Schema electrica\\ 
 +{{:​pm:​prj2023:​vstoica:​sudoku_schema.jpeg?​500|Schema electrica}} 
 + 
 +===== Software design ===== 
 + 
 +Codul a fost implementat in ArduinoIDE. M-am folosit de urmatoarele biblioteci: SPI.h si TFT.h pentru LCD, Keypad.h pentru keypad. 
 + 
 +Structura codului: 
 +  - draw_sudoku():​ deseneaza tabla, pozitia jucatorului si insereaza cifele asociate. 
 +  - draw_grid():​ deseneaza liniile necesare pentru a imparti tabla in 9 segmente de 3x3. 
 +  - set_super_easy_board():​ copiaza cea mai usoara tabla din start_boards (unde sunt initializate diferite table de joc) in sudoku_board (am lasat aceasta functie pentu a putea verifica mai repede anumite functionalitati,​ si sa nu trebuiasca sa completez un joc intreg de sudoku). 
 +  - set_easy_board():​ copiaza o tabla de dificultate usoara random din start_boards (unde sunt initializate diferite table de joc) in sudoku_board. 
 +  - set_hard_board():​ copiaza o tabla de dificultate grea random din start_boards (unde sunt initializate diferite table de joc) in sudoku_board. 
 +  - write_key():​ insereaza cifra introdusa prin keypad pe tabla de joc. 
 +  - check_win():​ se verifica daca solutia oferita este una valida. Daca jucatorul nu a completat toata tabla, se va afisa mesajul "NOT FINISHED!"/​Daca jucatorul a completat gresit tabla se va afisa mesajul "TRY AGAIN!"​ pentru 3 secunde, dupa care se va reintoarce pe tabla de joc. Daca jucatorul a completat corect tabla, se va afisa mesajul "YOU WON! CONGRATS!"​ pentru 5 secunde, dupa care se va reintoarce la meniul principal. 
 +  - draw_menu():​ deseneaza meniul principal unde jucatorul are optiunile de a alege intre un joc usor sau un joc greu. 
 + 
 +{{:​pm:​prj2023:​vstoica:​schema_bloc_sudokuv2.png?​400|Schema Stari}} 
 + 
 +===== Rezultate obtinute ===== 
 +{{:​pm:​prj2023:​vstoica:​start_menu_sudoku.jpeg?​150|Start menu}} 
 +{{:​pm:​prj2023:​vstoica:​start_game_sudoku.jpeg?​150|Start game}} 
 +{{:​pm:​prj2023:​vstoica:​playing_game_sudoku.jpeg?​150|Playing game}} 
 +{{:​pm:​prj2023:​vstoica:​win_screen_sudoku.jpeg?​150|Win screen}} 
 + 
 +===== Concluzii ===== 
 +Proiectul a fost foarte interesant si captivant. Mi-a placut sa invat cum sa lucrez cu biblioteca TFT.h pentru LCD, care a durat ceva, si cum sa conectez componentele cu arduino astfel incat sa nu le stric :). Am lucrat la acest proiect cu placere.  
 + 
 +===== Download ===== 
 +Surse: {{:​pm:​prj2023:​vstoica:​sudoku_arduino.zip|Sudoku arduino}}
  
-== Hardware design ​==+===== Bibliografie/​Resurse ===== 
 +https://​randomnerdtutorials.com/​guide-to-1-8-tft-display-with-arduino/​ \\ 
 +https://​www.arduino.cc/​reference/​en/​libraries/​tft/​ \\ 
 +https://​www.circuitbasics.com/​how-to-set-up-a-keypad-on-an-arduino/​ \\ 
 +https://​arduinogetstarted.com/​tutorials/​arduino-joystick 
 +===== Bibliografie/​Resurse =====
  
-Lista componente +<​html><​a class="media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
-* Arduino UNO +
-* Ecran LCD 1.8" ​SPI +
-* Tastatura numerica 4*4 +
-* Joystick +
-* Placa de prototipare +
-* Rezistente + fire+
pm/prj2023/vstoica/sudoku.1683408039.txt.gz · Last modified: 2023/05/07 00:20 by maria_beatrice.dinu
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0