Выигрышное условие со структурой if else - PullRequest
0 голосов
/ 13 апреля 2019

Я написал это простое упражнение, чтобы начать изучать c ++. Я могу выполнить код и получить некоторые случайные числа и строки из массивов. Мой вопрос касается структуры управления if() и else. Я тестирую код, и невозможно получить сообщение «Вы выиграли». Это потому, что извлеченные выигрышные карты всегда случайны. Можно ли создать лучшую структуру управления, чтобы улучшить код и иметь шанс на победу?


#include <iostream>
#include <string>
#include <random>

int main(){
    std::string name;
    std::string input;
    int carta_estratta1;
    int carta_estratta2;
    std::string seme1;
    std::string seme2;
    int carta_vincente1;
    int carta_vincente2;
    std::string seme_vincente1;
    std::string seme_vincente2;
    int bet;
    int fish = 100;
    std::string semi[4] = {"hearts","clubs","spades","diamonds"};
    int carte[9] = {2,3,4,5,6,7,8,9,10};

    std::random_device rd;
    std::mt19937_64 engine(rd());
    std::uniform_int_distribution<int> distribution(0, 8);


    std::cout << "Welcome in PokerBash! Please enter your name:" <<std::endl;
    std::getline(std::cin, name);

    std::cout << "Your name is " << name <<std::endl;
    std::cout << "You have a credit of:" << fish <<std::endl;

    do{
        std::cout << "Please enter your bet:" <<std::endl;

        std::cin >> bet;

        fish = fish - bet;

        std::cout << "Your credits after this bet:" << fish <<std::endl;

        carta_estratta1 = carte[distribution(engine)];
        seme1 = semi[rand() % 4];
        carta_estratta2 = carte[distribution(engine)];
        seme2 = semi[rand() % 4];
        carta_vincente1 = carte[distribution(engine)];
        carta_vincente2 = carte[distribution(engine)];
        seme_vincente1 = semi[rand() % 4];
        seme_vincente2 = semi[rand() % 4];

        std::cout << "Your cards are "<< carta_estratta1 <<" "<< seme1 <<" "<< carta_estratta2 <<" "<< seme2 <<std::endl;
        std::cout << "Show winning card? y/n" << std::endl;
        std::cin >> input;

            if(input == "y" || input == "Y"){
                std::cout << "Winning cards are: "<< carta_vincente1 <<" "<< seme_vincente1 <<" "<< carta_vincente2 <<" "<< seme_vincente2  <<std::endl;
                if( carta_estratta1 == carta_vincente1 && carta_estratta2 == carta_vincente2 && seme1 == seme_vincente1 && seme2 == seme_vincente2){
                    std::cout << "You win! "<< bet <<" fish will be added to your credits!";
                    fish = fish + bet;
                }
                else{
                    std::cout << "You loose!"<<std::endl;
                }
            }
    }
    while( fish != 0 );
        std::cout << "Game over" <<std::endl;
        return 0;

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...