回答編集履歴
2
訂正
test
CHANGED
@@ -6,10 +6,12 @@
|
|
6
6
|
|
7
7
|
#include <stdbool.h>
|
8
8
|
|
9
|
+
#include <stdint.h>
|
10
|
+
|
11
|
+
#include <stdlib.h>
|
12
|
+
|
9
13
|
#include <time.h>
|
10
14
|
|
11
|
-
#include <stdlib.h>
|
12
|
-
|
13
15
|
|
14
16
|
|
15
17
|
void swap(int8_t *b1, int8_t *b2){
|
@@ -42,9 +44,7 @@
|
|
42
44
|
|
43
45
|
}
|
44
46
|
|
45
|
-
|
46
|
-
|
47
|
-
//
|
47
|
+
// C言語にもconstexprください
|
48
48
|
|
49
49
|
#define TRUMP_SUIT 4
|
50
50
|
|
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
#define TRUMP_MAX_RANK 13
|
56
56
|
|
57
|
-
#define TRUMP_SUIT_
|
57
|
+
#define TRUMP_SUIT_OFFSET 6
|
58
58
|
|
59
59
|
#define TRUMP_RANK_MASK 63
|
60
60
|
|
@@ -98,13 +98,13 @@
|
|
98
98
|
|
99
99
|
for(int k = 1; k <= TRUMP_MAX_RANK; k++)
|
100
100
|
|
101
|
-
deck[i++] = (j << TRUMP_SUIT_
|
101
|
+
deck[i++] = (j << TRUMP_SUIT_OFFSET) | k;
|
102
102
|
|
103
103
|
// ジョーカーの挿入
|
104
104
|
|
105
105
|
for(int j = 0; j < TRUMP_JOKER_AMOUNT; j++)
|
106
106
|
|
107
|
-
deck[i++] = (j << TRUMP_SUIT_
|
107
|
+
deck[i++] = (j << TRUMP_SUIT_OFFSET);
|
108
108
|
|
109
109
|
return true;
|
110
110
|
|
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
for(int i = 0; i < size; i++){
|
116
116
|
|
117
|
-
int suit = cards[i] >> TRUMP_SUIT_
|
117
|
+
int suit = cards[i] >> TRUMP_SUIT_OFFSET;
|
118
118
|
|
119
119
|
int rank = cards[i] & TRUMP_RANK_MASK;
|
120
120
|
|
@@ -134,23 +134,17 @@
|
|
134
134
|
|
135
135
|
}
|
136
136
|
|
137
|
-
|
138
|
-
|
139
137
|
int main(){
|
140
138
|
|
141
139
|
srand(time(NULL));
|
142
140
|
|
143
|
-
|
144
|
-
|
145
141
|
CARD deck[TRUMPS];
|
146
142
|
|
147
143
|
deck_build(deck, TRUMPS);
|
148
144
|
|
149
145
|
shuffle(deck, TRUMPS);
|
150
146
|
|
151
|
-
// シャッフルした山札の表示
|
152
|
-
|
153
|
-
|
147
|
+
display_cards(deck, TRUMPS);
|
154
148
|
|
155
149
|
|
156
150
|
|
1
修正
test
CHANGED
@@ -54,7 +54,7 @@
|
|
54
54
|
|
55
55
|
#define TRUMP_MAX_RANK 13
|
56
56
|
|
57
|
-
#define TRUMP_SUIT_
|
57
|
+
#define TRUMP_SUIT_offset 6
|
58
58
|
|
59
59
|
#define TRUMP_RANK_MASK 63
|
60
60
|
|
@@ -98,13 +98,13 @@
|
|
98
98
|
|
99
99
|
for(int k = 1; k <= TRUMP_MAX_RANK; k++)
|
100
100
|
|
101
|
-
deck[i++] = (j << TRUMP_SUIT_
|
101
|
+
deck[i++] = (j << TRUMP_SUIT_offset) | k;
|
102
102
|
|
103
103
|
// ジョーカーの挿入
|
104
104
|
|
105
105
|
for(int j = 0; j < TRUMP_JOKER_AMOUNT; j++)
|
106
106
|
|
107
|
-
deck[i++] = (j << TRUMP_SUIT_
|
107
|
+
deck[i++] = (j << TRUMP_SUIT_offset);
|
108
108
|
|
109
109
|
return true;
|
110
110
|
|
@@ -114,7 +114,7 @@
|
|
114
114
|
|
115
115
|
for(int i = 0; i < size; i++){
|
116
116
|
|
117
|
-
int suit = cards[i] >> TRUMP_SUIT_
|
117
|
+
int suit = cards[i] >> TRUMP_SUIT_offset;
|
118
118
|
|
119
119
|
int rank = cards[i] & TRUMP_RANK_MASK;
|
120
120
|
|