提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
用python编写一个简单的猜拳游戏
这是我用python编写的第一个程序,有一些局限,望大家批评指正。
方法一代码如下:
you = int(input("请输入剪刀0,石头1,布2:"))
import random
cp = random.randint(0,2)##生成范围是0到2的随机数
if(you > 2 or you < 0):
print("没有这种出法哦")##玩家不能输入0到2范围以外的数字
else:
print("电脑出的是 %d\n " % cp)
if(you == 0):
if(cp == 0):
print("平局,请再出一次")
elif(cp == 1):
print("你输了")
else:
print("你赢了")
if(you == 1):
if(cp == 1):
print("平局,请再出一次")
elif(cp == 2):
print("你输了")
else:
print("你赢了")
if(you == 2):
if(cp == 2):
print("平局,请再出一次")
elif(cp == 0):
print("你输了")
else:
print("你赢了")
优点:比较简洁,思路清晰
缺点:不够直观,不能直接说明电脑出的是什么,只能用数字代替
平局的时候必须重新运行游戏才能再来一次。
改进后把电脑出的数字转化为了汉字表达比较直观。编写程序的过程中尤其要注意if语句的次序。 这样的话,程序在执行完转换中文操作后就直接结束了,没有达成我们想要的目的。 在python中尤其要注意缩进,缩进的位置就相当于大括号,能决定代码之间的关系是并列的还是包含的。you = int(input("请输入剪刀0,石头1,布2:"))
import random##引用随机库函数
cp = random.randint(0, 2) ##生成范围是0到2的随机数
if(you > 2 or you < 0):
print("没有这种出法哦")##玩家不能输入0到2范围以外的数字
else:
cpc = 0
if(cp == 0):
cpc = "剪刀"
elif(cp == 1):
cpc = "石头"
else:
cpc = "布"
print("电脑出的是%s\n " % cpc)
if(you == 0):
if(cp == 0):
print("平局,请再出一次")
elif(cp == 1):
print("你输了")
else:
print("你赢了")
if(you == 1):
if(cp == 1):
print("平局,请再出一次")
elif(cp == 2):
print("你输了")
else:
print("你赢了")
if(you == 2):
if(cp == 2):
print("平局,请再出一次")
elif(cp == 0):
print("你输了")
else:
print("你赢了")
总结二
把电脑生成的数字转化为汉字的if语句和判断输赢的if语句使并列的,如果不并列,将判断输赢的if语句弄到把电脑生成的数字转化为汉字的if语句里面去了就会导致程序执行到转化那里就直接停止了。
错误代码如下: you = int(input("请输入剪刀0,石头1,布2:"))
import random##引用随机库函数
cp = random.randint(0, 2) ##生成范围是0到2的随机数
cpc = 0
if(cp == 0):
cpc = "剪刀"
elif(cp == 1):
cpc = "石头"
else:
cpc = "布"
if(you > 2 or you < 0):
print("没有这种出法哦")##玩家不能输入0到2范围以外的数字
else:
print("电脑出的是%s\n " % cpc)
if(you == 0):
if(cp == 0):
print("平局,请再出一次")
elif(cp == 1):
print("你输了")
else:
print("你赢了")
if(you == 1):
if(cp == 1):
print("平局,请再出一次")
elif(cp == 2):
print("你输了")
else:
print("你赢了")
if(you == 2):
if(cp == 2):
print("平局,请再出一次")
elif(cp == 0):
print("你输了")
else:
print("你赢了")
注意