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.

Similar Posts

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *