我正在参加「创意开发 投稿大赛」详情请看:掘金创意开发大赛来了!
1. 概述
昨天写了生命游戏,不禁想起了刚刚接触python的时候,对于编程的种种都还非常陌生,第一个做的就是剪刀石头布的游戏,正巧掘金创意开发征文想要冲一波升降桌,不如就把这个也放上来(手动狗头.jpg)。
当然,对于刚刚接触编程的同学,剪刀石头布也不失为帮助大家充分熟悉条件控制与循环语句好方法。
这个游戏古老而简单,其中充满了一物降一物和相生相克的哲学思想~~
总而言之,其规则如下:
- 石头克制剪刀
- 剪刀克制布
- 布克制石头
为了顺利完成游戏流程,我们需要做到以下几点:
- 可以通过人机交互的方式输入自己的选择
- 设置电脑机器人进行其自己的选择
- 进行比赛角逐,得出游戏的胜负关系
2. 代码
总体代码如下所示:
import random
import os
import re
// 用户(我们)的选择
def UserChoiceText(userChoice):
if 'S' == str.upper(userChoice):
return '石头'
elif 'J' == str.upper(userChoice):
return '剪刀'
elif 'B' == str.upper(userChoice):
return '布'
os.system('cls' if os.name=='nt' else 'clear')
while (True):
print("\n")
print("石头, 剪刀, 布 - 开始......")
userChoice = input("进行你的选择:[S]石头,[J]剪刀,[B]布,[T]退出: ")
if 'T' == str.upper(userChoice):
print("你选择了退出,GAME OVER。")
break
if not re.match("[JjSsBb]", userChoice):
print("只能选择下面的字母:")
print("[S]石头, [J]剪刀, 或 [B]布.")
continue
print("你的选择: " + UserChoiceText(userChoice))
choices = ['S', 'B', 'J']
opponenetChoice = random.choice(choices) // 机器人(电脑)的选择
print("我的选择: " + UserChoiceText(opponenetChoice))
// 胜负关系的判断
if opponenetChoice == str.upper(userChoice):
print("平局! ")
elif opponenetChoice == 'S' and userChoice.upper() == 'J':
print("石头砸剪刀, 我赢了! ")
continue
elif opponenetChoice == 'J' and userChoice.upper() == 'B':
print("剪刀剪布, 我赢了! ")
continue
elif opponenetChoice == 'B' and userChoice.upper() == 'S':
print("布包石头,我赢了! ")
continue
else:
print("你赢了!")