プレイヤとディーラの作成
ブラックジャックはプレイヤとディーラとの勝負なので、それらに対応するクラスを作ります。
プレイヤクラスでは、2枚カードを引き、全ての手札を公開します。追加でカードを引くかどうかはプレイヤに任されます。一方で、ディーラクラスでは手札を一枚公開し、手札の合計が16を超えるまでカードを引きます。
Playerクラス
import java.util.ArrayList;
public class Player {
private CardDeck deck;
// 手札
protected ArrayList<Card> hand;
// プレイヤの名前
protected String name;
// プレイヤのアイコン
protected String icon;
public Player(String name, String icon, CardDeck deck) {
this.name = name;
this.icon = icon;
this.deck = deck;
hand = new ArrayList<Card>();
initialize();
}
public void initialize() {
hand.clear();
for(int i = 0; i < 2; i++) {
addACard();
}
}
public void addACard() {
Card c = deck.next();
if(c != null) {
hand.add(c);
}
}
// 手札の得点を返す
public int score() {
int sum = 0;
for(Card c : hand) {
sum += c.score();
}
return sum;
}
// スコアと手札の文字列表現を返す
public String toString() {
StringBuilder sb = new StringBuilder();
sb.append(icon).append(name);
sb.append(" [").append(score()).append("] ");
for(Card c : hand) {
sb.append(c.toString()).append(" ");
}
return sb.toString();
}
public static void main(String[] args) {
CardDeck deck = new CardDeck(52);
Player p = new Player("Player", "■", deck);
p.addACard();
System.out.println(p);
}
}
Dealerクラス
public class Dealer extends Player{ public Dealer(String name, String icon, CardDeck deck) { super(name, icon, deck); } // 手札のスコアが16を超えるまでカードを引く public void over16() { while(score() <= 16) { addACard(); } } // 一枚目だけを公開する public String half() { StringBuilder sb = new StringBuilder(); sb.append(icon).append(name); sb.append(" [?] "); halfStr(sb); sb.append("********"); return sb.toString(); } void halfStr(StringBuilder sb) { Card c = hand.get(0); sb.append(c.toString()); sb.append(" "); } public static void main(String[] args) { CardDeck deck = new CardDeck(52); Dealer d = new Dealer("Dealer", "□", deck); // 手札を半分隠して表示する System.out.println(d.half()); // 手札を全て公開する System.out.println(d); // 手札のスコアが16を超えるまでカードを引く d.over16(); // 手札を表示する System.out.println(d); } }

- 作者: 川場隆
- 出版社/メーカー: 秀和システム
- 発売日: 2010/03/25
- メディア: 単行本
- 購入: 4人 クリック: 34回
- この商品を含むブログ (9件) を見る

- 作者: 川場隆
- 出版社/メーカー: 秀和システム
- 発売日: 2018/03/31
- メディア: 単行本
- この商品を含むブログを見る