回答編集履歴

2

コード追記

2020/07/10 09:07

投稿

fana
fana

スコア11996

test CHANGED
@@ -5,3 +5,59 @@
5
5
  「現実世界でカードを配る状況」を模倣するのがわかりやすいのではないでしょうか.
6
6
 
7
7
  すなわち,最初にシャッフルして,あとは1枚ずつ取り出していく.
8
+
9
+
10
+
11
+ ---
12
+
13
+
14
+
15
+ コードの雰囲気を示しますが,シャッフルするところは自身で解決してください.
16
+
17
+ 「C言語 配列 シャッフル」とか「C言語 配列 ランダムシャッフル」とかで検索すれば,方法論はすぐ見つかると思うので.
18
+
19
+
20
+
21
+ ```C
22
+
23
+ unsigned char Cards[52];
24
+
25
+ unsigned char NextIndexForCards = 0xFF;
26
+
27
+
28
+
29
+ //デックの初期化
30
+
31
+ void Initialize_Deck()
32
+
33
+ {
34
+
35
+ unsigned char i;
36
+
37
+ NextIndexForCards = 0;
38
+
39
+ for( i=0; i<52; ++i ){ Cards[i] = i+1; }
40
+
41
+
42
+
43
+ //TODO : ここで配列Cardsの内容を適当にシャッフルする
44
+
45
+ }
46
+
47
+
48
+
49
+ //デックから1枚カードを引く.
50
+
51
+ //カードが残っていない場合は0を返す.
52
+
53
+ int Draw_Card()
54
+
55
+ {
56
+
57
+ if( NextIndexForCards >= 52 )return 0;
58
+
59
+ return (int)Cards[ NextIndexForCards++ ];
60
+
61
+ }
62
+
63
+ ```

1

1文字抜けていたのを修正

2020/07/10 09:07

投稿

fana
fana

スコア11996

test CHANGED
@@ -1,4 +1,4 @@
1
- 提示されたコードは無関係な話になりますが…
1
+ 提示されたコードは無関係な話になりますが…
2
2
 
3
3
 
4
4