📄 blackjack.c
字号:
#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int card [4][13];
char total[13] = { 11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10, 10 };
char *digit[13] = { "A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K" };
char *mark[4] = {
"僴乕僩",
"僟僀儎",
"僗儁乕僪",
"僋儘乕僶乕"
};
int drawCard(int h);
main() {
int dealer; //僨傿乕儔乕偺堷偄偨僇乕僪偺崌寁
int player; //僾儗僀儎乕偺堷偄偨僇乕僪偺崌寁
int draw_digit; //堷偄偨僇乕僪偺悢
int draw_mark; //堷偄偨僇乕僪偺儅乕僋
char y_n; //僇乕僪傪堷偔偐堷偐側偄偐偺摎偊
srand(time(NULL));
printf("亂僽儔僢僋僕儍僢僋亃\n");
//僨傿乕儔乕偑堷偔
draw_mark = rand() % 4 + 1;
draw_digit = rand() % 13 + 1;
card[draw_mark-1][draw_digit-1] = 1;
dealer = total[draw_digit-1];
printf("僨傿乕儔乕堦枃栚丗%s偺%s\n", mark[draw_mark-1], digit[draw_digit-1]);
printf("懠偼暁偣傞\n\n");
//僾儗僀儎乕偑堷偔
printf("僾儗僀儎乕堦枃栚丗");
player = drawCard(1);
printf("僾儗僀儎乕擇枃栚丗");
player += drawCard(1);
//僨傿乕儔乕俀枃栚埲崀
do{
dealer += drawCard(0);
} while(dealer <= 16);
//僾儗僀儎乕俁枃栚埲崀
while(player < 21) {
printf("傕偆1枃堷偒傑偡偐?(y/n) > ");
scanf("%c" , &y_n);
while (getchar() != '\n') { }
if(y_n == 'y') {
player += drawCard(1);
} else if (y_n == 'n') { break; }
}
printf("\n僨傿乕儔乕丗%d揰丂僾儗僀儎乕丗%d揰\n", dealer, player);
//彑攕偺敾掕
if ((dealer <= 21 && player > 21) || (dealer <= 21 && dealer > player)) {
printf("僨傿乕儔乕偺彑偪両\n");
} else if ((player <= 21 && dealer > 21)
|| (player <= 21 && player > dealer)) {
printf("僾儗僀儎乕偺彑偪両\n");
} else {
printf("堷偒暘偗\n");
}
return 0;
}
/*僇乕僪傪堷偔娭悢
堷悢 h丗僇乕僪撪梕昞帵僼儔僌
僾儗僀儎乕僞乕儞偺帪偼1丄僨傿乕儔乕僞乕儞偺帪偼0
栠傝抣 r:堷偄偨僇乕僪偺揰悢
*/
int drawCard (int h) {
int draw_mark, draw_digit; //堷偄偨僇乕僪偺儅乕僋偲悢
int r; //堷偄偨僇乕僪偺揰悢
char y_n; //僇乕僪傪11偲偟偰寁嶼偡傞偐偳偆偐偺摎偊
do {
draw_mark = rand() % 4 + 1;
draw_digit = rand() % 13 + 1;
} while (card[draw_mark-1][draw_digit-1]);
card[draw_mark-1][draw_digit-1] = 1;
if(h) {
printf("%s偺%s\n", mark[draw_mark-1], digit[draw_digit-1]);
}
if(h && draw_digit == 1) { //僾儗僀儎乕僞乕儞偱堷偄偨悢偑1偺偲偒
do {
printf("11偲偟偰寁嶼偟傑偡偐丠(y/n) > ");
scanf("%c" , &y_n);
while (getchar() != '\n') { }
if(y_n == 'y') { r = total[draw_digit-1]; }
else if (y_n == 'n') { r = 1; }
} while(!(y_n == 'y' || y_n == 'n'));
} else { r = total[draw_digit-1]; }
return r;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -