#include <stdio.h>
#include <time.h>
#include <stdlib.h>
int card[4][13];
char *number[13] = {"A","2","3","4","5","6","7","8","9","10","J","Q","K"};
char *mark[4] = {"♥","♦","♠","♣"};
int main (void) {
int i;
int draw_number;/*引いたカードの数*/
int draw_mark;/*引いたカードのマーク*/
char y_n;/*カードを引くか引かないかを判断*/
int hand[5];/*自分の手札*/
srand(time(NULL));
printf("[ポーカー]\n");
printf("プレイヤーのカードは\n");
for(i = 0; i < 5; i++) {
int draw_number, draw_mark;
draw_mark = rand() % 4 + 1;
draw_number = rand() % 13 + 1;
printf("%s %s ", mark[draw_mark-1], number[draw_number-1]);
}
printf("\n");
while(1) {
printf("カードを交換しますか? > y/n \n");
scanf("%c", &y_n);
// printf("交換するカードを選んで下さい >(1~5) \n");
while (getchar() != '\n') { }
if (y_n == 'y') {
for(i = 0; i < 5; i++) {
int draw_number, draw_mark;
draw_mark = rand() % 4 + 1;
draw_number = rand() % 13 + 1;
printf("%s %s ", mark[draw_mark-1], number[draw_number-1]);
}
printf("\n");
} else if (y_n == 'n') { break; }
}
switch (draw_number) {
case 1: printf("ワンペア\n");
break;
case 2: printf("ツーペア\n");
break;
case 3: printf("スリーペア\n");
break;
case 4: printf("フォーペア\n");
break;
default: printf("他の役\n");
break;
}
return 0;
}
上のコードの(30行目くらい)「//printf("交換するカードを選んで下さい >(1~5) \n");」の交換するカードが1~5枚ある場合交換するには、どのように書けばいいの
(int hand[5]を利用するんじゃないかと考えているんですが)と
役を判定するやり方(swithよりifやelse、int draw_number, draw_markを利用すると思うんですが)がわかりません
特に役を判定するやり方の考え方が聞きたいです
グローバル変数、構造体やヘッダー?を使えばより見やすく、わかりやすいソースができると
思うんですが、まだ良く判らないため、今はなるべく使わずに作りたいと思っています
OS:Mac OS X コンパイル:gcc バージョン4.0.1
