わかりやすいJava オブジェクト指向編 プログラミング演習 その3
プレイヤとディーラの作成
ブラックジャックはプレイヤとディーラとの勝負なので、それらに対応するクラスを作ります。
プレイヤクラスでは、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
- メディア: 単行本
- この商品を含むブログを見る