案例需求(猜扑克牌)
随机产出三份信息:
1、1~10的数字;
2、字符串,红色或者黑色
3、红色出红桃方块,黑色出梅花黑桃
代码
#include "iostream"
#include "random"
using namespace std;
int get_random_num(int min,int max) {
//创建一个随机数生成器
random_device rd;
mt19937 gen(rd());
//定义一个均匀分布的整数范围
uniform_int_distribution<>dis(min,max);
//生成一个随机数并输出
int random_number = dis(gen);
return random_number;
}
int main() {
//信息1:给出一个随机的1-10的数字
int num = get_random_num(1,10);
//信息2:字符串,红色或者黑色
string color = get_random_num(0,1) ? "红色": "黑色";
//信息3:红色:给出红桃或方块;黑色:给出黑桃或梅花
string suit ;
if(color == "红色") {
suit = get_random_num(0,1) ? "红桃":"方块";
}else {
suit = get_random_num(0,1) ? "黑桃":"梅花";
}
cout << "请告诉我这张牌的点数:" << endl;
int guest_n;
cin >> guest_n;
while ( guest_n != num) {
if(guest_n > num) {
cout << "猜大了" << endl;
cin >> guest_n;
}else {
cout << "猜小了" << endl;
cin >> guest_n;
}
}
cout << "恭喜你猜对了,这张牌的点数是:"<< num << endl;
cout << "请告诉我这张牌的颜色(红色or黑色):" << endl;
string guest_c;
cin >> guest_c;
while(guest_c != color) {
cout << "猜错了,再猜一次吧"<<endl;
cin >> guest_c;
}
cout << "恭喜你猜对了,这张牌的颜色是:"<< color << endl;
string guest_s;
if(color == "红色") {
cout << "请告诉我这张牌的类型(红桃or方块):" << endl;
cin >> guest_s;
while (guest_s != suit) {
cout << "猜错了,再猜一次吧"<<endl;
cin >> guest_s;
}
}
if(color == "黑色") {
cout << "请告诉我这张牌的类型(黑桃or梅花):" << endl;
cin >> guest_s;
while (guest_s != suit) {
cout << "猜错了,再猜一次吧"<<endl;
cin >> guest_s;
}
}
cout << "恭喜你猜对了,这张牌是:" << suit << num << endl;
return 0;
}