用Python做石头、剪刀、布游戏

今天,我把2301_78319359问题的其中的石头、剪刀、布给做出来了,大家可以参考一下(逐句分析是给初学者看的,明白的看代码就行)。

本程序来自问题请问下这两题要怎么做呀_编程语言-CSDN问答

逐句分析

这个程序首先要导入所需的模块:

from random import randint

 这个程序虽然编程量有些大,但多于用户来说体验还是比较短的,所以应该是一个while结构(让用户不断进行,退出就用终端自带的叉号关闭):

然后,利用random模块的randint生成一个整数,然后转换成石头、剪刀、布这三个实现程序随机出一个:

n=randint(1,3) 
    if n==1:
        a="石头"
    elif n==2:
        a="剪刀"
    else:
        a="布"

你也可以换成1、2、3,更简便,我就为了后面的分析简单点。

接下来,就该是制作用户输入了(为了尽量缩短打字时间,程序要允许用户使用1、2、3来代替,if语句是将1、2、3转成汉字):

b=input("请输入石头、剪刀、布(或使用1、2、3)")
    if b=="石头" or b=="1":
        b="石头"
    elif b=="剪刀" or b=="2":
        b="剪刀"
    elif b=="布" or b=="3":
        b="布"
    else:
        b="无效的输入"

要有无效输入(万一用户故意不好好输入,如直接给你输一个乱码,怎么办)的反应。

if a=="石头" and b=="剪刀":
        r="输"
    elif a=="剪刀" and b=="布":
        r="输"
    elif a=="布" and b=="石头":
        r="输" 
    
    if a=="石头" and b=="布":
        r="赢"
    elif a=="剪刀" and b=="石头":
        r="赢"
    elif a=="布" and b=="剪刀":
        r="赢"

    if a==b:
        r="平局"
    
    if b=="无效的输入":
        r="无效的输入"

判断胜负(胜负为用户的,好输出)

if r!="无效的输入":
        print(f"你{r}了(程序出的是{a},你出的是{b})")
    else:
        print("对不起,由于你输入的是无效的输入,所以无法分析。")

if让乱输入的内容单独输出,输出用f字符串填上。

全部代码

from random import randint
while True:
    n=randint(1,3) 
    if n==1:
        a="石头"
    elif n==2:
        a="剪刀"
    else:
        a="布"
    b=input("请输入石头、剪刀、布(或使用1、2、3)")
    if b=="石头" or b=="1":
        b="石头"
    elif b=="剪刀" or b=="2":
        b="剪刀"
    elif b=="布" or b=="3":
        b="布"
    else:
        b="无效的输入"
    if a=="石头" and b=="剪刀":
        r="输"
    elif a=="剪刀" and b=="布":
        r="输"
    elif a=="布" and b=="石头":
        r="输" 
    
    if a=="石头" and b=="布":
        r="赢"
    elif a=="剪刀" and b=="石头":
        r="赢"
    elif a=="布" and b=="剪刀":
        r="赢"
    if a==b:
        r="平局"
    if b=="无效的输入":
        r="无效的输入"
    if r!="无效的输入":
        print(f"你{r}了(程序出的是{a},你出的是{b})")
    else:
        print("对不起,由于你输入的是无效的输入,所以无法分

最终效果

 可以看到,效果还不错,有赢有输有平局,输入无效内容也有特定回复。 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值