山傘のプログラミング勉強日記

プログラミングに関する日記とどうでもよい雑記からなるブログです。

わかりやすいJava オブジェクト指向編 プログラミング演習 その1

オブジェクト指向ブラックジャックを作成

わかりやすいJava オブジェクト指向編の全17章が終わったので、最後のプログラミング演習をやっていきたいと思います。演習課題はブラックジャックの作成です。GUIでは作りませんが、オブジェクト指向で作成するようです。

カード


1 2 3 4 5 6 7 8 9 10 J Q K
spade
0 1 2 3 4 5 6 7 8 9 10 11 12 13
diamond 1 14 15 16 17 18 19 20 21 22 23 24 25 26
club 2 27 28 29 30 31 32 33 34 35 36 37 38 39
hart 3 40 41 42 43 44 45 46 47 48 49 50 51 52

次の表のようにカードを設定します。カードは物理番号(1~52)で管理され、物理番号をもとにカードの種類が決まります。物理番号は一意の値をもつので、同じソートで同じ札番号のカードは一枚だけとなります。

Cardクラス

public class Card {
	private int n;					// 1-52の物理番号
	static final int RANK = 13;	// 1つの種類の情報のカードの枚数
	static final int SUIT = 4;		// カードの種類の数
	public Card(int n) {
		this.n =  n;
	}
	public int getNum() {
		return n;
	}
	public int cardNumber() {		// 物理番号に対応する札番号(1~13)を返す
		return (n - 1) % RANK + 1;
	}
	public int suitNumber() {		// 物理番号に対応する札の種類番号(0~3)を返す
		return (n - 1) / RANK;
	}

	public static void main(String[] args) {
		for(int i = 1; i <= 52; i++) {
			Card c = new Card(i);
			System.out.printf(
				"number=%2d cardNumber=%2d suitNumber=%1d\n",
				c.getNum(), c.cardNumber(), c.suitNumber()
					);
		}
	}

}