Gabriel-Eugen VĂDUVA (25137) - X si 0 cu matrice LED-uri + AI

Autorul poate fi contactat la adresa: Login pentru adresa

Introducere

Proiectul consta in realizarea jocului X si 0 folosind o matrice de LED-uri bicolore 3×3.

Jucatorul va avea posibilitatea sa aleaga intre doua moduri de joc:

  • player vs player
  • player vs computer

Selectia intre cele doua moduri se va face prin apasarea butonului AI. Mutarile se vor realiza folosind cinci butoane: UP, DOWN, LEFT, RIGHT si OK, butonul din centru care seteaza mutarea aleasa de jucator.

Fiecare jucator va avea asociata cate o culoare: Player 1 – <fc #FF0000>Rosu</fc>, Player 2 – <fc #008000>Verde</fc>.

Se va juca cel mai bun din 3. De aceea vor fi 3 LED-uri pentru scor. Dupa fiecare meci se va aprinde un LED doar daca Player 1 a castigat runda.

Descriere generală

Hardware Design

Lista piese de baza:

  • ATMEGA324PA-PU, COD: ATMEGA324PA-PU
  • USB-B, COD: USB B-PCB-R
  • 16MHZ QMIM016, COD: Q16.000 MHz HC-49S
  • 2 DIODE ZENER, COD: BZX55C3V3
  • 2 LED-uri EL333, COD: CLL-50221
  • K1X10 WSL040, COD: HN1X40
  • K2X10, COD: HN2X10
  • 2 PUSHBUTTON, COD: TS-06E (TS-3)
  • Rezistente 100R, 470, 1K5, 10K
  • Condensator ceramic 100nF, 15pF
  • Soclu DIP40 dil40emf, COD: LC40
  • Jumper

Piese pentru proiect:

  • Push button x5, COD: DTS63K
  • LED bicolor x10, COD: L-59EGW
  • Placa test x1, COD: H25SR150
  • Rezistente 160Ohm x10, COD: PMR1T-160R
  • Bareta 40xpini x1, COD: 2PH1-40-UA
  • LED rosu x10, COD: L-53ID
  • Fire mama-mama x40, COD: ACS-CAB-09

Piesele au fost achizitionate de pe www.tme.eu si www.robofun.ro

Software Design

Mediul de dezvoltare folosit: Atmel Studio 7
Pentru partea de AI am folosit o euristica simpla: https://kartikkukreja.wordpress.com/2013/03/30/heuristic-function-for-tic-tac-toe/
Proiectul contine:

  • main.cpp - contine implementarea jocului si tratarea inputului prin butoane.
  • square.h si square.cpp - contine clasa Square ce reprezinta un patrat din X si 0.
  • board.h si board.cpp - contine clasa Board ce reprezinta tabela X si 0.

Clasa Square contine metode de aprindere si stingere a LED-ului in functie de jucatorul curent.
Aceasta clasa contine pinii asociati respectivului LED.

Clasa Board contine o matrice 3×3 de Square.
In Board am implementat metode ce tin de evaluarea tabelei si selectarea urmatoarei miscari.
Tot aici am implementat si logica AI-ului.

In mare parte, game loop-ul (pseudocod) este urmatorul:

# Wait for user to start the game
while game is not over:
    if computer turn:
        # Choose best move
        if game over:
            # Update score
            # Reset board
        else:
            # Swap players
    else:
        # Handle input from players
        # Make move
    if game over:
        # Update score
        # Reset board
    else
        # Swap players

Rezultate Obţinute

Am obtinut un proiect functional.

Concluzii

A fost un proiect interesant.

Download

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Resurse Software

Resurse Hardware

pm/prj2016/aconstantinescu/vgabi.txt · Last modified: 2021/04/14 17:07 (external edit)
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