Pong

Autor: Ionescu George-Valentin

Introducere

Scopul proiectului este implementarea jocului Pong folosind un ecran LCD și butoane care reprezintă schimbarea poziției paletelor pe ecran. Se poate juca în mod endless sau temporizat, în cazul celui din urmă afișându-se cine a câștigat la final.

Descriere generală

Cei doi jucători au câte un set de două butoane fiecare pentru deplasarea paletelor pe ecran. Pe lângă acestea, avem un buton de start/pauză și unul de reset. Paletele vor avea culori diferite, iar mișcarea mingii va fi acompaniată de un sunet produs de un buzzer. Scorul fiecărui jucător este afișat deasupra jumătății atribuite acestuia. În modul temporizat, la finalul jocului, se va afișa un mesaj de tipul „Player X won”.

Hardware Design

Lista de componente

  • Arduino Uno
  • Breadboard
  • Buzzer
  • Ecran LCD
  • Butoane
  • Fire

Schema Bloc

Schema Electrică

Software Design

  • Mediu de dezvoltare: Arduino IDE
  • Biblioteci 3rd party: Adafruit_GFX (grafica), Adafruit_ST7735 (ecranul)

Algoritmul se bazează pe citirea stării butoanelor de direcție și actualizarea coordonatelor paletelor și a mingii în funcție de momentul în timp și de schimbarea direcției. La coliziuni, se pornește buzzer-ul. După fiecare minge ratată sau la apăsarea butonului de pauză, se afișează scorul. Modul temporizat/endless se alege la inceput, prin apăsarea butoanelor UP/DOWN ale celui de-al doilea jucător.

Modul “temporizat” de fapt așteapă ca un jucător să atingă un anumit scor, după declară un câștigător.

La finalul jocului, buzzer-ul va emite un sunet.

Funcții utilizate

  • buttonWait - pentru a selecta modul de joc
  • drawCourt - desenează chenarul alb al jocului
  • setup - inițializări și splash screen-ul
  • loop - jocul în sine → mișcări și coliziuni, posibilitatea de a pune pauză
  • gameOver - afișează câștigătorul
  • showScore - afișează scorul când o minge este ratată
  • pause - pune pauză

Rezultate obținute

Concluzii

Download

Bibliografie/Resurse

pm/prj2021/avaduva/pong.txt · Last modified: 2021/06/02 10:41 by george.ionescu1202
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