第10.5 小节代码 给一手牌分类
//This is a comment
//Author:King
//Time:2020/12/7
//Reference:C Programming:A Modern Approach,Second Edition
/***************************************************************
10.5 小节代码 给一手牌分类
****************************************************************/
#include <stdio.h>
#include <stdbool.h> // C99 only
//#include <time.h>
#include <stdlib.h>
#define NUM_SUITS 4 //4种花色
#define NUM_RANKS 13 //13个等级
#define NUM_CARDS 5 //手上牌的张数
/*定义全部变量*/
int num_in_rank[NUM_RANKS] ; //每个等级牌的数量
int num_in_suit[NUM_SUITS] ; //每种花色牌的数量
bool straight, flush, four, three; //顺子、同花、四个炸弹、三个
int pairs; //可以是0,1, 2 ,代表无对子,一个对子,2个对子
/*函数声明*/
void read_cards(void);
void analyze_hand(void);
void printf_result(void);
//主函数
int main(void)
{
for(;;)
{
read_cards();
analyze_hand();
printf_result();
}
system("pause"); //加入该函数后可以使得产生的exe单独运行,不会发生闪退。也可以加入其它函数使得main函数无法返回即可。如while(1)、getchar() 等
return 0;
}
//读取和检查输入内容并保存到相关变量中
void read_cards(void)
{
bool card_exists[NUM_RANKS][NUM_SUITS]; //手上已有牌的组合,如果有某个等级和花色的牌对于数组中元素等于true
char ch, rank_ch, suit_ch; //用于接收输入字符
int rank, suit