This is an old revision of the document!
Autor: Stefan Popovici
Proiectul isi propune sa le ofere utilizatorilor posibilitatea de a juca jocul Nim, atat single player (jucator vs computer) cat si multiplayer (doi jucatori joaca unul impotriva celuilalt). Acesta este un joc simplu, care presupune existenta unor gramezi de obiecte din care jucatorii extrag, pe rand, unul sau mai multe obiecte la fiecare mutare, insa doar dintr-o singura gramada la un moment dat. Jucatorul care extrage ultimul pierde. Varianta implementata este cea cu trei gramezi de obiecte, cantitatile fiind generate aleatoriu (valori intre 1 si 50 inclusiv).
Informatiile despre starea curenta a jocului sunt afisate pe un ecran LCD 16×2. Initial se vor afisa cele 2 moduri de joc disponibile. Odata ce unul dintre acestea este ales, in timpul derularii jocului se vor afisa cantitatile de obiecte ramase in fiecare din cele 3 gramezi, pe prima linie a ecranului, respectiv cantitatea ce se doreste a fi extrasa la urmatoarea mutare, pe a doua linie a ecranului, in dreptul gramezii (coloanei) dorite. Jucatorii au la dispozitie trei butoane si un potentiometru prin intermediul carora pot introduce mutarile pe care vor sa le faca atunci cand le vine randul. Cu ajutorul primelor doua butoane pot comuta spre stanga sau spre dreapta pentru a alege gramada din care vor sa extraga. Potentiometrul are rolul de a selecta cu usurinta cantitatea ce se doreste a fi extrasa, variind intre 1 si numarul de obiecte ramase in gramada respectiva. Nu in ultimul rand, ultimul buton (cel din dreapta) este folosit pentru a efectua mutarea stabilita in modul descris anterior si a ceda randul celuilalt jucator. In modul single player, pentru ca mutarile computerului sa poata fi observate cu usurinta de catre utilizator, acestea vor fi afisate pe ecran pentru un timp scurt, urmand apoi randul jucatorului. Cand jocul se termina, pe ecran se va afisa castigatorul, iar buzzerul va emite un sunet timp de cateva secunde.
Componenta | Cantitate |
---|---|
Arduino UNO R3 | 1 |
LCD 16×2 | 1 |
Breadboard 400 points | 1 |
Resistor 220 Ohm | 1 |
Potentiometer 10kOhm | 2 |
Pushbutton | 3 |
Piezo capsule [PKM22EPP-40] | 1 |
Solid core jumper wires |