struct?撲克
{
夏爾?num
夏爾?顏色;
};
int?comparenum(char?壹、夏爾?b)
{
a=(a=='A '?9 '+5:a);
b=(b=='A '?9’+5:b);
a=(a=='K '?9 '+4:a);
b=(b=='K '?9’+4:b);
a=(a=='Q '?9’+3:a);
b=(b=='Q '?9’+3:b);
a=(a=='J '?9’+2:a);
b=(b=='J '?9’+2:b);
a=(a=='1 '?9 '+1:a);
b=(b=='1 '?9 '+1:b);
回歸?int(a-b);
}
int?comparecolor(char?壹、夏爾?b)
{
開關(a)
{
案子?' C':if(b=='D'||b=='S'||b=='H ')返回?-1;
不然呢?回歸?0;
案子?' D':if(b=='S'||b=='H ')返回?-1;
不然呢?if(b=='C ')返回?1;
不然呢?回歸?0;
案子?S':if(b=='H ')返回?-1;
不然呢?if(b=='C'||b=='D ')返回?1;
不然呢?回歸?0;
案子?' H':if(b=='C'||b=='D'||b=='S ')返回?1;
不然呢?回歸?0;
默認:break
}
回歸?0;
}
作廢?sortpoker(撲克?p[3])
{
撲克?溫度;
int?I,j;
for(I = 0;我& lt3;i++)
{
for(j = I;j & lt3;j++)
{
if(comparenum(p[i].num,p[j]。num)& lt;0)
{
temp = p[I];
p[I]= p[j];
p[j]= temp;
}
}
}
for(I = 0;我& lt3;i++)
{
for(j = I;j & lt3;j++)
{
if(comparenum(p[i].num,p[j]。num)= = 0 & amp;& amp比較顏色。顏色,p[j]。顏色)& lt0)
{
temp = p[I];
p[I]= p[j];
p[j]= temp;
}
}
}
}
int?isline(撲克?p[3])
{
if(comparenum(p[1])。num,p[0]。num)=-1 & amp;& ampcomparenum(p[2].num,p[1]。num)==-1)
回歸?1;
不然呢?
回歸?0;
}
int?isflush(撲克?p[3])
{
if(comparecolor(p[0])。顏色,p[1]。color)= = 0 & amp;& ampcomparecolor(p[1]。顏色,p[2]。color)==0\
& amp& ampisline(p))
回歸?1;
不然呢?
回歸?0;
}
int?isbomb(撲克?p[3])
{
if(comparenum(p[0])。num,p[2]。num)==0)
回歸?1;
不然呢?
回歸?0;
}
int?isdouble(撲克?p[3])
{
if(comparenum(p[0])。num,p[1]。num)==0||comparenum(p[0]。num,p[2]。num)==0\
||comparenum(p[1]。num,p[2]。num)==0)
回歸?1;
不然呢?
回歸?0;
}
int?diffpoker(撲克?p[3])
{
if(p[0]。num==p[1]。數字)
回歸?2;
不然呢?
回歸?0;
}
int?comparepoker(撲克?p1[3],撲克?p2[3])
{
int?index 1;
int?索引2;
if(isflush(p1))
{
if(isflush(p2))
{
if(comparenum(p1[0])。num,p2[0]。num)>0)
回歸?1;
不然呢?if(comparenum(p1[0])。num,p2[0]。num)& lt;0)
回歸?-1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
不然呢?
回歸?0;
}
不然呢?
回歸?1;
}
不然呢?if(isbomb(p1))
{
if(isflush(p2))
回歸?-1;
不然呢?if(isbomb(p2))
{
if(comparenum(p1[0])。num,p2[0]。num)>0)
回歸?1;
不然呢?if(comparenum(p1[0])。num,p2[0]。num)& lt;0)
回歸?-1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
不然呢?
回歸?0;
}
其他
回歸?1;
}
不然呢?if(isline(p1))
{
if(isflush(p2)||isbomb(p2))
回歸?-1;
不然呢?if(isline(p2))
{
if(comparenum(p1[0])。num,p2[0]。num)>0)
回歸?1;
不然呢?if(comparenum(p1[0])。num,p2[0]。num)& lt;0)
回歸?-1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
其他
回歸?0;
}
其他
回歸?1;
}
不然呢?if(isdouble(p1))
{
if(is flush(p2)| | is bomb(p2)| | is line(p2))
回歸?-1;
不然呢?if(isdouble(p2))
{
if(compare num(p 1[1])。num,p2[1]。num)>0)
回歸?1;
不然呢?if(compare num(p 1[1])。num,p2[1]。num)& lt;0)
回歸?-1;
不然呢?if(compare num(p 1[index 1 = diff poker(p 1)]。num,p2[index2=diffpoker(p2)]。num)>0)
回歸?1;
不然呢?if(compare num(p 1[index 1])。num,p2[index2]。num)& lt;0)
回歸?-1;
不然呢?if(index1==0)
{
if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?
回歸?0;
}
其他
{
if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
不然呢?
回歸?0;
}
}
其他
回歸?1;
}
不然呢?if(is flush(p2)| | is bomb(p2)| | is line(p2)| | is double(p2))
回歸?-1;
不然呢?if(comparenum(p1[0])。num,p2[0]。num)>0)
回歸?1;
不然呢?if(comparenum(p1[0])。num,p2[0]。num)& lt;0)
回歸?-1;
不然呢?if(compare num(p 1[1])。num,p2[1]。num)>0)
回歸?1;
不然呢?if(compare num(p 1[1])。num,p2[1]。num)& lt;0)
回歸?-1;
不然呢?if(comparenum(p1[2])。num,p2[2]。num)>0)
回歸?1;
不然呢?if(comparenum(p1[2])。num,p2[2]。num)& lt;0)
回歸?-1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[0])。顏色,p2[0]。顏色)& lt0)
回歸?-1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)>;0)
回歸?1;
不然呢?if(compare color(p 1[1])。顏色,p2[1]。顏色)& lt0)
回歸?-1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)>;0)
回歸?1;
不然呢?if(comparecolor(p1[2])。顏色,p2[2]。顏色)& lt0)
回歸?-1;
回歸?0;
}
int?testdata(撲克?p[3])
{
int?I,j;
for(I = 0;我& lt3;i++)
{
如果(!(p[i]。num=='A'||p[i]。num=='J'||p[i]。num=='Q'||p[i]。num=='K'||\
p[i]。num & gt= ' 2 ' & amp& ampp[i]。num & lt='9'))
回歸?-1;
如果(!(p[i]。color=='S'||p[i]。color=='H'||p[i]。color=='D'||p[i]。color=='C '))
回歸?-1;
for(j = I+1;j & lt3;j++)
{
如果(p[i]。color==p[j]。顏色和顏色。& ampp[i]。num==p[j]。數字)
回歸?-1;
}
}
回歸?1;
}
int?主()
{
撲克?apoker[3];
撲克?BPO ker[3];
int?我,旗幟;
夏爾?str[5];
printf("1。?");
for(I = 0;我& lt3;i++)
{
scanf("%s ",str);
Apoker[i]。color = str[0];
Apoker[i]。num = str[1];
}
printf("2。?");
for(I = 0;我& lt3;i++)
{
scanf("%s ",str);
Bpoker[i]。color = str[0];
Bpoker[i]。num = str[1];
}
sortpoker(阿波克爾);
sort poker(BPO ker);
if(testdata(a poker)= =-1 | | testdata(b poker)= =-1)
{
printf("輸入?錯誤!\ n ");
回歸?1;
}
flag=comparepoker(Apoker,b poker);
if(flag==1)
printf("1。?贏家?是嗎?答!\ n ");
不然呢?if(flag==-1)
printf("1。?贏家?是嗎?b!\ n ");
不然呢?
printf("1。?畫吧!\ n ");
printf("2。?答:?”);
for(I = 0;我& lt3;i++)
{
printf("%c ",Apoker[i]。顏色);
if(Apoker[i]。num=='1 ')
printf("10?");
其他
printf("%-3c ",Apoker[i]。num);
}
printf(" \ n ");
printf("3。?乙:?”);
for(I = 0;我& lt3;i++)
{
printf("%c ",Bpoker[i]。顏色);
if(Bpoker[i].num=='1 ')
printf(" 10 ");
其他
printf("%-3c ",Bpoker[i]。num);
}
printf(" \ n ");
回歸?0;
}