配列がわかりません
Posted: 2014年11月11日(火) 14:42
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
//カードの点数
char total[13] = {11, 2, 3, 4, 5, 6, 7, 8, 9, 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);
int main(int argc,char *argv[]){
int dealer;
int player;
char y_n;
srand(time(NULL));
printf("[ブラックジャック] \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);
return 0;
}
int drawcard(int h){
int draw_mark, draw_digit; //引いたマークと数
int r; //引いたカードの点数
draw_mark = rand() % 4 + 1; //マークを決定する
draw_digit = rand() %13 + 1; //数字を決定する
if(h){
printf("%sの%s\n", mark[draw_mark-1], digit[draw_digit-1]); //ここがわかりません
}
r = total[draw_digit-1];
return r;
}
mark[draw_mark-1], digit[draw_digit-1]に -1を付ける理由がわかりません
他のところで聞いたんですが、draw_mark = rand() % 4 + 1を、代入したからだそうですが・・・
#include <stdlib.h>
#include <time.h>
//カードの点数
char total[13] = {11, 2, 3, 4, 5, 6, 7, 8, 9, 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);
int main(int argc,char *argv[]){
int dealer;
int player;
char y_n;
srand(time(NULL));
printf("[ブラックジャック] \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);
return 0;
}
int drawcard(int h){
int draw_mark, draw_digit; //引いたマークと数
int r; //引いたカードの点数
draw_mark = rand() % 4 + 1; //マークを決定する
draw_digit = rand() %13 + 1; //数字を決定する
if(h){
printf("%sの%s\n", mark[draw_mark-1], digit[draw_digit-1]); //ここがわかりません
}
r = total[draw_digit-1];
return r;
}
mark[draw_mark-1], digit[draw_digit-1]に -1を付ける理由がわかりません
他のところで聞いたんですが、draw_mark = rand() % 4 + 1を、代入したからだそうですが・・・