2.定义vector,放入数字1-52,分别代表各花色的扑克牌.从小到大为黑红梅方,1-K.
随机给四个玩家发3张牌,并打印牌面
#include <iostream>
#include <string>
#include <vector>
#include <sstream>
#include <ctime>
void show(std::vector<int> A)
{
std::string str;
std::string num;
for (size_t i = 0; i < A.size(); i++)
{
switch (A[i] % 4)
{
case 0:
str = 4;//4方
break;
case 1:
str = 6;//6黑
break;
case 2:
str = 3;//3红
break;
case 3:
str = 5;//5梅
break;
default:
break;
}
switch (A[i] / 4 + 1)
{
case 1:
num = "A";
break;
case 11:
num = "J";
break;
case 12:
num = "Q";
break;
case 13:
num = "K";
break;
default:
num = std::to_string(A[i] / 4 + 1);
break;
}
std::cout << str << " " << num << std::endl;
}
std::cout << std::endl;
}
void vectorDemo()
{
srand((unsigned)time(NULL));
std::vector<int> vec;
for (size_t i = 1; i < 53; i++)
{
vec.push_back(i);
}
std::vector<int> A, B, C, D;
int k, count = 0;
for (size_t i = 0; count<4;)
{
k = rand() % vec.size() + 1;
switch (count)
{
case 0:
A.push_back(vec[k]);
vec.erase(find(vec.begin(), vec.end(), vec[k]));
break;
case 1:
B.push_back(vec[k]);
vec.erase(find(vec.begin(), vec.end(), vec[k]));
break;
case 2:
C.push_back(vec[k]);
vec.erase(find(vec.begin(), vec.end(), vec[k]));
break;
case 3:
D.push_back(vec[k]);
vec.erase(find(vec.begin(), vec.end(), vec[k]));
break;
default:
break;
}
i++;
if (i == 3)
{
i = 0;
count++;
}
}
show(A);
show(B);
show(C);
show(D);
}
还没有思路,被这容器搞得有点蒙