質問編集履歴
6
記載内容を変更いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -9,7 +9,7 @@
|
|
9
9
|
### 実現したいこと
|
10
10
|
カードを引いて数字とマークを取得できるようになりたい。
|
11
11
|
|
12
|
-
|
12
|
+
|
13
13
|
|
14
14
|
|
15
15
|
### 発生している問題・エラーメッセージ
|
5
タイトルを変更しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
Java エラーが表示され
|
1
|
+
Java エラーが表示された。
|
test
CHANGED
File without changes
|
4
タイトルを変更しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
|
1
|
+
Java エラーが表示される。
|
test
CHANGED
File without changes
|
3
タイトルを変更しました。
test
CHANGED
@@ -1 +1 @@
|
|
1
|
-
トランプ
|
1
|
+
トランプ エラーが表示される。
|
test
CHANGED
File without changes
|
2
現在私の方で表示できる画面の状況を追記しました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -8,6 +8,8 @@
|
|
8
8
|
|
9
9
|
### 実現したいこと
|
10
10
|
カードを引いて数字とマークを取得できるようになりたい。
|
11
|
+
|
12
|
+

|
11
13
|
|
12
14
|
|
13
15
|
### 発生している問題・エラーメッセージ
|
1
コードを追記いたしました。
test
CHANGED
File without changes
|
test
CHANGED
@@ -92,6 +92,71 @@
|
|
92
92
|
|
93
93
|
}
|
94
94
|
|
95
|
+
Deck.java クラス
|
96
|
+
|
97
|
+
package Kensyu;
|
98
|
+
|
99
|
+
import java.util.ArrayList;
|
100
|
+
import java.util.Arrays;
|
101
|
+
import java.util.Collections;
|
102
|
+
import java.util.List;
|
103
|
+
class Card{
|
104
|
+
|
105
|
+
int suit; // マーク(0:スペード/1:ハート/2:ダイヤ/3:クラブ)
|
106
|
+
int no; // 数字(A=1/J=11/Q=12/K=13)
|
107
|
+
|
108
|
+
public class Deck {
|
109
|
+
//カード枚数
|
110
|
+
final int GOUKEI_CARD = 52;
|
111
|
+
|
112
|
+
// メンバ変数定義
|
113
|
+
// カードリスト(山札) 0~51の要素を入れ、それぞれマークと数字を割り当てる
|
114
|
+
// 0 ~12:スペードA~K / 13~25:ハートA~K / 26~38:ダイヤA~K / 39~51:クラブA~K
|
115
|
+
private List<Integer> card_list;
|
116
|
+
|
117
|
+
// 次に取り出すカード番号(1枚引くごとに1加算する)
|
118
|
+
private int card_index = 0;
|
119
|
+
|
120
|
+
// 初期化処理
|
121
|
+
public Deck()
|
122
|
+
{
|
123
|
+
// 次に取り出すカード番号を初期化
|
124
|
+
card_index = 0; // 1枚目
|
125
|
+
|
126
|
+
// 山札を初期化
|
127
|
+
card_list = new ArrayList<>(Arrays.asList(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51));
|
128
|
+
|
129
|
+
// 山札をシャッフルする
|
130
|
+
Collections.shuffle(card_list);
|
131
|
+
}
|
132
|
+
|
133
|
+
// 山札からカードを1枚取り出し、そのカードのマークと数字をリターンする
|
134
|
+
public Card GetCard()
|
135
|
+
{
|
136
|
+
Card card_info = new Card(); // カード情報格納用
|
137
|
+
int card_no = 0; // カード番号
|
138
|
+
|
139
|
+
// カードを一枚取り出して、カード番号(0~51のいずれか)を取得
|
140
|
+
card_no = (int) card_list.get(card_index); // リストの先頭要素を取り出す
|
141
|
+
|
142
|
+
// 1枚取り出したのでカード番号を1加算
|
143
|
+
card_index++;
|
144
|
+
|
145
|
+
// 山札をすべて引いた場合、山札を初期化する
|
146
|
+
if( GOUKEI_CARD <= card_index )
|
147
|
+
{
|
148
|
+
card_index = 0; // 先頭に戻す
|
149
|
+
Collections.shuffle(card_list); // 山札をシャッフルする
|
150
|
+
}
|
151
|
+
|
152
|
+
card_info.suit = card_no / 13; // マーク=カード番号を13で割った商
|
153
|
+
card_info.no = (card_no % 13) + 1; // 数字=カード番号を13で割った余り+1
|
154
|
+
|
155
|
+
return card_info;
|
156
|
+
}
|
157
|
+
}
|
158
|
+
|
159
|
+
}
|
95
160
|
|
96
161
|
```
|
97
162
|
|