专栏首页APP测试测试面试题集-Python三局两胜小游戏

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

要求:

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

运行结果:

编程的实现无非经历以下四个步骤:明确目标,分析思路,拆解过程,逐步优化。你有更加好的实现方法吗?

本文分享自微信公众号 - ITester软件测试小栈(ITestingA),作者:ITester小锦鲤

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-01-26

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 测试开发进阶-1.基本环境介绍

    PEP257:https://github.com/qiuxiang/pep/blob/master/peps/257.md

    ITester软件测试小栈
  • 2.掌握Python基本数据类型,从python陌路人到熟人!

    有时候,需要对数据内置的类型进行转换,数据类型的转换,只需要将数据类型作为函数名即可。

    ITester软件测试小栈
  • Python接口自动化之yaml配置文件

    在上一篇Python接口自动化测试系列文章:Python接口自动化之数据驱动,主要介绍openpyxl操作excel,结合ddt实现数据驱动。

    ITester软件测试小栈
  • python 函数编程的位置参数、默认参数、关键字参数以及函数的递归

    ** 注意关键参数是转化为dict(key对应value),位置参数是元组形式

    学到老
  • 19 个 JavaScript 编码小技巧

    这篇文章适合任何一位基于JavaScript开发的开发者。我写这篇文章主要涉及JavaScript中一些简写的代码,帮助大家更好理解一些JavaScript的基...

    哲洛不闹
  • python 函数编程的位置参数、默认参数、关键字参数以及函数的递归

    首先对于函数调用: !usr/bin/env python _*_ coding:utf-8 _*_ def AQA(INPUT): if INPUT...

    学到老
  • 失去的象牙塔:停学潮之下大学生对新冠病毒是何反应?

    前不久,美国罗切斯特大学的计算机科学家根据推特舆情分析了新型冠状病毒大流行带来的社会影响,探究了使用「中国病毒」、「武汉肺炎」这类歧视性词汇和使用「新冠病毒」这...

    机器之心
  • python 基础知识第10讲:函数的初识、参数、解包

    函数也是一个对象,就是我们在内存当中所开辟的一块区域,通过一些代码块实现特定的功能 。 可以用来保存一些可执行的代码,并且可以在需要的时候,对这些代码(语句)...

    小海怪的互联网
  • 第三章 函数与变量

    玩蛇的胖纸
  • 世界各地机场开始大规模部署面部识别系统

    《简报(BRIEF)》杂志发布消息,称世界各地机场开始大规模部署面部识别系统。 随着政府部门多年来一直在寻求使用生物识别技术进行边境检查,面部识别在世界各地越来...

    人工智能快报

扫码关注云+社区

领取腾讯云代金券