Differences

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

Link to this comparison view

pm:prj2023:vstoica:sudoku [2023/05/28 00:51]
maria_beatrice.dinu [Descriere generala]
pm:prj2023:vstoica:sudoku [2023/05/28 01:49] (current)
maria_beatrice.dinu [Bibliografie/Resurse]
Line 15: Line 15:
   * Fiecare regiune de 3x3 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.
  
-Miscarea pe tabla se va face prin intermediul unui joystick, iar introducerea numerelor se va face prin intermediul unui keypad.+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}} {{:​pm:​prj2023:​vstoica:​schema_bloc_sudoku.png?​500|Schema bloc}}
Line 26: Line 26:
   - Tastatura numerica 4*4   - Tastatura numerica 4*4
   - Joystick   - Joystick
-  - Placa de prototipare+  - Breadboard 400 de puncte
   - Rezistente + fire   - Rezistente + fire
  
Line 32: Line 32:
 {{:​pm:​prj2023:​vstoica:​sudoku_schema.jpeg?​500|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}}
 +
 +===== 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 ===== ===== Bibliografie/​Resurse =====
  
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
pm/prj2023/vstoica/sudoku.1685224260.txt.gz · Last modified: 2023/05/28 00:51 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