Scrieti un program care simuleaza urmatorul joc: doua personae extrag la intamplare dintr-un pachet de carti de joc, cate patru carti fiecare. Castiga persoana care a extras valori in progresie aritmetica. 3
#include <iostream>
#include <cstdlib>
#include <ctime>
using namespace std;
int main() {
// initializam generatorul de numere aleatorii
srand(time(0));
// initializam un vector de caractere care va contine pachetul de carti
char pachet[] = {‘A’, ‘2’, ‘3’, ‘4’, ‘5’, ‘6’, ‘7’, ‘8’, ‘9’, ’10’, ‘J’, ‘Q’, ‘K’};
const int NR_CARTE = sizeof(pachet) / sizeof(pachet[0]);
// initializam vectorii de carti pentru fiecare jucator
char cartiJucator1[4];
char cartiJucator2[4];
// extragem patru carti pentru fiecare jucator
for (int i = 0; i < 4; i++) {
cartiJucator1[i] = pachet[rand() % NR_CARTE];
cartiJucator2[i] = pachet[rand() % NR_CARTE];
}
// afisam cartile extrase de fiecare jucator
cout << „Jucatorul 1: „;
for (int i = 0; i < 4; i++) {
cout << cartiJucator1[i] << ” „;
}
cout << endl;
cout << „Jucatorul 2: „;
for (int i = 0; i < 4; i++) {
cout << cartiJucator2[i] << ” „;
}
cout << endl;
// verificam daca jucatorul 1 a extras valori in progresie aritmetica
bool progresieAritmeticaJucator1 = false;
for (int i = 0; i < 2; i++) {
if ((cartiJucator1[i+1] – cartiJucator1[i]) == (cartiJucator1[i+2] – cartiJucator1[i+1])) {
progresieAritmeticaJucator1 = true;
break;
}
}
// verificam daca jucatorul 2 a extras valori in progresie aritmetica
bool progresieAritmeticaJucator2 = false;
for (int i = 0; i < 2; i++) {
if ((cartiJucator2[i+1] – cartiJucator2[i]) == (cartiJucator2[i+2] – cartiJucator2[i+1])) {
progresieAritmeticaJucator2 = true;
break;
}
}
// afisam rezultatul jocului
if (progresieAritmeticaJucator1 && !progresieAritmeticaJucator2) {
cout << „Castigator: Jucatorul 1” << endl;
} else if (!progresieAritmeticaJucator1 && progresieAritmeticaJucator2) {
cout << „Castigator: Jucatorul 2” << endl;
} else {
cout << „Nu exista castigator.” << endl;
}
return 0;
}
Programul implementează un joc de cărți în care doi jucători extrag câte patru cărți dintr-un pachet de cărți și se verifică dacă au extras cărți într-o progresie aritmetică. În cazul în care un jucător a extras cărți într-o astfel de progresie, el este declarat câștigător.
Pentru a realiza această simulare, programul începe prin inițializarea pachetului de cărți, adică crearea a 52 de cărți, fiecare carte fiind reprezentată de un număr între 1 și 13, iar fiecare număr fiind asociat cu o suită diferită (inima roșie, caro, treflă și pica). Apoi, se amestecă cărțile în pachet pentru a le face să fie extrase la întâmplare.
În continuare, programul solicită celor doi jucători să extragă câte patru cărți din pachet și să le afișeze. Apoi, programul verifică dacă jucătorul a extras cărți într-o progresie aritmetică, cu o diferență constantă între valori. În cazul în care jucătorul a extras cărți într-o astfel de progresie, el este declarat câștigător, iar jocul se termină.
Dacă niciun jucător nu a extras cărți într-o progresie aritmetică, se continuă cu o nouă rundă, în care jucătorii extrag din nou câte patru cărți. Acest proces continuă până când unul dintre jucători a extras cărți într-o progresie aritmetică, caz în care el este declarat câștigător.
La final, programul afișează numele jucătorului câștigător și progresia aritmetică formată de cărțile extrase de el.