Advertisement
Guest User

Untitled

a guest
Nov 10th, 2014
231
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.43 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <time.h>
  4.  
  5. //カードの点数
  6. char total[13] = {11, 2, 3, 4, 5, 6, 7, 8, 9, 10, 10, 10};
  7. //カードのマーク
  8. char *digit[13] = {"A", "2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K"};
  9. //カードの数値
  10. char *mark[4] = {
  11.     "ハート",
  12.     "ダイヤ",
  13.     "スペード",
  14.     "クローバー",
  15. };
  16.  
  17. int drawcard(int h);
  18.  
  19. int main(int argc,char *argv[]){
  20.     int dealer;
  21.     int player;
  22.  
  23.     char y_n;
  24.  
  25.     srand(time(NULL));
  26.     printf("[ブラックジャック] \n");
  27.  
  28.     //プレイヤー
  29.     printf("プレイヤー一枚目:");
  30.     player = drawcard(1);
  31.     printf("プレイヤー二枚目:");
  32.     player += drawcard(1);
  33.  
  34.     //ディーラーが引く
  35.     do{
  36.         dealer += drawcard(0);
  37.     }while(dealer <= 16);
  38.    
  39.     //プレイヤーが引く
  40.     while(player < 21){
  41.         printf("もう1枚引きますか?(y/n) > ");
  42.         scanf("%c", &y_n);
  43.         while(getchar() != '\n'){ }
  44.         if(y_n == 'y'){
  45.             player += drawcard(1);
  46.         }else if(y_n == 'n'){
  47.             break;
  48.         }
  49.     }
  50.  
  51.     printf("\nディーラー:%d点 プレイヤー:%d\n",dealer, player);
  52.  
  53. return 0;
  54. }
  55.  
  56. int drawcard(int h){
  57.     int draw_mark, draw_digit; //引いたマークと数
  58.     int r; //引いたカードの点数
  59.  
  60.     draw_mark = rand() % 4 + 1; //マークを決定する
  61.     draw_digit = rand() %13 + 1; //数字を決定する
  62.  
  63.     if(h){
  64.         printf("%sの%s\n", mark[draw_mark-1], digit[draw_digit-1]);
  65.     }
  66.     r = total[draw_digit-1];
  67.     return r;
  68. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement