ゲームを作ろう1(ブラックジャックもどき)★


ゲームを作ろう1の最後は「ブラックジャックもどき」です。

本来の「ブラックジャック」はルールがきっちり決まっていますので、その通りに作れば良いのですが、「A(エース)」の扱い等、難しい部分もありますので、ここでは「もどき」を作ってみたいと思います。


ルール

1〜11の乱数を2回発生させ、合計が

21であれば「ブラックジャック!」と表示
21未満であれば「合計値」を表示
21より大きければ「オーバーです・・・」と表示

する、です。


<sample program 026-01>

#include <stdio.h>
#include <stdlib.h>
#include <time.h>

int main( void )
{
    int number;
    int sum = 0;

    srand((unsigned int)time(NULL));

    printf( "1枚目のカードを配ります。\n" );

    number = rand() % 11 + 1;

    getchar();

    sum = sum + number;

    printf( "%dです。\n", sum );

    printf( "2枚目のカードを配ります。\n" );

    number = rand() % 11 + 1;

    printf( "%dです。\n", sum );

    getchar();

    sum = sum + number;

    printf( "結果は・・・\n" );

    getchar();

    if( sum == 21 ) {
        printf( "ブラックジャック!\n" );
    }
    else {
        if( sum > 21 ) {
            printf( "オーバーです・・・\n" );
        }
        else {
            printf( "%dです。\n", sum );
        }
    }

    return 0;
}

<実行結果 VC++ Express Edition>

1枚目のカードを配ります。

11です。
2枚目のカードを配ります。

10です。
結果は・・・

ブラックジャック!
続行するには何かキーを押してください・・・

「getchar」を使って「自分でカードを引いている感覚」を表現しています。

2枚のカードの合計を求めるために変数「sum(合計)」を使っています。

合計を求める計算は、以前に書きました。


この「ブラックジャックもどき」はA(エース)の扱いが正しくない上に、3枚以上カードを引けません。

また、絵札(11、12、13)の扱いも正しくありません。

現時点では、難しいプログラムになりますので、シンプルに作ってみました。

今後、色々と学習していく中で、正しいブラックジャックに近づけるようになると思いますが、このHPの目的は「正しいブラックジャック」を作ることではありません。

上記のプログラムをヒントに、自分自身で何か作ってみることを考えてみてください。


次へ

戻る

目次へ