Python3 实现 石头、剪刀、布 猜拳小游戏

Python基础语法

目标

实现一个人与计算机玩猜拳——石头剪刀布的小游戏,学会Python的循环控制语句和条件判断语句。

思考一:

假如把石头、剪刀、布分别用数字0、1、2表示。那么如何判定谁胜谁负呢?

user(人) computer(计算机) 判定结果
0(石头) 0(石头) 平局
0(石头) 1(剪刀) 人获胜
0(石头) 2(布) 计算机获胜
1(剪刀) 0(石头) 计算机获胜
1(剪刀) 1(剪刀) 平局
1(剪刀) 2(布) 人获胜
2(布) 0(石头) 人获胜
2(布) 1(剪刀) 计算机获胜
2(布) 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("石头剪刀布游戏\nVer 1.0.0 by YuZhou_1su\n")

# 进行5轮游戏
for i in range(5):
    # 输入玩家的手势
    print("*********************")
    print("0:石头 1:剪刀 2:布")
    print("*********************")
    user = int(input("请输入你想出的序号:\n"))
    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)

总结

我们从此可以看到找到规律后的代码短小简洁,程序的执行速度也会随之提升。让我们慢慢的学起来,规律无处不在…

猜你喜欢

转载自blog.csdn.net/yuzhou_1shu/article/details/83578980