このソースコードを使って、スートを引数にとり、これまでに同じスートを引いたかどうかチェックする関数(check関数)はどのように作成したらいいのでしょうか?よろしくお願いします。```C++
#include<iostream>
#include<cstdlib>
using namespace std;
int draw(void)
{
static int card[53];
static int count=0; // 引いた枚数
srand(time(NULL)); // 乱数のタネ
int r;
do{
r = rand()%52+1; //1~52の乱数
card[r]++; //2回目以上なら2以上
}while(card[r] > 1 && count < 52);
if(count >=52){
r = 0;
}
count++;
return r;
}
void convert(int card, char* suit, int* num)
{
*suit = (card-1) / 13; //スートの計算
*num = card - 13 * *suit; //数字の計算
switch(*suit){
case 0: cout << "スートは" << "S"; break;
case 1: cout << "スートは" << "H"; break;
case 2: cout << "スートは" << "D"; break;
case 3: cout << "スートは" << "C"; break;
}
}
int main()
{
char check; //YかN
int card=0; //draw関数で引いた数字
char suits; //トランプのスート
int nums; //トランプの数字
do{
cout << "カードを引きますか?(Y/N):";
cin >> check;
if(check == 'Y'){
card = draw(); //カードを引く
convert(card,&suits,&nums);
cout << suits << ","; cout << "数字は" << nums << endl; }
}while(check != 'N');
}
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/03 03:30
2020/08/03 03:32