您的位置:首页 > 其它

石头剪子布Pascal题解

2017-02-07 00:00 274 查看

石头剪子布

时间限制: 1 Sec内存限制: 128 MB
提交: 9解决: 8
[提交][状态][讨论版]

题目描述

石头剪子布,是一种猜拳游戏。起源于中国,然后传到日本、朝鲜等地,随着亚欧贸易的不断发展它传到了欧洲,到了近现代逐渐风靡世界。简单明了的规则,使得石头剪子布没有任何规则漏洞可钻,单次玩法比拼运气,多回合玩法比拼心理博弈,使得石头剪子布这个古老的游戏同时用于“意外”与“技术”两种特性,深受世界人民喜爱。

游戏规则:石头打剪刀,布包石头,剪刀剪布。

现在,需要你写一个程序来判断石头剪子布游戏的结果。

输入

输入包括N+1行:
第一行是一个整数N,表示一共进行了N次游戏。1 <= N <= 100。
接下来N行的每一行包括两个字符串,表示游戏参与者P1,P2的选择(石头、剪子或者是布):
S1 S2
字符串之间以空格隔开S1,S2只可能取值在{"R", "S", "P"}(大小写敏感)中。

输出

输出包括N行,每一行对应一个胜利者(P1或者P2),或者游戏出现平局,则输出T。

样例输入

3
R S
P P
R P


样例输出

P1
T
P2


分析

此题其实是考验Pascal字符读入的能力。

以下是读入方法

procedure inp;

begin

readln(s);

for i:=1 to length(s) do

if s[i]=' ' thenbreak;//break是直接跳出循环

s1:=copy(s,1,i-1);

s2:=copy(s,i+1,length(s);

end;

完整题解

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

const


ma:
array
[
1..3
]
of
string
=(
'R'
,
'S'
,
'P'
);//分别是石头剪子布


var


s1,s2,s:
string
;


ch:
char
;


n,i,k,m:
longint
;


Function
main(a1,a2:
string
):
string
;


var


i,j:
longint
;


begin


if
a1=a2
then


exit(
'T'
);


for
i:=
1
to
3
do


if
a1=ma[i]
then


break;


for
j:=
1
to
3
do


if
a2=ma[j]
then


break;


if
i+j=
4
then//这种情况只能是一个石头一个布(i=3,j=1或i=1,j=3)


begin


if
i<j
then//序号小的是石头


exit(
'P2'
);


if
j<i
then


exit(
'P1'
);


end
;


if
i>j
then
exit(
'P2'
);


if
j>i
then
exit(
'P1'
);


end
;


begin


readln(n);


for
k:=
1
to
n
do


begin


s1:=
''
;


s2:=
''
;


readln(s);


m:=length(s);


for
i:=
1
to
m
do


if
s[i]=
' '
then
break;


s1:=copy(s,
1
,i-
1
);


s2:=copy(s,i+
1
,m);


writeln
(main(s1,s2));


end
;


end
.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: