2020年08月22日
見習いプログラマー「Black Jack」を作ってみた!(バグあり)
どうも!「一人暮らしの様な理系」です。
最近は暑いというより、湿気に悩まされています。
最近は暑いというより、湿気に悩まされています。
10秒で登録完了!TECH::CAMPオンライン説明会
#include
#include
#include
int main(void)
{
//変数定義
double user = 0.0, com = 0.0, i = 0.0, j = 0.0;
double tipU = 10.0;
double kake = 0.0;
int a = 0, b = 0, c = 0, d = 0, e=0, f=0;//a user1 b com1 c user2 d com2 e user3 f com3
int k = 0, l = 0, m = 0;
int sum1 = 0, sum2 = 0;
int sum3 = 0;//21 sa user
int sum4 = 0;//21 sa com
int sum5 = 0;
printf("ブラックジャックを開始します。\n");
printf("Double Down Spilit Insurance Even Money Surrender はありません\n");
printf("備考: 11 12 13 は10 とみなします。\n");
printf("\n");
printf("---- Start ---- \n");
for (i=0;i>=0;i ++)
{
for (j = 0; j >= 0; j++)
{
a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
f = 0;
printf("あなたのチップの枚数は%f枚です。\n", tipU);
printf("何枚のチップを賭けますか?0で終了\n");
scanf("%lf", &kake);
if (kake > tipU)
{
continue;
}
else if (kake == 0)
{
goto C;
}
tipU -= kake;
srand(time(0));
a = rand() % 13 + 1;
b = rand() % 13 + 1;
fflush(stdin);
c = rand() % 13 + 1;
d = rand() % 13 + 1;
printf("あなたの1枚目のカード: %d\n", a);
printf("あなたの2枚目のカード: %d\n", c);
if (b == 11 || b == 12 || b == 13 )
{
b = 10;
}
printf("ディーラーのUpcard: %d\n", b);
if (a == 11 || a == 12 || a == 13 )
{
a = 10;
}
if (c == 11 || c == 12 || c == 13)
{
c = 10;
}
if (a == 1)
{
printf("1(エース)を 1 と 11 どちらとみなしますか?\n");
scanf("%d", &k);
if (k == 11)
{
a = 11;
}
else if (k == 1)
{
}
else
{
printf("不正です。\n");
continue;
}
}
if (c == 1)
{
printf("1(エース)を 1 と 11 どちらとみなしますか?\n");
scanf("%d", &k);
if (k == 11)
{
c = 11;
}
else if (k == 1)
{
}
else
{
printf("不正です。\n");
continue;
}
}
if (a + c > 21)
{
goto B;
}
fflush(stdin);
printf("もう一枚引きますか? 引くなら1 引かなければ 0 を押してください。\n");
scanf("%d", &l);
fflush(stdin);
if (l == 1)
{
e = rand() % 13 + 1;
if (e == 11 || e == 12 || e == 13 )
{
e = 10;
}
else if (e == 1)
{
printf("1(エース)を 1 と 11 どちらとみなしますか?\n");
scanf("%d", &m);
if (m == 11)
{
e = 11;
}
}
printf("あなたの3枚目のカード: %d\n", e);
}
printf("\n");
printf("ディーラーの2枚目のカード: %d\n", d);
sum5 = d + b;
if (sum5 <= 16)
{
f = rand() % 13 + 1;
if (f == 11 || f == 12 || f == 13 || f ==14)
{
f = 10;
}
printf("ディーラーの3枚目のカード: %d\n", f);
}
sum1 = a + c + e;
sum2 = b + d + f;
sum3 = 21 - sum1;
sum4 = 21 - sum2;
printf("あなたの合計: %d\n", sum1);
printf("ディーラーの合計: %d\n", sum2);
if (sum3 < 0)
{
B:
printf("あなたはバーストしました。 あなたの負けです。\n");
}
else if (sum4 < 0)
{
printf("ディーラーはバーストしました。 あなたの勝ちです。\n");
tipU += 2 * kake;
}
else if (sum3 < 0 && sum4 < 0)
{
printf("引き分けです。\n");
}
else if ( sum3 < sum4)
{
printf("あなたの勝ちです。\n");
tipU += 2 * kake;
}
else if ( sum3 > sum4)
{
printf("あなたの負けです。\n");
}
else if (sum3 == 0)
{
printf("Black Jack !!! \n");
printf("あなたの完勝です。\n");
tipU += 2.5 * kake;
}
else if (sum3 == sum4)
{
printf("DROW!!");
tipU += kake;
}
else
{
printf("引き分けです。\n");
}
if (tipU == 0.0)
{
printf("GAME OVER ...");
goto A;
}
printf("\n");
printf("\n");
}
}
A:
printf("TRY AGAIN !!\n");
C:
printf("SEE YOU ! \n");
}
改めてみると、かなり見にくいことが自分でもわかります。
そしてたまに、21となっても「Black Jack」として扱われないことがあります。
...大問題ですね?
とりあえず遊びことは出来るので、遊んでみたい人はコードをコピペしてコンパイルして遊んでみて下さい!
ここで書くのもあれですが、もしかしたら「Black Jack」を遊んだことのない方もいるかもしれません。
なので、近いうちに「Black Jack」の遊び方をざっくり解説してみたいな〜とか思ったりしてます。
その時は是非ご覧になってください。
今回はここまでとします。読んでいただきありがとうございました。
このブログでは「プログラミング」をはじめ様々な分野の記事がありますので
是非そちらもよろしくお願いします。
また、次回お会いしましょう。
【このカテゴリーの最新記事】
-
no image
-
no image
-
no image
-
no image
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/10140242
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック