Javaプログラミング学習サイト ゆるゆるプログラミング

・Javaソースダウンロード(Cards.java)

トランプ(カード)を操作するクラスのJavaソースコードです。このクラスでトランプのシャッフル(並び替え)と取り出しが行えます。このサンプルでは、取り出した値の100の位をジョーカーと4種類のマーク(スペード/ハート/ダイヤ/クラブ)にしています。

このソースについての記事はこちら「トランプの操作」です。

Cards.javaをダウンロード

ダウンロードしたファイルはzip形式です。解凍して使ってください。Windowsの場合、ダウンロードしたzipファイルをマウスの右ボタンでクリックして表示されるポップアップメニューから「すべて展開(T)」で解凍できます。

// トランプを操作するクラス
class CardsManager {
	// トランプ配列
	private int[] cards;

	//  配列の値
	//  000 : ジョーカー
	//  101~113 : スペードの1~13
	//  201~213 : ハートの1~13
	//  301~313 : ダイヤの1~13
	//  401~413 : クラブの1~13

	// コンストラクタ
	public CardsManager()
	{
		// 配列を作成
		cards = new int[ 13 * 4 + 1 ];

		// 初期化
		organize();
	}


	// トランプの整列
	public void organize()
	{
		// ジョーカーを格納
		cards[ 0 ] = 0;

		for ( int i = 1; i <= 13; ++ i ) {
			// スペードを格納(添え字:1~13)
			cards[ i ] = 100 + i;

			// ダイヤを格納(添え字:14~26)
			cards[ i + 13 ] = 300 + i;

			// クラブを格納(添え字:27~39)
			cards[ i + 26 ] = 400 + i;

			// ハートを格納(添え字:40~52)
			cards[ i + 39 ] = 200 + i;
		}
	}


	// トランプのシャッフル
	public void shuffle()
	{
		for ( int i = 0; i < cards.length; ++ i ) {
			// 0~(配列aryの個数-1)の乱数を発生
			int rnd = (int)( Math.random() * (double)cards.length );

			// cards[ i ]とcards[ rnd ]を入れ替える
			int w = cards[ i ];
			cards[ i ] = cards[ rnd ];
			cards[ rnd ] = w;
		}
	}


	// トランプの取得
	public int getCard( int num )
	{
		// numが、1~53番目以外の場合、-1を戻す
		if ( ( 1 > num ) || ( 53 < num ) ) return -1;

		// カードを戻す
		return cards[ num - 1 ];
	}
}


// メイン
public class Cards {
	public static void main( String[] args ) {
		// 変数を宣言
		int card, mark, num;

		// トランプクラスを作成
		CardsManager cards = new CardsManager();

		// トランプをシャッフル
		cards.shuffle();

		// トランプを順番に表示
		for ( int i = 1; i <= 53; ++ i ) {
			// i番目のカードを取得
			card = cards.getCard( i );

			// 結果の表示
			// マーク
			mark = card / 100;
			// 番号
			num = card % 100;
			// 表示
			switch ( mark ) {
				case 0:
					// ジョーカー
					System.out.println( "ジョーカー" );
					break;
				case 1:
					// スペード
					System.out.println( "スペードの" + num );
					break;
				case 2:
					// ハート
					System.out.println( "ハートの" + num );
					break;
				case 3:
					// ダイヤ
					System.out.println( "ダイヤの" + num );
					break;
				case 4:
					// クラブ
					System.out.println( "クラブの" + num );
					break;
			}
		}
	}
}

このソースについての記事はこちら「トランプの操作」です。

 

■新着情報

2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

Topへ