Table of Contents

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:

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:

Piese pentru proiect:

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:

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

Arhiva proiectului

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