Alice and Bob
1、题目内容
题目描述
Alice和Bob玩剪刀-石头-布的游戏,请你写个程序判断一下比赛的结果。
Rock-Paper-Scissors
输入
第一行是一个整数K,表示样例的个数。
以后每行两个单词,rock表示石头,paper表示布,scissors表示剪刀。 前面一个单词是Alice出的拳,后面一个单词是Bob出的拳。
输出
平局输出"Draw",否则输出获胜者。
样例输入
3
rock paper
rock scissors
rock rock
样例输出
Bob
Alice
Draw
2、题目分析
在这个题目里,我们首先可以自己定义一个函数,将结果中两个的出手字符串转化为一个数字来表示,然后进行结果比较,分类讨论,即可得出结果。
3、参考代码
#include<stdio.h>
#include<string.h>
int change(char str[]) //将对应字符串转为数字进行标记比较方便
{
if(strcmp(str,"rock")==0) //石头用2标记
{
return 2;
}
else if(strcmp(str,"scissors")==0) //剪刀用1标记
{
return 1;
}
else if(strcmp(str,"paper")==0) //布用0标记
{
return 0;
}
else return -1;
}
int main()
{
int k,m,n;
char a[10],b[10];
scanf("%d",&k);
while(k--)
{
scanf(" %s %s",a,b);
m=change(a);
n=change(b);
if(m==n) //说明相同,那么就是平局咯
{
printf("Draw\n");
}
else //如果不是平局,那么进行判断胜负时要各种情况依次考虑
{
if(m==2)
{
if(n==1) printf("Alice\n");
else printf("Bob\n");
}
else if(m==1)
{
if(n==2) printf("Bob\n");
else printf("Alice\n");
}
else
{
if(n==2) printf("Alice\n");
else printf("Bob\n");
}
}
}
return 0;
}