This is an old revision of the document!


Connect4

Autor

Introducere

  • Scopul proiectului este de a implementa, folosind un ecran LCD, jocul Connect4
  • Connect4 este un joc 1 vs. 1. Fiecare jucător își alege o culoare la început, după care, rând pe rând, dă drumul unui disc într-un grid.
  • Scopul jucătorului este de a conecta pe orice rând, coloană sau diagonală 4 discuri, încercând în același timp să îl încurce pe adversar.
  • Ideea de pornire a fost implementarea unui joc 1 vs. 1 care să fie cât de cât interactiv. =)
  • Modul de control al jocului va fi: butonul verde, fiind un buton de selecție, va fi folosit pentru a selecta meniurile jocului și pentru a selecta coloana în care jucătorul va dori să dea drumul discului. Pentru a schimba coloana, jocătorul va apăsa pe butonul roșu din stânga sau pe butonul roșu din dreapta.

Poză reprezentativă

Descriere generală

Schemă bloc

Funcționalitate

Plăcuța va primi input de la 3 butoane de control:

  • un buton care va reprezenta schimbarea coloanei spre stânga
  • un buton care va reprezenta shimbarea coloanei spre dreapta
  • un buton care va reprezenta selectarea coloanei

Jocul se va desfășura astfel:

  • pentru început, va exista un meniu de start. Pentru a începe jocul, se apasă butonul verde
  • primul jucător este cel reprezentat de culoarea roșie
  • jucătorul curent este specificat și pe ecran cu ajutorul unui mesaj și culoarea sa
  • discul jucătorului curent este colorat în mod corespunzător (roșu sau galben)
  • fiecare jucător se miscă în tura sa stânga sau dreapta, după care dă drumul unui disc
  • dupa ce un jucător câștigă, pe ecran vor fi afișate doar chenarul jocului și câștigătorul, fără alte informații care erau afișate de-a lungul jocului
  • dupa câteva secunde, jucătorii sunt anunțați că pot da replay la joc apăsând butonul verde
  • butonul de replay duce jocul în starea inițială (meniul principal de unde se poate alege începerea jocului)

Outputul va fi realizat cu ajutorul:

  • un modul LCD SPI
    • Folosește 5 pini de comunicație:
      • SCK
      • SDA
      • DC
      • RESET
      • CS
    • și 3 pini de conexiune
      • 5V
      • 3.3V
      • GND
    • Acesta va afișa jocul în sine, dar și alte informații:
      • scor
      • jucătorul curent
  • un buzzer pasiv cu diverse sunete
  • leduri care vor fi in sincronizare cu starea jocului (doar de decor)

Hardware Design

Listă de piese

  • Arduino
  • Modul LCD SPI 128×160
  • 3 butoane de control
  • buzzer pasiv
  • leduri
  • 2 x breadbord

Schema conectare LCD - Uno r3 și butoane

Diagrame de semnal

Rezultatele simulării

Software Design

  • mediu de dezvoltare - Arduino Ide
  • librării şi surse 3rd-party
    • PinChangeInt.h - librărie cu funcționalități de attach și detach pentru întreruperi
    • TFT.h - librărie Arduino pentru ecran tft
    • SPI.h - librărie Arduino pentru comunicare SPI având ca master plăcuța Arduino
  • algoritmi şi structuri
  • surse şi funcţii implementate

Rezultate Obţinute

Concluzii

Download

Jurnal

  • 26 aprilie - creare pagină pe ocw
    • Introducere
    • Poză reprezentativă
    • Schemă bloc
    • Funcționalitate
    • Listă de piese
  • 15 mai
    • prototip butoane (butoanele sunt funcționale)
    • Hello World pe ecranul lcd controlat de butoane
  • 16 mai
    • ecran de start
    • ecran de joc
    • chenarul jocului (tabla)
    • grid-ul jocului (al tablei)
  • 17 mai - funcționalitatea jocului e completă
    • bilele cad în locul selectat
    • fiecare jucător are acum culoarea lui asignată
    • ecran de finish + cine este câștigătorul
    • ecran de final de joc
    • funcționalitate de replay
  • 18 mai
    • led RGB care se colorează în funcție de rândul jucătorilor si starea jocului
    • buzzer care se alătură apăsării butoanelor
    • se aude un sunet atunci când există o victorie

Bibliografie/Resurse

pm/prj2021/agrigore/connect4.1621354099.txt.gz · Last modified: 2021/05/18 19:08 by mihaela.nuta1207
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