★ゲームを作ろう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の目的は「正しいブラックジャック」を作ることではありません。
上記のプログラムをヒントに、自分自身で何か作ってみることを考えてみてください。