Помогите упростить код

2 игрока, каждый тянет 1 карту по очереди, колода 36карт + 2 джокера .с 6 по 10 за карту 1 очко, в-2,д-3,к-4,т-10,дж20.если у какого то игрока сумма очков больше 20 то вывести победителя

вот код, можно помочь сделать ее без классов? то есть просто for и массивы, rand

#include
#include
#include
#include
#include
using namespace std;

class Game
{
private:
string players[2] = { "1", "2" };
unsigned short activePlayer = 0;
unsigned short players_score[2] = { 0, 0 };
vector deck = { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 10, 10, 10, 10, 20, 20 };

public:
Game(string pl1, string pl2)
{
this->players[0] = pl1;
this->players[1] = pl2;
}

void play()
{
srand(time(NULL));
while(this->deck.size() > 0 && this->players_score[0] <= 20 && this->players_score[1] <= 20)
{
int random_num = (std::rand() % (37));
cout << random_num << " " << this->deck.at(random_num) << endl;

this->players_score[this->activePlayer] += this->deck.at(random_num);
this->activePlayer = (this->activePlayer == 0? 1 : 0);
this->deck.erase(this->deck.begin() + random_num);
}

if (this->players_score[0] > 20)
{
cout << "Player " << this->players[0] << " WON!";
}
else if (this->players_score[1] > 20)
{
cout << "Player " << this->players[1] << " WON!";
}
}
};

int main()
{
setlocale(LC_ALL, "Russian");
Game *g = new Game("igrok one", "igrok two");
g->play();
return 0;
}

http://cpp.sh/42kfg

Внимание! Это довольно старый топик, посты в него не попадут в новые, и их никто не увидит. Пишите пост, если хотите просто дополнить топик, а чтобы задать новый вопрос — начните новый.

Ответить

Вы можете использовать разметку markdown для оформления комментариев и постов. Используйте функцию предпросмотра для проверки корректности разметки.

Пожалуйста, оформляйте исходный код в соответствии с правилами разметки. Для того, чтобы вставить код в комментарий, скопируйте его в текстовое поле ниже, после чего выделите то, что скопировали и нажмите кнопку «код» в панели инструментов. Иначе ваш код может принять нечитаемый вид.

Либо производите оформление кода вручную, следующим образом:

``` #include <iostream> using namespace std; int main() { // ... } ```

Предпросмотр сообщения

Ваше сообщение пусто.