убрать повторение в массивах С++
Пытаюсь убрать повторения в массивах
нужно чтобы в массивах были разные значения
# include <iostream>
#include <ctime>
using namespace std;
int main()
{
string mssAllKart[52] = { "♥2","♥3","♥4","♥5","♥6","♥7","♥8","♥9","♥10","♥V","♥D","♥K","♥T","♠2","♠3","♠4","♠5","♠6","♠7","♠8","♠9","♠10","♠V","♠D","♠K","♠T","♦2","♦3","♦4","♦5","♦6","♦7","♦8","♦9","♦10","♦V","♦D","♦K","♦T","♣2","♣3","♣4","♣5","♣6","♣7","♣8","♣9","♣10","♣V","♣D","♣K","♣T" };
int r = rand() % 2; int r2 = rand() % 3; string vv; int r3 = rand() % 1; string v; int r4 = rand() % 1;
string mssUser[2];
string mssP2[2];
string mssP3[2];
string mssP4[2];
string mssP5[2];
string mssP6[2];
string table[5];
int user;
cout << "Kol-vo? " << endl;
cin >> user;
if (user == 2) {
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP2[i] = mssAllKart[r];
}
for (int i = 0; i < 5; i++)
{
table[i] = mssAllKart[r2];
}
cout << "KARTI USERA " << endl;
for (int u = 0; u < 2; u++)
{
cout << mssUser[u] << " ";
}cout << endl;
cout << " ========TABLE========= " << endl;
for (int t = 0; t < 5; t++)
{
cout << table[t] << " ";
}cout << endl;
cout << "KARTI BOTA " << endl;
for (int b = 0; b < 2; b++)
{
cout << mssP2[b] << " ";
}cout << endl;
cout << "Sdelay vibor " << endl; cin >> vv;
}
if (user == 3) {
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP2[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP3[i] = mssAllKart[r];
}
for (int i = 0; i < 5; i++)
{
table[i] = mssAllKart[r2];
}
if (mssUser[0] == mssUser[1])
{
}
cout << "KARTI USERA " << endl;
for (int u = 0; u < 2; u++)
{
cout << mssUser[u] << " ";
}
cout << " ========TABLE========= " << endl;
for (int t = 0; t < 5; t++)
{
cout << table[t] << " ";
}
cout << "KARTI BOTA 1" << endl;
for (int b = 0; b < 2; b++)
{
cout << mssP2[b] << " ";
}
cout << "KARTI BOTA 2" << endl;
for (int b2 = 0; b2 < 2; b2++)
{
cout << mssP2[b2] << " ";
} cout << "Sdelay vibor " << endl; cin >> vv;
}if (user == 4) {
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP2[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP3[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP4[i] = mssAllKart[r];
}
for (int i = 0; i < 5; i++)
{
table[i] = mssAllKart[r2];
}
cout << "KARTI USERA " << endl;
for (int u = 0; u < 2; u++)
{
cout << mssUser[u] << " ";
}
cout << " ========TABLE========= " << endl;
for (int t = 0; t < 5; t++)
{
cout << table[t] << " ";
}
cout << "KARTI BOTA 1" << endl;
for (int b = 0; b < 2; b++)
{
cout << mssP2[b] << " ";
}
cout << "KARTI BOTA 2" << endl;
for (int b2 = 0; b2 < 2; b2++)
{
cout << mssP2[b2] << " ";
}
cout << "KARTI BOTA 3" << endl;
for (int b3 = 0; b3 < 2; b3++)
{
cout << mssP2[b3] << " ";
} cout << "Sdelay vibor " << endl; cin >> vv;
}if (user == 5) {
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP2[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP3[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP4[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP5[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
table[i] = mssAllKart[r2];
}
cout << "KARTI USERA " << endl;
for (int u = 0; u < 2; u++)
{
cout << mssUser[u] << " ";
}
cout << " ========TABLE========= " << endl;
for (int t = 0; t < 5; t++)
{
cout << table[t] << " ";
}
cout << "KARTI BOTA 1" << endl;
for (int b = 0; b < 2; b++)
{
cout << mssP2[b] << " ";
}
cout << "KARTI BOTA 2" << endl;
for (int b2 = 0; b2 < 2; b2++)
{
cout << mssP3[b2] << " ";
}
cout << "KARTI BOTA 3" << endl;
for (int b3 = 0; b3 < 2; b3++)
{
cout << mssP3[b3] << " ";
}
cout << "KARTI BOTA 3" << endl;
for (int b4 = 0; b4 < 2; b4++)
{
cout << mssP4[b4] << " ";
} cout << "Sdelay vibor " << endl; cin >> vv;
}if (user == 6) {
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP2[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP3[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP4[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP5[i] = mssAllKart[r];
}
for (int i = 0; i < 2; i++)
{
mssP6[i] = mssAllKart[r];
}
for (int i = 0; i < 5; i++)
{
table[i] = mssAllKart[r2];
}
cout << "KARTI USERA " << endl;
for (int u = 0; u < 2; u++)
{
cout << mssUser[u] << " ";
}
cout << " ========TABLE========= " << endl;
for (int t = 0; t < 5; t++)
{
cout << table[t] << " ";
}
cout << "KARTI BOTA 1" << endl;
for (int b = 0; b < 2; b++)
{
cout << mssP2[b] << " ";
}
cout << "KARTI BOTA 2" << endl;
for (int b2 = 0; b2 < 2; b2++)
{
cout << mssP2[b2] << " ";
}
cout << "KARTI BOTA 3" << endl;
for (int b3 = 0; b3 < 2; b3++)
{
cout << mssP3[b3] << " ";
}
cout << "KARTI BOTA 4" << endl;
for (int b4 = 0; b4 < 2; b4++)
{
cout << mssP4[b4] << " ";
}
cout << "KARTI BOTA 5" << endl;
for (int b5 = 0; b5 < 2; b5++)
{
cout << mssP5[b5] << " ";
}
cout << "KARTI BOTA 6" << endl;
for (int b6 = 0; b6 < 2; b6++)
{
cout << mssP6[b6] << " ";
} cout << "Sdelay vibor " << endl; cin >> vv;
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "♠5" && mssUser[i] == "♠6" && mssUser[i] == "♠7" && mssUser[i] == "♠8" && mssUser[i] == "♠9")
{
cout << "Стрит флеш USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "♦7" && mssUser[i] == "A♥ " && mssUser[i] == "A♠" && mssUser[i] == "A♦" && mssUser[i] == "A♣ ")
{
cout << " Каре USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "K♠" && mssUser[i] == "10♥ " && mssUser[i] == "10♠" && mssUser[i] == "K♥" && mssUser[i] == "K♣ ")
{
cout << " Фул-хаус. USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "9♣" && mssUser[i] == "10♣ " && mssUser[i] == "7♣" && mssUser[i] == "4♣" && mssUser[i] == "D♣ ")
{
cout << " Флеш. USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "2♥" && mssUser[i] == "3♦ " && mssUser[i] == "5♠" && mssUser[i] == "4♣" && mssUser[i] == "6♥ ")
{
cout << " Стрит. USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "K♥" && mssUser[i] == "K♦ " && mssUser[i] == "K♠" && mssUser[i] == "4♣" && mssUser[i] == "7♦ ")
{
cout << " Трипс . USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "6♥" && mssUser[i] == "8♦ " && mssUser[i] == "8♠" && mssUser[i] == "6♣" && mssUser[i] == "3♥ ")
{
cout << " Две пары . USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "T♦" && mssUser[i] == "2♦ " && mssUser[i] == "T♠" && mssUser[i] == "6♣" && mssUser[i] == "6♥ ")
{
cout << " Две пары . USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssUser[i] == "♥10" && mssUser[i] == "♦2 " && mssUser[i] == "♥T" && mssUser[i] == "♣K" && mssUser[i] == "♥V ")
{
cout << " Старшая карта. . USER";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "♠5" && mssP2[i] == "♠6" && mssP2[i] == "♠7" && mssP2[i] == "♠8" && mssP2[i] == "♠9")
{
cout << "Стрит флеш BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "♦7" && mssP2[i] == "A♥ " && mssP2[i] == "A♠" && mssP2[i] == "A♦" && mssP2[i] == "A♣ ")
{
cout << " Каре BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "K♠" && mssP2[i] == "10♥ " && mssP2[i] == "10♠" && mssP2[i] == "K♥" && mssP2[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "9♣" && mssP2[i] == "10♣ " && mssP2[i] == "7♣" && mssP2[i] == "4♣" && mssP2[i] == "D♣ ")
{
cout << " Флеш. BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "2♥" && mssP2[i] == "3♦ " && mssP2[i] == "5♠" && mssP2[i] == "4♣" && mssP2[i] == "6♥ ")
{
cout << " Стрит. BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "K♥" && mssP2[i] == "K♦ " && mssP2[i] == "K♠" && mssP2[i] == "4♣" && mssP2[i] == "7♦ ")
{
cout << " Трипс . BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "6♥" && mssP2[i] == "8♦ " && mssP2[i] == "8♠" && mssP2[i] == "6♣" && mssP2[i] == "3♥ ")
{
cout << " Две пары . BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "T♦" && mssP2[i] == "2♦ " && mssP2[i] == "T♠" && mssP2[i] == "6♣" && mssP2[i] == "6♥ ")
{
cout << " Две пары . BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP2[i] == "♥10" && mssP2[i] == "♦2 " && mssP2[i] == "♥T" && mssP2[i] == "♣K" && mssP2[i] == "♥V ")
{
cout << " Старшая карта. . BOT 1";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "♠5" && mssP3[i] == "♠6" && mssP3[i] == "♠7" && mssP3[i] == "♠8" && mssP3[i] == "♠9")
{
cout << "Стрит флеш BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "♦7" && mssP3[i] == "A♥ " && mssP3[i] == "A♠" && mssP3[i] == "A♦" && mssP3[i] == "A♣ ")
{
cout << " Каре BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "K♠" && mssP3[i] == "10♥ " && mssP3[i] == "10♠" && mssP3[i] == "K♥" && mssP3[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "9♣" && mssP3[i] == "10♣ " && mssP3[i] == "7♣" && mssP3[i] == "4♣" && mssP3[i] == "D♣ ")
{
cout << " Флеш. BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "2♥" && mssP3[i] == "3♦ " && mssP3[i] == "5♠" && mssP3[i] == "4♣" && mssP3[i] == "6♥ ")
{
cout << " Стрит. BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "K♥" && mssP3[i] == "K♦ " && mssP3[i] == "K♠" && mssP3[i] == "4♣" && mssP3[i] == "7♦ ")
{
cout << " Трипс . BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "6♥" && mssP3[i] == "8♦ " && mssP3[i] == "8♠" && mssP3[i] == "6♣" && mssP3[i] == "3♥ ")
{
cout << " Две пары . BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "T♦" && mssP3[i] == "2♦ " && mssP3[i] == "T♠" && mssP3[i] == "6♣" && mssP3[i] == "6♥ ")
{
cout << " Две пары . BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP3[i] == "♥10" && mssP3[i] == "♦2 " && mssP3[i] == "♥T" && mssP3[i] == "♣K" && mssP3[i] == "♥V ")
{
cout << " Старшая карта. . BOT 2";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "♠5" && mssP4[i] == "♠6" && mssP4[i] == "♠7" && mssP4[i] == "♠8" && mssP4[i] == "♠9")
{
cout << "Стрит флеш BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "♦7" && mssP4[i] == "A♥ " && mssP4[i] == "A♠" && mssP4[i] == "A♦" && mssP4[i] == "A♣ ")
{
cout << " Каре BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "K♠" && mssP4[i] == "10♥ " && mssP4[i] == "10♠" && mssP4[i] == "K♥" && mssP4[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "9♣" && mssP4[i] == "10♣ " && mssP4[i] == "7♣" && mssP4[i] == "4♣" && mssP4[i] == "D♣ ")
{
cout << " Флеш. BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "2♥" && mssP4[i] == "3♦ " && mssP4[i] == "5♠" && mssP4[i] == "4♣" && mssP4[i] == "6♥ ")
{
cout << " Стрит. BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "K♥" && mssP4[i] == "K♦ " && mssP4[i] == "K♠" && mssP4[i] == "4♣" && mssP4[i] == "7♦ ")
{
cout << " Трипс . BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "6♥" && mssP4[i] == "8♦ " && mssP4[i] == "8♠" && mssP4[i] == "6♣" && mssP4[i] == "3♥ ")
{
cout << " Две пары . BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "T♦" && mssP4[i] == "2♦ " && mssP4[i] == "T♠" && mssP4[i] == "6♣" && mssP4[i] == "6♥ ")
{
cout << " Две пары . BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP4[i] == "♥10" && mssP4[i] == "♦2 " && mssP4[i] == "♥T" && mssP4[i] == "♣K" && mssP4[i] == "♥V ")
{
cout << " Старшая карта. . BOT 3";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "♠5" && mssP5[i] == "♠6" && mssP5[i] == "♠7" && mssP5[i] == "♠8" && mssP5[i] == "♠9")
{
cout << "Стрит флеш BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "♦7" && mssP5[i] == "A♥ " && mssP5[i] == "A♠" && mssP5[i] == "A♦" && mssP5[i] == "A♣ ")
{
cout << " Каре BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "K♠" && mssP5[i] == "10♥ " && mssP5[i] == "10♠" && mssP5[i] == "K♥" && mssP5[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "9♣" && mssP5[i] == "10♣ " && mssP5[i] == "7♣" && mssP5[i] == "4♣" && mssP5[i] == "D♣ ")
{
cout << " Флеш. BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "2♥" && mssP5[i] == "3♦ " && mssP5[i] == "5♠" && mssP5[i] == "4♣" && mssP5[i] == "6♥ ")
{
cout << " Стрит. BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "K♥" && mssP5[i] == "K♦ " && mssP5[i] == "K♠" && mssP5[i] == "4♣" && mssP5[i] == "7♦ ")
{
cout << " Трипс . BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "6♥" && mssP5[i] == "8♦ " && mssP5[i] == "8♠" && mssP5[i] == "6♣" && mssP5[i] == "3♥ ")
{
cout << " Две пары . BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "T♦" && mssP5[i] == "2♦ " && mssP5[i] == "T♠" && mssP5[i] == "6♣" && mssP5[i] == "6♥ ")
{
cout << " Две пары . BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP5[i] == "♥10" && mssP5[i] == "♦2 " && mssP5[i] == "♥T" && mssP5[i] == "♣K" && mssP3[i] == "♥V ")
{
cout << " Старшая карта. . BOT 4";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "♠5" && mssP6[i] == "♠6" && mssP6[i] == "♠7" && mssP6[i] == "♠8" && mssP6[i] == "♠9")
{
cout << "Стрит флеш BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "♦7" && mssP6[i] == "A♥ " && mssP6[i] == "A♠" && mssP6[i] == "A♦" && mssP6[i] == "A♣ ")
{
cout << " Каре BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "K♠" && mssP6[i] == "10♥ " && mssP6[i] == "10♠" && mssP6[i] == "K♥" && mssP6[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "9♣" && mssP6[i] == "10♣ " && mssP6[i] == "7♣" && mssP6[i] == "4♣" && mssP6[i] == "D♣ ")
{
cout << " Флеш. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "2♥" && mssP6[i] == "3♦ " && mssP6[i] == "5♠" && mssP6[i] == "4♣" && mssP6[i] == "6♥ ")
{
cout << " Стрит. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "K♥" && mssP6[i] == "K♦ " && mssP6[i] == "K♠" && mssP6[i] == "4♣" && mssP6[i] == "7♦ ")
{
cout << " Трипс . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "6♥" && mssP6[i] == "8♦ " && mssP6[i] == "8♠" && mssP6[i] == "6♣" && mssP6[i] == "3♥ ")
{
cout << " Две пары . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "T♦" && mssP6[i] == "2♦ " && mssP6[i] == "T♠" && mssP6[i] == "6♣" && mssP6[i] == "6♥ ")
{
cout << " Две пары . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "♥10" && mssP6[i] == "♦2 " && mssP6[i] == "♥T" && mssP6[i] == "♣K" && mssP6[i] == "♥V ")
{
cout << " Старшая карта. . BOT 5";
}
}
cout << " Введи какую карту заменить" << endl;
cin >> v;
for (int i = 0; i < 2; i++)
{
mssUser[i] = v;
}
for (int n = 0; n < 2; n++)
{
mssUser[n] = mssAllKart[r3];
} cout << " Новый массив" << endl;
for (int j = 0; j < 2; j++)
{
cout << mssUser[j] << " ";
}for (int i = 0; i < 52; i++)
{
if (mssP6[i] != "♠5" && mssP6[i] != "♠6" && mssP6[i] != "♠7" && mssP6[i] != "♠8" && mssP6[i] != "♠9")
{
for (int i = 0; i < 2; i++)
{
if (mssP6[i] == mssP6[r4])
{
mssP6[i] = mssP6[r4];
}
}
for (int n = 0; n < 2; n++)
{
mssP6[n] = mssAllKart[r4];
} cout << " Новый массив" << endl;
for (int j = 0; j < 2; j++)
{
cout << mssP6[j] << " ";
}
cout << "Стрит флеш BOT 5";
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "♦7" && mssP6[i] == "A♥ " && mssP6[i] == "A♠" && mssP6[i] == "A♦" && mssP6[i] == "A♣ ")
{
cout << " Каре BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "K♠" && mssP6[i] == "10♥ " && mssP6[i] == "10♠" && mssP6[i] == "K♥" && mssP6[i] == "K♣ ")
{
cout << " Фул-хаус. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "9♣" && mssP6[i] == "10♣ " && mssP6[i] == "7♣" && mssP6[i] == "4♣" && mssP6[i] == "D♣ ")
{
cout << " Флеш. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "2♥" && mssP6[i] == "3♦ " && mssP6[i] == "5♠" && mssP6[i] == "4♣" && mssP6[i] == "6♥ ")
{
cout << " Стрит. BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "K♥" && mssP6[i] == "K♦ " && mssP6[i] == "K♠" && mssP6[i] == "4♣" && mssP6[i] == "7♦ ")
{
cout << " Трипс . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "6♥" && mssP6[i] == "8♦ " && mssP6[i] == "8♠" && mssP6[i] == "6♣" && mssP6[i] == "3♥ ")
{
cout << " Две пары . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "T♦" && mssP6[i] == "2♦ " && mssP6[i] == "T♠" && mssP6[i] == "6♣" && mssP6[i] == "6♥ ")
{
cout << " Две пары . BOT 5";
}
}
for (int i = 0; i < 52; i++)
{
if (mssP6[i] == "♥10" && mssP6[i] == "♦2 " && mssP6[i] == "♥T" && mssP6[i] == "♣K" && mssP6[i] == "♥V ")
{
cout << " Старшая карта. . BOT 5";
}
}
}
}
Ответы (2 шт):
Вы используете одни и те же значения. Вначале рандомно сгенерировали несколько значений, а потом используете их в качестве индексов.
int main()
{
int r = rand() % 2;
int r2 = rand() % 3;
int r3 = rand() % 1;
int r4 = rand() % 1;
...
for (int i = 0; i < 2; i++)
{
mssUser[i] = mssAllKart[r];
}
В данном куске кода: допустим r сгенерировалось в 1 - дальше получается mssUser[0] = "♥3" и mssUser[1] = "♥3".
И так дальше по всему коду. Т.е. вы не используете рандомные значения.
Но и рандомные значения не помогут, если не убрать возможные повторы. Тут много разных вариантов, но самый понятный написал вам @Harry - как в настоящем покере - перетасуйте колоду и выдавайте карты по одной, постепенно уменьшая колоду. Тут лучше использовать vector<string> mssAllKart в качестве стэка. Выдали карту - убрали из массива.
Чтобы не дублировать код в зависимости от количества человек, вместо 6 отдельных массивов сделайте двумерный массив для пользователей. И заполняйте в цикле
// Вместо вот этого
/*
string mssUser[2];
string mssP2[2];
string mssP3[2];
string mssP4[2];
string mssP5[2];
string mssP6[2];
*/
// Сделайте вот так
string mssUser[6][2];
// И тогда вместо
if (user == 2) {}
if (user == 3) {}
if (user == 4) {}
// У вас получится
cin >> user;
for(int i=0; i<user; i++)
{
mss[i][0] =
}
А в проверке расклада выход за пределы массива, что дает неопределенное поведение - UB (скорее всего - крах программы). У вас string mssUser[2]; - массив из 2-х элементов. А вы итерируетесь по нему до 52 элементов.
for (int i = 0; i < 52; i++)
if (mssUser[i] == "♠5" && mssUser[i] == "♠6" && mssUser[i] == "♠7" && mssUser[i] == "♠8" && mssUser[i] == "♠9")
cout << "Стрит флеш USER";
Кроме того условие в if() всегда ложь - ну не может один и тот же элемент быть одновременно равным 5-ти разным значениям.
if (mssUser[i] == "♠5" && mssUser[i] == "♠6" && ...
В этом коде ошибок и недоработок больше, чем нормального кода. Начиная с логических - проверяются не все возможные расклады, заканчивая синтаксическими - при проверке раскладов неправильно написаны карты, с пробелом mssUser[i] == "K♣ ". Или например в изначальной колоде все карты начинаются с масти ♣K, а при проверке сравниваются со значением K♣.
Так что одинаковые карты в раскладе - самая маленькая проблема этого кода.
Посмотрите, должно быть как-то так - это просто раздача:
#include <iostream>
#include <ctime>
#include <vector>
#include <algorithm>
#include <random>
using namespace std;
int main()
{
vector<string> mssAllKart = { "♥2","♥3","♥4","♥5","♥6","♥7","♥8","♥9","♥10","♥V","♥D","♥K","♥T","♠2","♠3","♠4","♠5","♠6","♠7","♠8","♠9","♠10","♠V","♠D","♠K","♠T","♦2","♦3","♦4","♦5","♦6","♦7","♦8","♦9","♦10","♦V","♦D","♦K","♦T","♣2","♣3","♣4","♣5","♣6","♣7","♣8","♣9","♣10","♣V","♣D","♣K","♣T" };
std::random_device rd; // создаем генератор случайных чисел
std::mt19937 g(rd()); // задаем функцию распределения
std::shuffle(mssAllKart.begin(), mssAllKart.end(), g); // перемешиваем колоду
cout << "Shuffled deck:\n"; // вывод перемешанной колоды на экран
for(auto& ref : mssAllKart)
cout << ref << " ";
cout << endl;
// Игроки mssUser[0] - игрок, остальные - боты
string mssUser[6][2];
string table[5];
int UserCount;
cout << "User's count? 2 <= x <=6" << endl;
cin >> UserCount;
while( UserCount < 2 || UserCount > 6)
{
cout << "User's count? 2 <= x <=6" << endl;
cin >> UserCount;
}
cout << "UserCount cards: ";
mssUser[0][0] = mssAllKart.back(); // присваиваем последнюю карту из колоды
mssAllKart.pop_back(); // удаляем последнюю карту из колоды
mssUser[0][1] = mssAllKart.back(); // присваиваем последнюю карту из колоды
mssAllKart.pop_back(); // удаляем последнюю карту из колоды
cout << mssUser[0][0] << " " << mssUser[0][1] << endl;
for(int i=1; i<UserCount; i++)
{
cout << "Bot" << i << " cards: ";
mssUser[i][0] = mssAllKart.back(); // присваиваем последнюю карту из колоды
mssAllKart.pop_back(); // удаляем последнюю карту из колоды
mssUser[i][1] = mssAllKart.back();
mssAllKart.pop_back();
cout << mssUser[i][0] << " " << mssUser[i][1] << endl;
}
cout << "Table cards: ";
for(int i = 0; i < 5; i++)
{
table[i] = mssAllKart.back(); // присваиваем последнюю карту из колоды
mssAllKart.pop_back(); // удаляем последнюю карту из колоды
cout << table[i] << " ";
}
cout << endl;
return 0;
}
Дальше всё сложнее. Нужно искать комбинации карт. Для этого нужно уметь их сортировать по значению и по масти. Чтобы использовать алгоритмы сортировки стандартной библиотеки нужно написать 2 функции сравнения карт - по значению и по масти.
Для сравнения и сортировки карт хранение их в string - неудобно. Я бы сделал структуру с 2 полями - значение и масть.
enum SuitCards : unsigned char { clubs, diamonds, hearts, spades }; // перечисление мастей
const string_view SuitCardsSymbol[] = { "♣", "♦", "♥", "♠"}; // символы мастей для вывода в консоль
enum ValueCards : unsigned char { two, three, four, five, six, seven, eight, nine, ten, jack, queen, king, ace }; // перечисление значений
const string_view ValueCardsStr[] = {"2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"}; // символы значений для вывода
struct PlayingCard
{
SuitCards suit; // масть
ValueCards value; // значение
};
std::ostream& operator<< (std::ostream &out, const PlayingCard &card) // вывод карты в поток
{
out << SuitCardsSymbol[card.suit] << ValueCardsStr[card.value];
return out;
}
int main()
{
PlayingCard card{ SuitCards::clubs, ValueCards::ten};
cout << "My card is " << card << endl;
return 0;
}
Объект такой структуры занимает всего 2 байта, в отличие от string - не менее 32 байт. Т.к. масть и значение хранятся отдельно, легче сортировать и сравнивать.
А сортировка нужна чтобы выявлять комбинации. Берем массив из 7 карт - 2 карты у игрока/бота и 5 карт на столе. Например флэш - пять карт одной масти - сортируем массив по масти, считаем есть ли там одной масти 5 карт. Или две пары - сортируем по значению и ищем одинаковые карты подряд. И т.д.