python简易升级版石头剪刀布

前言

前面学习了运用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;

运行结果如下:
在这里插入图片描述

总结

循环结构相比于选择结构而言,更加的具有逻辑性,循环结构书写时,需要有比较清晰的逻辑,我认为最重要的一点就是要理解并不断的加以练习,把自己的逻辑结构练习出来了,也自然会慢慢理解循环结构,也不必再写过于长的代码。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值