質問するログイン新規登録

質問編集履歴

1

インデントなどを見やすいように工夫しました。また、参考までに他の部分のプログラムもアップロードしました。

2018/02/01 03:57

投稿

itchee92
itchee92

スコア7

title CHANGED
File without changes
body CHANGED
@@ -6,6 +6,8 @@
6
6
 
7
7
  Exception in thread "main" java.util.ConcurrentModificationException
8
8
  ### 該当のソースコード
9
+
10
+ ```lang-java
9
11
  public ArrayList<Card> checkSameCards(Player p) {
10
12
  ArrayList<Card> cards = p.getCardHand().getCards();
11
13
  ArrayList<Card> discards = p.getCardHand().getCards();
@@ -20,4 +22,91 @@
20
22
  }
21
23
  }
22
24
  return discards;
23
- }
25
+ }
26
+ ```
27
+
28
+
29
+ 以下がカードが同じかをチェックして捨てるプログラムです
30
+ ```lang-java
31
+ for(Player p: playerList) { //実行しているgetGameメソッドの一部
32
+ if(p instanceof User) {
33
+ p.getCardHand().showAllCards();
34
+ }
35
+ ArrayList<Card> cards = judge.checkSameCards(p);
36
+ for(Card c: cards) {
37
+ p.discardCard(c);
38
+ }
39
+ }
40
+ for(Player p: playerList) {
41
+ if(p instanceof User) {
42
+ p.getCardHand().showAllCards();
43
+ }
44
+ }
45
+ ```
46
+
47
+ 参考までにプレーヤクラスも載せときます
48
+ ```lang-java
49
+ public abstract class Player { //プレーヤクラス
50
+ /** プレーヤー名 */
51
+ private String name;
52
+ /** 手札 */
53
+ private CardHand hand = new CardHand();
54
+
55
+ /**
56
+ * 名前を指定して、じゃんけんのプレイヤーを作る
57
+ * @param name プレイヤー名
58
+ */
59
+ public Player(String name) {
60
+ super();
61
+ this.name = name;
62
+ }
63
+
64
+ /**
65
+ * 自分の名前を外部に取得させる
66
+ * @return 名前
67
+ */
68
+ public String getName() {
69
+ return name;
70
+ }
71
+
72
+ /**
73
+ * 自分の手札を外部に取得させる
74
+ */
75
+ public CardHand getCardHand() {
76
+ return hand;
77
+ }
78
+
79
+ /**
80
+ * 自分の名前をセットする
81
+ * @return セットする名前
82
+ */
83
+ public void setName(String name) {
84
+ this.name = name;
85
+ }
86
+
87
+ /**
88
+ * 相手の手札から手札を一枚引く
89
+ * @return 引いたカード
90
+ */
91
+ public void getCardHand(Player p) {
92
+ Card c = p.hand.getCardAtRandom();
93
+ hand.addCard(c);
94
+ }
95
+
96
+ public void addCardHand(Card c) {
97
+ hand.addCard(c);
98
+ }
99
+
100
+ public void discardCard(Card c) {
101
+ hand.getCards().remove(c);
102
+ }
103
+
104
+ /**
105
+ * 手札の枚数を表示する
106
+ */
107
+ public void showNumberOfCards() {
108
+ System.out.println(name+"さんの手札は"+hand.getNumberOfCards()+"枚です.");
109
+ }
110
+
111
+ }
112
+ ```