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)
总结
我们从此可以看到找到规律后的代码短小简洁,程序的执行速度也会随之提升。让我们慢慢的学起来,规律无处不在…