カードを交換する
change は、カードを交換する関数です。
捨てるカードを標準入力から受取り、代わりにカードの山から補充します。
/* カードを交換する */
void change(int player[M], int *stack, int *next) {
int i;
int nflag; /* 真の flag の数 */
int flag[M];/* カードの交換フラグ */
/* 配列を初期化する */
nflag = 0;
for (i = 0; i < M; i++) flag[i] = 0;
/* 交換するカードを決定する */
while (1) {
char str[2];/* 入力文字列 */
printf("Please select the card(s) you want to change (1 - 5). ");
printf("To finish, input 0.\n");
str[0] = (char)getchar();/* getchar の戻り値は int */
/* バッファの最後に移動(2 文字目以降や改行文字を無視) */
fseek(stdin, 0, SEEK_END);/* rewind(stdin) は、コンパイラによっては先頭に戻る */
if (('0' <= str[0]) && (str[0] <= '5')) {/* 文字コードで比較 */
str[1] = '\0';
i = atoi(str);
if ((1 <= i) && (i <= 5)) {
if (flag[i - 1]) continue;
else flag[i - 1] = 1;
if (++nflag == N) break;
} else if (i == 0) {
break;
}
} else {
printf("Input Error!\n");
}
}
/* カードを交換する */
for (i = 0; i < M; i++) if (flag[i]) player[i] = stack[++(*next)];;
}
- トランプ・ポーカー
- トランプ・ブラックジャック
- ギャンブルから株式為替まで役立つ資金管理
- 株式投資や為替取引のリスクマネジメント
- カード被害が預金者保護法で補償された体験
- アニメで英会話/台詞逆輸入
- 右脳と左脳を鍛える開発トレーニング