当前位置:   article > 正文

[Python]石头剪刀布,是一种猜拳游戏,规则:石头>剪刀>布>石头,alice和bom想通过编程的方式来判断比赛结果,请编程模拟这个过程。并输出游戏结果。输入格式:第一行是一个整数n,......_python石头剪刀布

python石头剪刀布

石头剪刀布

石头剪刀布,是一种猜拳游戏,规则:石头>剪刀>布>石头,alice和bom想通过编程的方式来判断比赛结果,请编程模拟这个过程。并输出游戏结果。

输入格式:

第一行是一个整数n,表示一共进行n次游戏。1<=n<=100。
接下来是n行数据,每行包括两个字符,用空格分开,分别表示alice和bom的出拳内容,S表示石头,J表示剪刀,B表示布。

输出格式:

先输出n行,分别输出每局获胜方的名字,如果平局输出“平”
再输出一行最终的比分alice在前,bom在后,中间用冒号隔开
最后输出获胜方的名字,如果平局输出“平”

输入样例:

  1. 3
  2. S J
  3. B B
  4. B J

输出样例:

  1. alice
  2. bom
  3. 1:1

代码如下:

[Python3]解法一:

  1. n = int(input()) # 游戏次数
  2. alice_score = 0 # alice得分
  3. bom_score = 0 # bom得分
  4. for _ in range(n):
  5. alice, bom = input().split() # 获取alice和bom的出拳内容
  6. if (alice == 'S' and bom == 'J') or (alice == 'J' and bom == 'B') or (alice == 'B' and bom == 'S'):
  7. # alice获胜
  8. alice_score += 1
  9. print("alice")
  10. elif alice == bom:
  11. # 平局
  12. print("平")
  13. else:
  14. # bom获胜
  15. bom_score += 1
  16. print("bom")
  17. print(f"{alice_score}:{bom_score}") # 输出比分
  18. if alice_score > bom_score:
  19. print("alice")
  20. elif alice_score < bom_score:
  21. print("bom")
  22. else:
  23. print("平")

解法二(使用函数):

  1. def judge(a, b):
  2. if a == b:
  3. return '平'
  4. elif (a == 'S' and b == 'J') or (a == 'J' and b == 'B') or (a == 'B' and b == 'S'):
  5. return 'alice'
  6. else:
  7. return 'bom'
  8. n = int(input())
  9. alice_score = 0
  10. bom_score = 0
  11. results = []
  12. for _ in range(n):
  13. a, b = input().split()
  14. winner = judge(a, b)
  15. results.append(winner)
  16. if winner == 'alice':
  17. alice_score += 1
  18. elif winner == 'bom':
  19. bom_score += 1
  20. for result in results:
  21. print(result)
  22. print(f"{alice_score}:{bom_score}")
  23. if alice_score > bom_score:
  24. print("alice")
  25. elif alice_score < bom_score:
  26. print("bom")
  27. else:
  28. print("平")

解法三:

  1. n = int(input())
  2. score = [0, 0]
  3. for i in range(n):
  4. alice, bom = input().split()
  5. if alice == bom:
  6. print("平")
  7. elif (alice == 'S' and bom == 'J') or (alice == 'J' and bom == 'B') or (alice == 'B' and bom == 'S'):
  8. print("alice")
  9. score[0] += 1
  10. else:
  11. print("bom")
  12. score[1] += 1
  13. print(f"{score[0]}:{score[1]}", end=' ')
  14. if score[0] > score[1]:
  15. print("alice")
  16. elif score[0] < score[1]:
  17. print("bom")
  18. else:
  19. print("平")

在这个代码中,我们首先通过input()函数获取游戏的次数n,然后初始化一个长度为2的列表score来表示alice和bom的得分,初始得分都为0。

接下来,我们使用一个循环来模拟n次游戏的过程。每次游戏中,我们通过input().split()获取alice和bom的出拳选择。然后根据游戏规则判断胜负,如果alice胜利,则alice的得分加1,如果bom胜利,则bom的得分加1,如果平局则不改变得分。

在循环结束后,我们通过print语句输出每轮的结果,然后输出最终的比分。最后根据得分判断最终的获胜者,得分高的获胜,如果得分相同则为平局。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/405873
推荐阅读
相关标签
  

闽ICP备14008679号