質問編集履歴
5
test
CHANGED
File without changes
|
test
CHANGED
@@ -34,6 +34,110 @@
|
|
34
34
|
|
35
35
|
```C++
|
36
36
|
|
37
|
+
|
38
|
+
|
39
|
+
#include<iostream>
|
40
|
+
|
41
|
+
#include<cstdlib>
|
42
|
+
|
43
|
+
|
44
|
+
|
45
|
+
using namespace std;
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
int draw(void)
|
50
|
+
|
51
|
+
{
|
52
|
+
|
53
|
+
static int card[53];
|
54
|
+
|
55
|
+
static int count=0; // 引いた枚数
|
56
|
+
|
57
|
+
|
58
|
+
|
59
|
+
srand(time(NULL)); // 乱数のタネ
|
60
|
+
|
61
|
+
int r;
|
62
|
+
|
63
|
+
|
64
|
+
|
65
|
+
do{
|
66
|
+
|
67
|
+
r = rand()%52+1; //1~52の乱数
|
68
|
+
|
69
|
+
card[r]++; //2回目以上なら2以上
|
70
|
+
|
71
|
+
}while(card[r] > 1 && count < 52);
|
72
|
+
|
73
|
+
|
74
|
+
|
75
|
+
if(count > 52){
|
76
|
+
|
77
|
+
r = 0;
|
78
|
+
|
79
|
+
}
|
80
|
+
|
81
|
+
|
82
|
+
|
83
|
+
count++;
|
84
|
+
|
85
|
+
|
86
|
+
|
87
|
+
return r;
|
88
|
+
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
void change(int n)
|
94
|
+
|
95
|
+
{
|
96
|
+
|
97
|
+
int suit, number; //スートと数字
|
98
|
+
|
99
|
+
|
100
|
+
|
101
|
+
suit = (n-1) / 13; //スートの計算
|
102
|
+
|
103
|
+
|
104
|
+
|
105
|
+
number = n - 13*suit; //数字の計算
|
106
|
+
|
107
|
+
|
108
|
+
|
109
|
+
switch(suit){
|
110
|
+
|
111
|
+
case 0: cout << "S"; break;
|
112
|
+
|
113
|
+
case 1: cout << "H"; break;
|
114
|
+
|
115
|
+
case 2: cout << "D"; break;
|
116
|
+
|
117
|
+
case 3: cout << "C"; break;
|
118
|
+
|
119
|
+
}
|
120
|
+
|
121
|
+
|
122
|
+
|
123
|
+
switch(number){
|
124
|
+
|
125
|
+
case 1: cout << "A"; break;
|
126
|
+
|
127
|
+
case 11: cout << "J"; break;
|
128
|
+
|
129
|
+
case 12: cout << "Q"; break;
|
130
|
+
|
131
|
+
case 13: cout << "K"; break;
|
132
|
+
|
133
|
+
default: cout << number;
|
134
|
+
|
135
|
+
}
|
136
|
+
|
137
|
+
}
|
138
|
+
|
139
|
+
|
140
|
+
|
37
141
|
void total(int n)
|
38
142
|
|
39
143
|
{
|
@@ -80,4 +184,56 @@
|
|
80
184
|
|
81
185
|
|
82
186
|
|
187
|
+
|
188
|
+
|
189
|
+
int main()
|
190
|
+
|
191
|
+
{
|
192
|
+
|
193
|
+
char check; // YかN
|
194
|
+
|
195
|
+
|
196
|
+
|
197
|
+
int number; //draw関数で引いた数字
|
198
|
+
|
199
|
+
|
200
|
+
|
201
|
+
do{
|
202
|
+
|
203
|
+
cout << "カードを引きますか?(Y/N):";
|
204
|
+
|
205
|
+
cin >> check;
|
206
|
+
|
207
|
+
if(check == 'Y'){
|
208
|
+
|
209
|
+
number = draw();
|
210
|
+
|
211
|
+
if(number){ // 0でなかったらカードを表示
|
212
|
+
|
213
|
+
change(number); // カードの数字とスートを返す
|
214
|
+
|
215
|
+
cout << endl;
|
216
|
+
|
217
|
+
}
|
218
|
+
|
219
|
+
else{
|
220
|
+
|
221
|
+
check ='N';
|
222
|
+
|
223
|
+
cout << "カードがありません。" << endl;
|
224
|
+
|
225
|
+
}
|
226
|
+
|
227
|
+
// total(number);
|
228
|
+
|
229
|
+
}
|
230
|
+
|
231
|
+
}while(check != 'N');
|
232
|
+
|
233
|
+
}
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
83
239
|
```
|
4
test
CHANGED
File without changes
|
test
CHANGED
@@ -33,8 +33,6 @@
|
|
33
33
|
どうしたらよいでしょうか??
|
34
34
|
|
35
35
|
```C++
|
36
|
-
|
37
|
-
|
38
36
|
|
39
37
|
void total(int n)
|
40
38
|
|
3
test
CHANGED
File without changes
|
test
CHANGED
@@ -30,48 +30,56 @@
|
|
30
30
|
|
31
31
|
予め他の関数で作られた数字1〜13を引数としています。
|
32
32
|
|
33
|
-
どうしたらよいでしょうか??
|
33
|
+
どうしたらよいでしょうか??
|
34
|
+
|
35
|
+
```C++
|
36
|
+
|
37
|
+
|
34
38
|
|
35
39
|
void total(int n)
|
36
40
|
|
37
41
|
{
|
38
42
|
|
39
|
-
static int
|
43
|
+
static int goukei;
|
40
44
|
|
41
45
|
|
42
46
|
|
43
|
-
|
47
|
+
goukei += n;
|
44
48
|
|
45
49
|
|
46
50
|
|
47
|
-
cout <<"Total:";
|
51
|
+
cout << "Total:";
|
48
52
|
|
49
53
|
|
50
54
|
|
51
|
-
do{
|
55
|
+
do{
|
52
56
|
|
53
|
-
if(
|
57
|
+
if(goukei<21){
|
54
58
|
|
55
|
-
cout <<
|
59
|
+
cout << goukei << endl;
|
56
60
|
|
57
|
-
}
|
61
|
+
}
|
58
62
|
|
59
|
-
else if(
|
63
|
+
else if(goukei == 21){
|
60
64
|
|
61
|
-
cout <<
|
65
|
+
cout << goukei << endl;
|
62
66
|
|
63
|
-
cout <<"Black Jack"<<endl;
|
67
|
+
cout <<"Black Jack" << endl;
|
64
68
|
|
65
|
-
break;
|
69
|
+
break;
|
66
70
|
|
71
|
+
}
|
72
|
+
|
67
|
-
}while(
|
73
|
+
}while(goukei<=21);
|
68
74
|
|
69
75
|
|
70
76
|
|
71
|
-
cout <<
|
77
|
+
cout << goukei << endl;
|
72
78
|
|
73
|
-
cout <<"21以上になりました"<<endl;
|
79
|
+
cout << "21以上になりました" << endl;
|
74
80
|
|
75
|
-
}
|
81
|
+
}
|
76
82
|
|
83
|
+
|
84
|
+
|
77
|
-
|
85
|
+
```
|
2
test
CHANGED
File without changes
|
test
CHANGED
@@ -32,9 +32,7 @@
|
|
32
32
|
|
33
33
|
どうしたらよいでしょうか??```C++
|
34
34
|
|
35
|
-
コード
|
36
|
-
|
37
|
-
|
35
|
+
void total(int n)
|
38
36
|
|
39
37
|
{
|
40
38
|
|
@@ -76,4 +74,4 @@
|
|
76
74
|
|
77
75
|
}
|
78
76
|
|
79
|
-
}
|
77
|
+
}```
|
1
test
CHANGED
File without changes
|
test
CHANGED
@@ -27,6 +27,8 @@
|
|
27
27
|
21以上になりました。
|
28
28
|
|
29
29
|
このようにカードが引かれるたびに数字を足していくtotal関数を作ったのですが出力すると適当な数字が予め足されている状態ででます。
|
30
|
+
|
31
|
+
予め他の関数で作られた数字1〜13を引数としています。
|
30
32
|
|
31
33
|
どうしたらよいでしょうか??```C++
|
32
34
|
|