BigOrSmall


BigOrSmall

ソースファイル fileKadai17_1.zip fileKadai17_1_ver2.zip filememo.txt

ソース説明

Dice.java

乱数発生用のDiceクラスを定義

コンストラクタで発生する乱数の範囲(minNumber、maxNumber)を指定します。

コンストラクタが引数一つのときは、1から指定した数字までとなります。

コンストラクタで 指定するminとmaxが同値のときは必ずその値を発生させるように動きます。

shuffle()メソッドで乱数を発生します。getNumber()で数値を取り出します。shuffle()しない限りは同じ値を返します。

setter/getterで値を取得しますが、setterは乱数発生の範囲を指定できるだけで数値そのものを指定することはできません。 同じ値を返したいときはminとmaxに同じその値を入れることで対応できます。

Trump.java

カード(Card)とカード全体(Trump)の情報を保持するクラス

Cardクラスは、単純に suit と number を保持しています。メソッドもgetter/setterのほか、表示用のメソッドのみです。

Trumpクラスは、カード全体52枚の情報を保持します。boolean stat配列で使用済み(true)、未使用(false)を管理します。

Trumpクラスのchoice()メソッドを実行すると、カードを一枚選択します。その際該当するstat[][]配列をtrueにして使用中ということを示すようにしています。 choice()は乱数でsuitとnumberを選びます、使用中だった場合は、未使用のものが見つかるまでsuitとnumberを再選択します。

Keyin.java

キー入力用のメソッドを持っているだけのクラス

プロンプトとエラーメッセージと、入力を受け付ける数字の範囲を指定して生成します。

数字しか受け付けません。


Chip.java

チップを管理するクラス

add()〜 1チップずつ加減 〜とadd10()〜 10チップ単位で加減 〜のメソッドを用意していますが、本ゲームでは基本的にチップの増減はadd()を主体として使っています。

add()/add10()は引数に指定した数だけチップを増減します。減算にも対応してチップの加減算両方に対応しています。

Kadai17_1.java

メインクラスのBigOrSmallクラスを定義して呼び出し

勝敗はgame()メソッドで行っています。ふつうにチップを賭けるときと、勝利時のBETを賭けるときの勝負ルーチンを一つにまとめたかったのでメソッド化しています。勝敗をintで返します。1ならば勝利としています。

cdとnextcdは選択しているカードを入れているCard型変数です。最初のチャレンジではcdに最初の選択カード、次に引いたカードはnextcdに入れます。それでgame()を呼び出しています。勝利時は次の選択カードをcdに入れて、nextcdとcdでgame()に挑むようにして、再代入の回数を減らしています(ので部分的にみると読みづらいかもしれない)。