This is an old revision of the document!
Blackjack
Introducere
Prezentarea pe scurt a proiectului:
Oferă o versiune interactivă a jocului clasic de cărți, blackjack, utilizând senzori pentru a determina modul în care miza este aleasă și cum jucătorii pot paria și interacționa cu dealerul.
Scopul este de a crea o experiență de joc unică, folosind senzori pentru a influența acțiunile jucătorilor și rezultatul jocului, oferind în același timp oportunitatea de a explora funcționarea acestor senzori într-un context creativ.
Ideea a fost de a combina tehnologia modernă cu un joc tradițional, adăugând un strat de interactivitate.
Este util, deoarece îi ajută pe alții să înțeleagă modul în care tehnologia poate fi aplicată pentru a îmbunătăți experiențele tradiționale.
Descriere generală
Joc interactiv de blackjack dezvoltat pe Arduino Uno;
Fotorezistorul este echivalentul butonului de hit, in funcție de luminozitate se dă sau nu hit;
Senzorul PIR detectează mișcarea pentru decizii de joc(Stand);
Microfonul ajustează miza pe baza nivelului de zgomot;
Un ecran LCD afișează scorul.
Hardware Design
Listă de piese:
* Arduino UNO (ATmega328p)
* Modul senzor PIR HC-SR501 (senzor de mișcare)
* Modul cu fotorezistor
* Modul senzor de sunet cu microfon
* LCD 1602 cu I2C
* Breadboard
* Fire mamă-mamă, tată-tată
* Cablu USB
Schema electrică:
Schema arduino:
Utilizare pini pentru fiecare componentă:
Software Design
Librării utilizate :
LiquidCrystal_I2C - pentru controlul LCD-ului cu interfata I2C
Wire - pentru comunicarea I2C
time.h - pentru generarea de numere in ordine aleatoare
Card: Reprezintă o carte de joc, având câmpurile value (valoarea cărții) și symbol (simbolul cărții - inimă, caro, treflă, pică).
Vectorul deck: Stochează pachetul de 52 de cărți.
Vectorii playerCards și dealerCards: Stochează cărțile jucătorului și respectiv ale dealerului.
resetDeck : amestecă pachetul de cărți înainte de începerea jocului și când se epuizează cărțile.
dealCard : Extrage o carte aleatorie din pachet și o adaugă la mâna jucătorului sau a dealerului.
adjustAceValue : Ajustează valoarea unui As (1 sau 11) în funcție de scorul curent.
displayPlayerScreen, displayDealerScreen: Afișează scorul și cărțile jucătorului/dealerului pe LCD.
displayResult: Afișează rezultatul final al jocului (câștig, pierdere sau egalitate).
displayCards: Afișează o mână de cărți pe LCD.
placeBet: Permite jucătorului să plaseze un pariu.
resetDeck: Amestecă pachetul de cărți.
dealCard: Extrage și distribuie o carte.
playDealerTurn: Joacă tura dealerului.
determineWinner: Determină câștigătorul jocului.
resetGame: Resetează jocul pentru o nouă rundă.
Rezultate Obţinute
Concluzii
Download
Bibliografie/Resurse