炸金花 Time Limit:1000MS Memory Limit:65536K Description 炸金花是一个风靡全球的扑克游戏,喜欢玩他的人不计其数,不少人因为这个游戏发了家,而更多的人则输得倾家荡产。为了帮助赌徒们戒掉它,安徽科技学院决定派你去写一个程序,帮助赌徒们更好的认识这个游戏。 Input 多组输入,每组输入两行,第一行三个数是你的三张牌,第二行是对手的三张牌 Output 每组数据输出,若你赢输出you win,否则you lose Sample Input
9 9 9
7 8 9 Sample Output
you win Source
|
[Submit] [Go Back] [Status] [Discuss]
#include<iostream>
#include<algorithm>
using namespace std;
int f(int a[])//判断是什么牌
{
if(a[0]==a[1]&&a[1]==a[2])return 4;//豹子 //我擦,为什么要先判断豹子和顺子
if(a[0]+1==a[1]&&a[1]+1==a[2])return 3;//顺子
if(a[0]!=a[1]&&a[1]!=a[2])return 1;//单张
return 2;//对子
}
int g(int a[])//判断对子大小
{
if(a[0]==a[1])return a[0]*100+a[1]*10+a[2];
else if(a[1]==a[2])return a[2]*100+a[1]*10+a[0];
}
int main()
{
int a[4]= {0};
int b[4]= {0};
while(cin>>a[0]>>a[1]>>a[2]>>b[0]>>b[1]>>b[2])
{
sort(a,a+3);
sort(b,b+3);
if(f(a)>f(b))cout<<"you win"<<endl;
else if(f(a)<f(b))cout<<"you lose"<<endl;
else if(f(a)==f(b))
{
if ( f(a)==4 )a[0]>b[0]?cout<<"you win"<<endl:cout<<"you lose"<<endl;
else if ( f(a)==2 )g(a)>g(b)?cout<<"you win"<<endl:cout<<"you lose"<<endl;
else (a[2]*100+a[1]*10+a[0])>(b[2]*100+b[1]*10+b[0])?cout<<"you win"<<endl:cout<<"you lose"<<endl;
}
}
return 0;
}
#include<stdio.h>//老赵参考代码
#include<stdlib.h>
int inc(const void*a,const void*b)
{
return *(int*)a-*(int*)b;
}
int value(int A[3])
{
qsort(A,3,4,inc);
if(A[0]==A[1]&&A[1]==A[2])
return A[0]*1000000;
if(A[0]+1==A[1]&&A[1]+1==A[2])
return A[0]*10000;
if(A[0]==A[1]||A[1]==A[2])
return A[1]*100;
return A[2];
}
int main()
{
int A[3],B[3];
while(~scanf("%d%d%d%d%d%d",A,A+1,A+2,B,B+1,B+2))
puts(value(A)>value(B)?"you win":"you lose");
return 0;
}