Top >C言語、Java 練習プログラム集

3. ハイ・カード

■ Java による作成例

import java.io.*;
import java.util.*;

class Program03
{
    /**
    * main
    */

    public static void main(String[] args) throws IOException
    {
        Random RandObj = new Random();     // 乱数オブジェクト
        BufferedReader br = new BufferedReader(
                                new InputStreamReader(System.in));

        String  aCard[] = 
    {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
        String  strRule =
    "最初に1枚カードが出ますから掛け金を決めてください。\n"
    + "次に出るカードが前のカードと同じか大きければ、あなたの勝ちです。\n"
    + "掛け金が戻りますから、続けるかどうかを決めてください。続けて勝てば掛け金は2倍になります。以降、4倍、8倍と戻るお金が増えます。ただし、負けるとそれまでの勝ちはなくなります。\n"
    + "所持金が無くなって破産するか、1000$を超えるとゲーム終了です。\n"
    + "----------------------------------------------\n"
    + "ゲームを開始します。所持金は100$です。\n";

        System.out.print(strRule);

        int     money = 100;

        while (money > 0 && money < 1000)
        {
            int bet;
            int times = 1;

            int first = RandObj.nextInt(aCard.length);

            System.out.print("最初のカードです。\n|"
                                + aCard[ first ] + "|\n");
            do
            {
                System.out.print("いくら賭けますか?(1$~"
                                    + money + "$)");
                bet = Integer.parseInt( br.readLine() );
            } while (bet < 1 || bet > money);

            money -= bet;

            for (;;)
            {
                int card = RandObj.nextInt( aCard.length );
                System.out.print( "|" + aCard[ card ] + "|\n" );

                if (card >= first)
                {
                    System.out.print("あなたの勝ち。"
                                + (bet * times) + "$の勝ちです。\n");
                    System.out.print("倍率は" + (times * 2)
                                + "倍。続けますか?(1=Yes; 0=No!)" );

                    int reply = Integer.parseInt(br.readLine());

                    if (reply == 0)
                    {
                        money += (bet * times);
                        System.out.print("所持金は "
                                        + money + "$です。\n\n");
                        break;
                    }

                    times *= 2;
                    first = card;
                }
                else
                {
                    System.out.print("あなたの負け。所持金は "
                                        + money + "$です。\n\n");
                    break;
                }
            }
        }

        if (money > 0)
            System.out.print("おめでとう!! あなたは大富豪です。\n");
        else
            System.out.print("残念でした。破産です。\n");
    }
}
AKABAS
NEZEN