利用三局两胜制石头剪刀布练习python条件判断与循环

以字符串'石头','剪刀','布'的方式计算出胜负,需把每种方法一一列举,此方法较为繁琐,因此我们用012分别代替石头剪刀布

我们需要分别将用户,电脑赢的次数,平局的计数,以便于我们通过他们计算出胜负平局。并且我们需要一个随机函数来模拟电脑所出的方式。因此可以先写出如下代码:

from random import randint

user_win = 0
computer_win = 0
deuce = 0

我们需要进行三局游戏,所以需要通过for循环实现,并且要把游戏代码放入循环体中,游戏的胜负可以通过用户与电脑的差值计算得出。

for index ,value in  enumerate(range(3)):
    user_num = input('012')
    user_num = int(user_num)
    computer_num = randint(0,2)
    sum = user_num - computer_num
    if sum == -1 or sum == 2:
        print('第{}局玩家胜'.format(index + 1))
        user_win += 1
    elif sum == 0:
        print('第{}局平局'.format(index + 1))
        deuce += 1
    else:
        print('第{}局电脑胜'.format(index + 1))
        computer_win += 1
    print('--------------第{}局结束------------'.format(index + 1))

此时可以通过玩家与电脑的获胜次数来判断胜负,但此方法需要执行三次循环之后才能计算出,因此要写在循环体外:

if user_win > computer_win:
    print('玩家胜')
elif user_win == computer_win:
    print('平局')
else:
    print('电脑胜')

此时若连胜两次此程序不能直接退出,需要改进,在循环体内末尾加判断:

    if compunter_win == 2 :
        print('电脑胜')
        break
    elif user_win == 2:
        print('玩家胜')
        break
    else:
        # 平1局 一胜一负  平两局 赢一局  平三局
        if deuce == 1 and sum == 0 and index == 2:
            print('平局')
        elif deuce == 3 :
            print('平局')
        elif deuce == 2 and index == 2:
            if sum == 1:
                print('玩家胜')
            else:
                print('电脑胜')
此时执行的到三局两胜制石头剪刀布.





  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python石头剪刀游戏是一种简单的游戏,通常是两个人进行对战。下面是一个示例代码,实现了一个基于对话框的三石头剪刀游戏: ```python import random import tkinter as tk from tkinter import messagebox # 定义游戏规则 rules = { "rock": "scissors", "scissors": "paper", "paper": "rock" } # 初始化计分 player_score = 0 computer_score = 0 # 定义游戏逻辑 def play(player_choice): global player_score, computer_score # 计算电脑的选择 computer_choice = random.choice(list(rules.keys())) # 判断负 if player_choice == computer_choice: result = "平" elif rules[player_choice] == computer_choice: result = "你赢了!" player_score += 1 else: result = "电脑赢了!" computer_score += 1 # 显示结果对话框 messagebox.showinfo("结果", f"你选择了:{player_choice}\n电脑选择了:{computer_choice}\n\n{result}") # 判断是否达到两条件 if player_score == 2 or computer_score == 2: if player_score > computer_score: winner = "你" else: winner = "电脑" messagebox.showinfo("游戏结束", f"{winner}获得了最终利!") # 重置计分 player_score = 0 computer_score = 0 # 创建游戏界面 window = tk.Tk() window.title("石头剪刀游戏") # 创建按钮 rock_button = tk.Button(window, text="石头", command=lambda: play("rock")) rock_button.pack() scissors_button = tk.Button(window, text="剪刀", command=lambda: play("scissors")) scissors_button.pack() paper_button = tk.Button(window, text="", command=lambda: play("paper")) paper_button.pack() # 运行游戏 window.mainloop() ``` 这段代码使用了`tkinter`库来创建游戏界面和对话框,通过点击按钮来选择石头剪刀,并与电脑进行对战。每结束后会弹出对话框显示结果,当某一方达到两利时,会弹出游戏结束的对话框。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值