|
lse if (flag == 1){
b_num1
= rand() % ?3;
b_num3
= rand() % ?3;
if (b_num1 + b_num3 >= 3){
b_num1--;
b_num3--;
}
b_num2 = bomb_num - b_num1 - b_num3;
}else{
b_num2
= rand() % ?3;
b_num3
= rand() % ?3;
if (b_num2 + b_num3 >= 3){
b_num2--;
b_num3--;
}
b_num1 = bomb_num - b_num2 - b_num3;
}
break;
case 3:
if (flag == 0){
b_num1
= rand() % ?4;
b_num2
= rand() % ?4;
if (b_num1 + b_num2>=4 && b_num1 + b_num2<=5){
b_num1--;
b_num2--;
}else if (b_num1 + b_num2 >= 6){
b_num1 = b_num1 - 2;
b_num2 = b_num2 - 2;
}else{
//....
}
b_num3 = bomb_num - b_num1 - b_num2;
}else if (flag == 1){
b_num1
= rand() % ?4;
b_num3
= rand() % ?4;
if (b_num1 + b_num3>=4 && b_num1 + b_num3<=5){
b_num1--;
b_num3--;
}else if (b_num1 + b_num3 >= 6){
b_num1 = b_num1 - 2;
b_num3 = b_num3 - 2;
}else{
//....
}
b_num2 = bomb_num - b_num1 - b_num3;
}else{
b_num2
= rand() % ?4;
b_num3
= rand() % ?4;
if (b_num2 + b_num3>=4 && b_num2 + b_num3<=5){
b_num2--;
b_num3--;
}else if (b_num2 + b_num3 >= 6){
b_num2 = b_num2 - 2;
b_num3 = b_num3 - 2;
}else{
//....
}
b_num1 = bomb_num - b_num2 - b_num3;
}
break;
default:
break;
}
// 打印3个玩家分配到的炸弹数
cout<
cout<
cout<
int bomb_tmp = 0;
int other_card = 0;
for (int i = 0; i < 54;){
if (last_all_cards.size() < 17){
// 该判断是为了预留出炸弹的位置
if (last_all_cards.size() < b_num1 * 4){
// 满足条件分配炸弹 ?new_arr_vc[bomb_tmp]得到炸弹基数
for (int j = 0; j < 4; j++){
last_all_cards.push_back(card_arr[new_arr_vc[bomb_tmp] * 4 + j]);
cout<
i++;
}
bomb_tmp++;
}else{
last_all_cards.push_back(other_card_vc[other_card]);
other_card++;
cout<
i++;
}
}else if (last_all_cards.size() >= 17 && last_all_cards.size() < 34){
// 该判断是为了预留出炸弹的位置
if (last_all_cards.size() < b_num2 * 4 + 17){
// 满足条件分配炸弹
for (int j = 0; j < 4; j++){
last_all_cards.push_back(card_arr[new_arr_vc[bomb_tmp] * 4 + j]);
cout<
i++;
}
bomb_tmp++;
}else{
last_all_cards.push_back(other_card_vc[other_card]);
other_card++;
cout<
i++;
}
}else if (last_all_cards.size() >= 34 && last_all_cards.size() < 51){
// 该判断是为了预留出炸弹的位置
if (last_all_cards.size() < b_num3 * 4 + 34){
// 满足条件分配炸弹
for (int j = 0; j < 4; j++){
last_all_cards.push_back(card_arr[new_arr_vc[bomb_tmp] * 4 + j]);
cout<
i++;
}
bomb_tmp++;
}else{
last_all_cards.push_back(other_card_vc[other_card]);
other_card++;
cout<
i++;
}
}else{
// 加入三张公共牌
last_all_cards.push_back(other_card_vc[other_card]);
other_card++;
cout<
i++;
}
} ? ? ?cout<<"last_all_cards size ="<
// 将54张牌打印出看效果
for (int i = 53; i >= 0; i--){
cout<
}
cout<
system("pause"); }
测试部分效果如下:有不明白的也可以问我,有更好的方法的可以吐槽,大家互相学习,谢谢!
|