测试面试题集-Python三局两胜小游戏

254 篇文章 8 订阅
190 篇文章 3 订阅

要求:

1.规定玩家和敌方两个角色,存储血量和攻击力数值;

2.血量是100-150的随机数,攻击力是30-50的随机数,计算扣除血量,打印战斗过程;

3.双方进行三轮pk,每局判定胜负,三局两胜,判断最终结果;

4.三局游戏结束后,询问是否要继续游戏,可以选择再来一盘,也可以选择退出游戏。

流程图如下:在这里插入图片描述
分析:

1.random模块,玩家和敌方生成随机数;

2.展示每局角色属性;

3.双方进行pk,当玩家血量>0且敌方血量>0,执行while循环;

4.进行三轮pk后展示最终结果:

单局结果:

若玩家血量>0且敌方血量<=0,玩家赢;
若玩家血量<=0且敌方血量>0,敌方赢;
若玩家血量<=0且敌方血量<=0,平局;
三局两胜:

若玩家胜利次数大于敌方胜利次数,玩家赢;
若敌方胜利次数大于玩家胜利次数,敌方赢;
否则为平局;
5.询问是否继续进行游戏;

代码如下:

# !/usr/bin/python3
# -*- coding:utf-8 -*-
# @Time:2020/1/26  07:00
# @微信公众号:ITester软件测试小栈
# @Author:coco
# @Python交流群:604469740
# @Email:3593721069@qq.com
# @File:test.py
# @Software:PyCharm

import time
import random

player_victory = 0
enemy_victory = 0

while True:
    for i in range(1,4):
        time.sleep(1)
        print(' \n——————现在是第 {} 局——————'.format(i))

        #玩家生成随机数
        player_life = random.randint(100,150)
        player_attack = random.randint(30,50)

        #敌方生成随机数
        enemy_life = random.randint(100,150)
        enemy_attack = random.randint(30,50)

        #展示双方角色属性
        print('【玩家】\n血量:{}\n攻击:{}'.format(player_life,player_attack))

        print('------------------------')
        time.sleep(1)
        print('【敌人】\n血量:{}\n攻击:{}'.format(enemy_life,enemy_attack))

        print('-----------------------')
        time.sleep(1)

        #双方PK
        while player_life > 0 and enemy_life > 0:
            player_life = player_life - enemy_attack
            enemy_life = enemy_life - player_attack
            print('敌人发起了攻击,【玩家】剩余血量{}'.format(player_life))
            print('你发起了攻击,【敌人】的血量剩余{}'.format(enemy_life))
            print('-----------------------')
            time.sleep(1.2)

        #打印最终战果
        if player_life > 0 and enemy_life <= 0:
            player_victory += 1
            print('你打败了敌人,你赢了!')
        elif player_life <= 0 and enemy_life > 0:
            enemy_victory += 1
            print('敌人把你KO掉了,你输了!')
        else:
            print('你和敌人同归于尽,平局!')
    if player_victory > enemy_victory :
        time.sleep(1)
        print('\n【最终结果:你赢了!】')
    elif enemy_victory > player_victory:
        print('\n【最终结果:你输了!】')
    else:
        print('\n【最终结果:平局!】')

    a1 = input('要继续游戏吗,请输入N退出,输入其他继续:')
    if a1 == 'N':
        break

运行结果:在这里插入图片描述
编程的实现无非经历以下四个步骤:明确目标,分析思路,拆解过程,逐步优化。你有更加好的实现方法吗?

最后:【可能给予你一定的帮助】

在这里插入图片描述

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!
关注我的微信公众号【软件测试小dao】免费获取~

我的学习交流群:644956177 群里有技术大牛一起交流分享~

如果我的博客对你有帮助、如果你喜欢我的博客内容,请 “点赞” “评论” “收藏” 一键三连哦!

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值