【python】优化版石头剪刀布游戏

#石头(0)剪刀(1)布(2) 石头剪刀布小游戏
#逻辑:我输入012,然后对方要判断谁输谁赢,规则就是石头>剪刀,剪刀>布 布>石头
#引入随机库
import random
print("-"*4+"欢迎进入石头剪刀布游戏"+"-"*4)
# print("游戏规则:石头>剪刀,剪刀>布 布>石头,输入石头(0)剪刀(1)布(2)的编号即可")
x = int(input("你出的是"))
y = random.randint(0,2)
list = ["石头","剪刀","布"] 

if x in range(0,3):
    if x != y:
        print("电脑出的是%s,你出的是%s"%(list[x],list[y])) #把格式化打印放在最前面,减少重复
        if (x ==0 and y ==1) or (x ==1 and y ==2) or (x ==2 and y ==0) : 
            print("你赢了了!") 
        else:
            print("你输了!") 
    else:
        print("双方一致,平局,再来一次吧!")
else:
    print("您输入的编号有误,请核实后再输入")

改良版2,貌似更简单点儿:

#石头(0)剪刀(1)布(2) 石头剪刀布小游戏
#逻辑:我输入012,然后对方要判断谁输谁赢,规则就是石头>剪刀,剪刀>布 布>石头
#引入随机库
import random
print("-"*4+"欢迎进入石头剪刀布游戏"+"-"*4)
# print("游戏规则:石头>剪刀,剪刀>布 布>石头,输入石头(0)剪刀(1)布(2)的编号即可")
x = int(input("你出的是"))
y = random.randint(0,2)
list = ["石头","剪刀","布"] 

if x in range(0,3):
    print("电脑出的是{},你出的是{}".format(list[x],list[y])) #format用于字符串的格式化
    if x != y:
        if (x ==0 and y ==1) or (x ==1 and y ==2) or (x ==2 and y ==0) : 
            #用or来合并,比if一一列举容易多了
            print("你赢了!")
            #用%或者format来格式化字符串,更加方便
        else:
            print("你输了!") 
    else:
        print("平局,再来一次吧!")
else:
    print("您输入的编号有误,请核实后再输入")

你可能感兴趣的:(python)