前言
前面学习了运用python的选择结构写出一个简单版的石头剪刀布游戏,我们也不难发现其中的规律,但是会发现选择结构写起来并不是非常的方便,那么为了改进这个游戏,可以随玩随停,我们用到了循环结构。
目的
改进石头剪刀布游戏,用python中的循环结构实现改进后的石头剪刀布游戏能够随玩随停。
思路
既然要用循环结构实现这个程序,那么我们就要确定一方赢得条件是什么。
假设我们设置为三局两胜制,那么当一方赢了两把就算一局结束或者玩家自己退出游戏。
那么思路就出来了:
1.玩家赢的次数:usr_num=0
2.电脑赢的次数:com_num=0
代码实现
既然这个程序是选择结构下的石头剪刀布游戏的升级版,那么同样也需要用到随机函数,让电脑随机产生。
我们依然还是用0代表剪刀,1代表石头,2代表布。
循环中的代码如下:
user = int(input("剪刀(0),石头(1),布(2):"))
if user - computer == -1 or user - computer == 2:
com_sum += 1
if com_sum >= 2:
print("电脑胜")
choice=input("是否继续(Y/N):")
if choice == 'Y' or choice== 'y':
user = int(input("剪刀(0),石头(1),布(2):"))
elif choice == 'N' or choice == 'n':
break;
elif user - computer == -2 or user - computer == 1:
usr_sum += 1
if usr_sum >= 2:
print("玩家胜")
choice=input("是否继续(Y/N):")
if choice == 'Y' or choice== 'y':
user = int(input("剪刀(0),石头(1),布(2):"))
elif choice == 'N' or choice == 'n':
break;
判定条件if user - computer == -1 or user - computer == 2:
user - computer == -2 or user - computer == 1:
根据下图可以得出:
choice=input("是否继续(Y/N):")
if choice == 'Y' or choice== 'y':
user = int(input("剪刀(0),石头(1),布(2):"))
elif choice == 'N' or choice == 'n':
break;
这块循环代码是判断玩家是否还要继续玩下去,如果输入的是Y或者y,那么继续游戏,如果是N或者n的话,那么就退出游戏。
完整代码如下:
import random
computer = random.randint(0,2)
usr_sum = 0
com_sum = 0
while True:
user = int(input("剪刀(0),石头(1),布(2):"))
if user - computer == -1 or user - computer == 2:
com_sum += 1
if com_sum >= 2:
print("电脑胜")
choice=input("是否继续(Y/N):")
if choice == 'Y' or choice== 'y':
user = int(input("剪刀(0),石头(1),布(2):"))
else:
break;
elif user - computer == -2 or user - computer == 1:
usr_sum += 1
if usr_sum >= 2:
print("玩家胜")
choice=input("是否继续(Y/N):")
if choice == 'Y' or choice== 'y':
user = int(input("剪刀(0),石头(1),布(2):"))
else:
break;
运行结果如下:
总结
循环结构相比于选择结构而言,更加的具有逻辑性,循环结构书写时,需要有比较清晰的逻辑,我认为最重要的一点就是要理解并不断的加以练习,把自己的逻辑结构练习出来了,也自然会慢慢理解循环结构,也不必再写过于长的代码。