質問編集履歴

6

記載内容を変更いたしました。

2022/07/30 10:00

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -9,7 +9,7 @@
9
9
  ### 実現したいこと
10
10
  カードを引いて数字とマークを取得できるようになりたい。
11
11
 
12
- ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-30/a6dbd5ca-7e07-4849-856a-d3a826ac5bc3.png)
12
+
13
13
 
14
14
 
15
15
  ### 発生している問題・エラーメッセージ

5

タイトルを変更しました。

2022/07/30 09:48

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- Java エラーが表示され
1
+ Java エラーが表示され
test CHANGED
File without changes

4

タイトルを変更しました。

2022/07/30 09:46

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- トランプ エラーが表示される。
1
+ Java エラーが表示される。
test CHANGED
File without changes

3

タイトルを変更しました。

2022/07/30 09:45

投稿

退会済みユーザー
test CHANGED
@@ -1 +1 @@
1
- トランプ High&Low エラーが表示される。
1
+ トランプ エラーが表示される。
test CHANGED
File without changes

2

現在私の方で表示できる画面の状況を追記しました。

2022/07/30 08:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -8,6 +8,8 @@
8
8
 
9
9
  ### 実現したいこと
10
10
  カードを引いて数字とマークを取得できるようになりたい。
11
+
12
+ ![イメージ説明](https://ddjkaamml8q8x.cloudfront.net/questions/2022-07-30/a6dbd5ca-7e07-4849-856a-d3a826ac5bc3.png)
11
13
 
12
14
 
13
15
  ### 発生している問題・エラーメッセージ

1

コードを追記いたしました。

2022/07/30 07:41

投稿

退会済みユーザー
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