2011年6月8日水曜日

遅くなりましたが

6月7日に作成したブラックジャックのソースコードを乗せておきます。
関数化出来る人は、やってみてください。



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

int main()
{
int pcard=0, ccard=0, ncard;
char yesno;
/*
型 変数名 変数名の意味 変数の意味
int pcard player_card プレイヤーのカードの合計値を保管
int ccard CPU_card CPUのカードの合計値を保管
int ncard now_card 一時的な値の保管用変数
char yesno yesかnoかの入力を保管
*/

/*rand関数を使う為に書く*/
srand((unsigned)time(NULL));

/*プレイヤーの番*/
/*1~13の値をncardに保存*/
ncard = rand()%13+1;
/*ncardが11、12、13の時は、10として扱う*/
if(ncard == 11||ncard==12||ncard==13)ncard=10;
/*pcardにncardを加算*/
pcard += ncard;
while(1){
printf("いまのカードは%dです\n",pcard);
puts("もう一回引きますか? y/n");

do{
scanf("%c",&yesno);
/*エンターキーを入力として受け付けないようにする*/
}while(yesno=='\n');

/*もう引かないときはループを抜ける*/
if(yesno=='n')break;
/*もう一枚引く*/
ncard = rand()%13+1;
if(ncard == 11||ncard==12||ncard==13)ncard=10;
pcard += ncard;
/*21を超えてしまったらループを抜ける*/
if(pcard>21)break;
}

/*NPCの番*/
while(1){
/*16を超えたらもう引かない*/
if(ccard>16)break;
ncard = rand()%13+1;
if(ncard == 11||ncard==12||ncard==13)ncard=10;
ccard += ncard;
}

/*勝敗判定*/
printf("あなたのカード合計%d\n"
"NPCのカード合計%d\n",pcard,ccard);
if(pcard>21 || ((pcard < ccard)&&(ccard<=21)) )puts("負け");
else puts("勝ち");
return 0;
}

1 件のコメント: