2020年2月18日 星期二

21點

很簡單的21點小遊戲。
無法不要牌繼續。
#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;
}

沒有留言:

張貼留言