無法不要牌繼續。
#include <stdio.h> #include <stdlib.h> #include <time.h> int card[13] = { 0 }; int player_point = 0, computer_pount = 0, temp_record; int get_card() { int point = rand() % 13 + 1;//1~13 while (card[point] >= 4) { point = rand() % 13 + 1; } card[point]++; return point; } void player_get_card() { temp_record = get_card(); player_point += temp_record; printf("你拿到一張牌: [%d]\n",temp_record); printf("你的總點數為: %d\n", player_point); } void computer_get_card() { printf("電腦拿了一張牌\n"); computer_pount += get_card(); } void lose_or_win() { if (player_point > 21 && computer_pount > 21) printf("兩方都輸啦!!"); else if (player_point > 21) printf("你輸啦!!"); else if (computer_pount > 21) printf("你贏啦!!"); else if (player_point > computer_pount) printf("你贏啦!!"); else if (player_point < computer_pount) printf("你輸啦!!"); else if (player_point == computer_pount) printf("平手啦!!"); } int main() { srand(time(NULL)); char cmd; printf("\n\n"); printf("~~歡迎來玩 21點 小遊戲~~\n\n"); system("pause"); system("cls"); player_get_card(); computer_get_card(); while (1) { printf("-----------------------"); printf("\n\n"); printf("請問要繼續嗎? (y/n)\n"); printf("y: 繼續 n:結束此局\n"); scanf_s("%c", &cmd); getchar(); if (cmd == 'n' || cmd == 'N') break; printf("-----------------------"); printf("\n"); player_get_card(); computer_get_card(); if (player_point > 21 || computer_pount > 21) break; } printf("-----------------------\n\n"); printf("你的點數: %d\n", player_point); printf("電腦的點數: %d\n", computer_pount); printf("\n"); lose_or_win(); system("pause"); return 0; }
沒有留言:
張貼留言