#include <iostream>
#include <queue>
using namespace std;
class card
{
public:
char value;
char color;
bool face_down;
int intvalue()
{
switch (value)
{
case 'A' :
return 1;
case 'T' :
return 10;
case 'J' :
return 11;
case 'Q' :
return 12;
case 'K' :
return 13;
default:
return value-'0';
}
}
};
class game
{
public:
queue<card> q[13];
int ans;
card currentcard;
void init(char );
void start();
void result_out();
};
void game::init(char c)
{
card ca;
ans=0;
for(int i=0; i<4; i++)
for(int j=0; j<13; j++)
{
if(i==0 && j==0)
{
ca.value=c;
cin>>ca.color;
}
else
{
cin>>ca.value>>ca.color;
}
ca.face_down=true;
q[12-j].push(ca);
}
}
void game::start()
{
int pile=12;
currentcard=q[pile].front();
while(1)//最终值是一个已经翻过的牌,也就是不合法了
{
ans++;
currentcard.face_down=false;
q[pile].pop();
pile=currentcard.intvalue()-1;
q[pile].push(currentcard);
if(q[pile].front().face_down)
currentcard=q[pile].front();
else
break;
}
}
void game::result_out()
{
cout<<ans/10<<ans%10<<','<<currentcard.value<<currentcard.color<<endl;
}
int main()
{
char ch;
while(cin>>ch && ch!='#')
{
game g;
g.init(ch);
g.start();
g.result_out();
}
return 0;
}
uva170
最新推荐文章于 2019-04-29 13:34:38 发布