go语言实现剪子布游戏 现在有两个人在玩石头剪子布游戏,请你判断最后谁赢了。用R代表石头,S代表剪子,P代表布。 输入格式: 输入的第一行是一个整数t ,表示测试样例的数目。 每组输入样例的第一行是一个整数n ,表示游戏次数。 接下来n行,每行由两个字母组成,两个字母之间用一个空格分隔,这些字母只会是R,S或P。 第一个字母表示Player1的选择,第二个字母表示Player2的选择。 输出格式: 对于每组输入样例,输出获胜方的名字(Player1或Player2),如果平均,则输出TIE。 输入样例: 3 R P S R P P 输出样例: Player2 Player2 TIE
时间: 2024-02-20 08:56:47 浏览: 24
下面是用 Go 语言实现的代码:
```go
package main
import "fmt"
func main() {
var t, n int
fmt.Scan(&t)
for i := 0; i < t; i++ {
fmt.Scan(&n)
p1, p2 := 0, 0
for j := 0; j < n; j++ {
var s1, s2 string
fmt.Scan(&s1, &s2)
if s1 == "R" && s2 == "S" ||
s1 == "S" && s2 == "P" ||
s1 == "P" && s2 == "R" {
p1++
} else if s2 == "R" && s1 == "S" ||
s2 == "S" && s1 == "P" ||
s2 == "P" && s1 == "R" {
p2++
}
}
if p1 > p2 {
fmt.Println("Player1")
} else if p2 > p1 {
fmt.Println("Player2")
} else {
fmt.Println("TIE")
}
}
}
```
代码思路:
- 通过 `fmt.Scan()` 依次读入 `t` 和每个测试样例的 `n`。
- 用 `p1` 和 `p2` 分别表示 Player1 和 Player2 的得分,初始化为 0。
- 对于每次游戏,读入两个字母 `s1` 和 `s2`,根据规则判断谁赢了,并将得分累加到 `p1` 或 `p2`。
- 最后比较 `p1` 和 `p2` 的大小,输出获胜方的名字或 `TIE`。