Sicily/1100. Tennis Anyone
2011-08-05 17:10 Min·zc 阅读(168) 评论(0) 编辑 收藏 举报
#include <iostream>
#include <string>
#include <math.h>
using namespace std;
string player[2];
int score[2];//每一场game,二人各自的比分
int set[3][2];//每一场,二人赢得的game数
int wins[2];//二人赢得的set数
int win=0;//比赛的最后赢家
int cur=0;//记录当前用户的比分
int str=0;//发球人
int setn=0;//进行到的setn
int main()
{
string cmd,tem1,tem2;
while(cin>>cmd)
{
if(cmd=="quit")
break;
else if(cmd=="done")
{
cout<<player[0]<<"-"<<player[1]<<endl;
if(!(set[0][0]==0&&set[0][1]==0))
cout<<set[0][0]<<"-"<<set[0][1];
if(!(set[1][0]==0&&set[1][1]==0))
cout<<" "<<set[1][0]<<"-"<<set[1][1];
if(!(set[2][0]==0&&set[2][1]==0))
cout<<" "<<set[2][0]<<"-"<<set[2][1];
cout<<endl;
if(win==0)
cout<<"Match in progress"<<endl;
else
cout<<player[win-1]<<" won"<<endl;
cout<<endl;
for(int i=0;i<3;i++)
set[i][0]=set[i][1]=0;
score[1]=score[0]=0;
wins[0]=wins[1]=0;
str=0;
cur=0;
setn=0;
win=0;
}
else if(cmd=="game")
{
if(score[0]>score[1])
set[setn][0]++;
else
set[setn][1]++;
if(fabs(set[setn][0]-set[setn][1])>=2)
{
if(set[setn][0]>set[setn][1]&&set[setn][0]>=6)
{
setn++;
wins[0]++;
}
else if(set[setn][1]>set[setn][0]&&set[setn][1]>=6)
{
setn++;
wins[1]++;
}
}
score[0]=score[1]=0;
if(wins[0]==2)
win=1;
else if(wins[1]==2)
win=2;
str=1-str;
cur=str;
}
else if(cmd=="ad-in")
{
score[str]+=10;
cur=1-cur;
}
else if(cmd=="ad-out")
{
score[1-str]+=10;
cur=1-cur;
}
else if(cmd=="deuce")
{
score[0]=score[1];
cur=1-cur;
}
else if(cmd=="0"||cmd=="15"||cmd=="30"||cmd=="40")
{
int s=0;
for(int i=0;i<cmd.size();i++)
{
s*=10;
s+=(cmd[i]-'0');
}
score[cur]=s;
cur=1-cur;
}
else
{
player[cur]=cmd;
cur=1-cur;
}
}
}
#include <string>
#include <math.h>
using namespace std;
string player[2];
int score[2];//每一场game,二人各自的比分
int set[3][2];//每一场,二人赢得的game数
int wins[2];//二人赢得的set数
int win=0;//比赛的最后赢家
int cur=0;//记录当前用户的比分
int str=0;//发球人
int setn=0;//进行到的setn
int main()
{
string cmd,tem1,tem2;
while(cin>>cmd)
{
if(cmd=="quit")
break;
else if(cmd=="done")
{
cout<<player[0]<<"-"<<player[1]<<endl;
if(!(set[0][0]==0&&set[0][1]==0))
cout<<set[0][0]<<"-"<<set[0][1];
if(!(set[1][0]==0&&set[1][1]==0))
cout<<" "<<set[1][0]<<"-"<<set[1][1];
if(!(set[2][0]==0&&set[2][1]==0))
cout<<" "<<set[2][0]<<"-"<<set[2][1];
cout<<endl;
if(win==0)
cout<<"Match in progress"<<endl;
else
cout<<player[win-1]<<" won"<<endl;
cout<<endl;
for(int i=0;i<3;i++)
set[i][0]=set[i][1]=0;
score[1]=score[0]=0;
wins[0]=wins[1]=0;
str=0;
cur=0;
setn=0;
win=0;
}
else if(cmd=="game")
{
if(score[0]>score[1])
set[setn][0]++;
else
set[setn][1]++;
if(fabs(set[setn][0]-set[setn][1])>=2)
{
if(set[setn][0]>set[setn][1]&&set[setn][0]>=6)
{
setn++;
wins[0]++;
}
else if(set[setn][1]>set[setn][0]&&set[setn][1]>=6)
{
setn++;
wins[1]++;
}
}
score[0]=score[1]=0;
if(wins[0]==2)
win=1;
else if(wins[1]==2)
win=2;
str=1-str;
cur=str;
}
else if(cmd=="ad-in")
{
score[str]+=10;
cur=1-cur;
}
else if(cmd=="ad-out")
{
score[1-str]+=10;
cur=1-cur;
}
else if(cmd=="deuce")
{
score[0]=score[1];
cur=1-cur;
}
else if(cmd=="0"||cmd=="15"||cmd=="30"||cmd=="40")
{
int s=0;
for(int i=0;i<cmd.size();i++)
{
s*=10;
s+=(cmd[i]-'0');
}
score[cur]=s;
cur=1-cur;
}
else
{
player[cur]=cmd;
cur=1-cur;
}
}
}