开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 23 天,点击查看活动详情
1. 算法描述
游戏开始,初始状态下用户和电脑都有100分,赢一局+10分,输一局-10分 当用户为0分时,游戏结束,提示游戏结束,比赛输了当用户为200分时,游戏结束,提示游戏结束,赢得比赛 每轮比赛都输出当前的分数
2. 算法分析
小游戏可以拆解为:双方出拳→双方亮拳(打印一下)→判断胜负→赢:加分;输:减分
3. 算法思路
- 我们要让双方选择出拳,才能判断胜负。
- 我们可以设置变量computer_choice代表电脑的出拳选择,设置变量user_choice代表你的出拳选择。
- 电脑的出拳,我们可以使用random.choice()来随机选择;我们的出拳,可以手动输入我们出拳的类型。
- 注:
- 判断下输入:当输入的内容不是石头剪刀布时,电脑会提醒'输入有误,请重新出拳'。
- 判断的语句为:while a not in list1,即当元素 a 不在列表 list1。
4. 代码实现
实现代码📝:
# 1代表剪刀,2代表石头,3代表布
import random
print("=" * 20)
print('' * 20, '剪刀石头布游戏')
print('1代表剪刀,2代表石头,3代表布')
game_info = {1: '剪刀', 2: '石头', 3: '布'}
score = 100 # 初始分
while True:
robots_choice = random.randint(1, 3) # 电脑随机出拳
user_choice = input('请出拳:')
if user_choice not in '123':
print('出拳错误,请重新出')
continue
user_choice = int(user_choice)
print('*' * 20)
print('电脑出:', game_info[robots_choice])
print('自己出:', game_info[user_choice])
print('*' * 20)
if (user_choice == 1 and robots_choice == 3) or (user_choice == 2 and robots_choice == 1) or (
user_choice == 3 and robots_choice == 2):
score += 10
print('你赢得本轮游戏,当前分数为:',score)
elif user_choice == robots_choice:
print('本轮游戏平局,当前分数为:', score)
else:
score -= 10
print('你输掉本轮游戏,当前分数为:', score)
if score >= 200:
print('游戏结束,你赢得比赛')
break
elif score <=0:
print('游戏结束,你输了')
break
运行结果👇:小伙伴们自行上号体验