Python3 实现 石头、剪刀、布 猜拳小游戏
Python基础语法
目标
实现一个人与计算机玩猜拳——石头剪刀布的小游戏,学会Python的循环控制语句和条件判断语句。
思考一:
假如把石头、剪刀、布分别用数字0、1、2表示。那么如何判定谁胜谁负呢?
那么这样的伪代码实现如下:
if(user == 0 and computer == 0):
print("平局")
elif(user == 0 and computer == 1):
print("人获胜")
elif(user == 0 and computer == 2):
print("计算机获胜")
elif(user == 1 and computer == 0):
print("计算机获胜")
elif(user == 1 and computer == 1):
print("平局")
elif(user == 1 and computer == 2):
print("人获胜")
elif(user == 2 and computer == 0):
print("人获胜")
elif(user == 2 and computer == 1):
print("计算机获胜")
elif(user == 2 and computer == 2):
print("平局")
这样的代码不用我说、大家也觉得这个代码看起来很繁杂对吧。
找规律
虽然是一个简单的石头剪刀布小游戏,其实背后也有很大的算法思想、可以找出很多的规律。
-
如果变量user和computer相等就是平局 如果用 (user+1) 除以 3 得到的余数与computer相等就是user(人)获得胜利 其余情况都是计算机获胜
import random
# 初始化表示手势的变量
gesture = [石头 , 剪刀, 布]
wins = 0
print("*********************")
print("石头剪刀布游戏
Ver 1.0.0 by YuZhou_1su
")
# 进行5轮游戏
for i in range(5):
# 输入玩家的手势
print("*********************")
print("0:石头 1:剪刀 2:布")
print("*********************")
user = int(input("请输入你想出的序号:
"))
if(user >= 0 and user <= 2):
computer = random.randint(0, 2)
print("玩家: {0}, 计算机: {1}".format(gesture[user], gesture[computer]))
if user == computer:
print("...平局! ")
elif computer == (user + 1) % 3:
print("...玩家获胜! ")
wins = wins + 1
else:
print("...计算机获胜! ")
else:
print("***你输入的序号有错、请重新输入!***")
print("玩家获胜次数: %d " % wins)
总结
我们从此可以看到找到规律后的代码短小简洁,程序的执行速度也会随之提升。让我们慢慢的学起来,规律无处不在…
