选择与循环:剪刀石头布_python项目:剪刀石头布游戏

223d90d6b99991e594e6c48fecfa78e8.png

一、明确项目

和电脑玩一个剪刀石头布的游戏:电脑随机出拳,我们可选择出什么。

二、拆解项目

2.1 双方出拳

  • 首先,我们要让双方选择出拳,才能判断胜负。
  • 我们可以设置变量computer_choice代表电脑的出拳选择,设置变量user_choice代表你的出拳选择。
  • 电脑的出拳,我们可以使用random.choice()来随机选择;我们的出拳,可以手动输入我们出拳的类型。
  • 另外,判断下输入:当输入的内容不是石头剪刀布时,电脑会提醒'输入有误,请重新出拳',并重新出拳。

2.2 双方亮拳

  • 使用print()函数打印出双方出拳结果

2.3 输出战斗结果

  • 罗列平局,输局,赢局对应的情况,定义逻辑判断函数
  • 打印出战斗结果

三、逐步执行,代码实现

  1. 根据项目拆解情况,给出初级代码
  2. 代码优化:用函数封装代码,便于后续增删改
  3. 功能优化:增加一个游戏重复的小功能

最终代码:

import random,time

# 变量key代表循环运行程序的开关
key=1

#采集双方出拳信息的函数
def myinput():
    punches=['石头','剪刀','布']
    computer_choice=random.choice(punches) #电脑出拳
    user_choice=input('有三种出拳类型:石头,剪刀,布,请输入你的出拳类型:') #用户出拳
    while user_choice not in punches:
        print('输入有误,请重新出拳')
        user_choice=input('有三种出拳类型:石头,剪刀,布,请输入你的出拳类型:') #用户出拳
    return computer_choice,user_choice
    # 这里返回的数据是一个元组

#判断输赢逻辑函数
def match(my_input):
    # 把元组中的数据取出来
    computer_choice=my_input[0]
    user_choice=my_input[1]
    # 双方亮拳
    print('————战斗过程————')
    time.sleep(1)
    print('你出拳:%s' %(user_choice))
    time.sleep(1)
    print('我出拳:%s' %(computer_choice))
    time.sleep(1)
    # 战斗结果
    print('—————结果—————')
    if user_choice == computer_choice:  # 使用if进行条件判断
        print('平局!')
    # 电脑的选择有3种,索引位置分别是:0石头、1剪刀、2布。
    # 假设在电脑索引位置上减1,对应:-1布,0石头,1剪刀,皆胜。
    elif user_choice == punches[punches.index(computer_choice)-1]:
        print('你赢了!')
    else:
        print('你输了!')

#多次重复函数
def again():
    # 声明全局变量key,以便修改该变量
    global key
    a=input('是否继续?继续请输入1,输入其他键将结束程序。')
    if a!='1':
        key=0

#主函数
def main():
    print('欢迎来和我玩石头剪刀布的游戏!')
    while key==1:
        my_input=myinput()
        match(my_input)
        again()
    print('谢谢你和我一起玩,再见')
    
#调用主函数
main()

学习时间:3月30日

db77fbce6b4208b3629f66369b091e8e.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值