2020/03/23 公開
・神経衰弱 その5
ここでは神経衰弱のソースコードを解説しています。4回目です。「神経衰弱」
前の説明はこちらを参照してください。「神経衰弱 その4」
それでは、神経衰弱のソースコードを続きを解説していきます。
203: // メイン 204: public static void main( String[] args ) {
このmainメソッドからプログラムを実行します。
205: // カードの初期化 206: initCards();
カードを初期化します。配列cardsに1~13を4個づつ格納し、乱数を使って並び変えます。
208: // 状態の初期化 209: initStatuses();
カードの状態を初期化します。配列statuesにSTATUS_HIDEを格納します。
211: // 記憶の初期化 212: initMemory();
1度オープンしたカードの記憶を初期化します。配列memoryに0を格納します。
214: // 神経衰弱本体 215: // 無限ループを作成(ループを抜ける条件をなし) 216: for ( int turn = 1; ; ++ turn ) {
ここから神経衰弱の本体です。for文で無限ループを作っています。変数turnはカードをめくる回数を表しています。
217: // ターン番号の出力 218: System.out.println( "ターン:" + turn );
カードをめくった回数を出力しています。
220: // カードを出力(オープン前の状態) 221: outputCards();
現在のカードの状態を出力しています。
223: // カードをランダムに1枚オープン 224: int cardnum1 = openCard();
カードをランダムに1枚オープンしています。オープンしたカード番号を変数crdnum1に代入しています。
226: // 記憶しているカードがあればそのカードをオープン 227: if ( !openMemoryCard( cardnum1 ) ) { 228: // カードをランダムに1枚オープン 229: int cardnum2 = openCard(); 230: } 231: else { 232: System.out.println( "記憶からカードをオープン!" ); 233: }
オープンしたカード番号crdnum1をopenMemoryCardメソッドに渡しています。カード番号crdnum1が記憶されている場合、openMemoryCardメソッドの中でカードをオープンします。
記憶していない場合、 openCardメソッドでランダムに1枚のカードをオープンします。
235: // カードを出力(オープン後の状態) 236: outputCards();
オープンしたカードの状態を出力しています。
238: // オープンしているカードがペアかどうか判定 239: if ( isPair() ) 240: replaceStatus( STATUS_OPEN, STATUS_PAIR ); 241: else 242: replaceStatus( STATUS_OPEN, STATUS_HIDE );
オープンした2枚のカード番号が同じかを判定し、同じであればオープンしたカードを揃った状態に変更しています。(STATUS_OPENからSTATUS_PAIR)
違う場合、オープンしたカードを伏せた状態にもどします。(STATUS_OPENからSTATUS_HIDE)
244: // 全てペアになったらループを抜ける 245: if ( 52 == getStatusNumber( STATUS_PAIR ) ) 246: break;
全てのカードが揃った状態の場合、break文で無限ループを抜けます。52枚のカードの状態がSTATUS_PAIRであることで全て揃ったと判定しています。
249: // カードの最終結果を出力 250: System.out.println( "最終結果" ); 251: outputCards();
最後にカードの状態を出力して終了します。
以上です。
■関連コンテンツ
神経衰弱 | 1人で神経衰弱 |
ポーカーの役判定 | ポーカーの役を判定 |
トランプの操作 | トランプを操作するクラス |
配列の並び替え | 配列をランダムに並び替える方法を解説 |
switch文 | 式による処理の分岐に使用するswitch文について解説 |
値のコンソール表示 | print()、println()とは? |
乱数 randomMath.randomメソッドを使って乱数を発生する方法を解説します。指定範囲の乱数の発生方法も解説しています。 |
|
サイコロの出目確率乱数で1から6の数を発生し、それぞれの数値が出現する回数を調べます。 |
|
ゾロ目の出る確率2つのサイコロの出目を乱数で1から6の数を発生し、出目が同じときの回数と出現率を調べます。 |
|
for文繰り返し処理に使用するfor文をJavaのソースコードを使って説明しています。 |
|
if文条件による処理の分岐に使用するif文について解説 |
■新着情報
2022.07.07 | 外部プログラムの実行 | exeファイル実行 |
2022.07.06 | 完全数 | 6=1+2+3 |
■広告