python_test1(条件判断、循环、格式化字符串)

时间:2021-10-09
本文章向大家介绍python_test1(条件判断、循环、格式化字符串),主要包括python_test1(条件判断、循环、格式化字符串)使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

玩家对战游戏

三个阶段:

第一阶段:规定双方的角色属性,战斗时人为计算扣血量,并打印战斗结果;

第二阶段:随机生成双方角色属性,自动计算扣血量,并优化显示战斗过程的代码;

第三阶段:双方进行3局PL,每局判定胜负,三局两胜,判断最终结果。

第一阶段

分析:就是简单的运用到了time这个函数print输出语句,一直输出就好了。

import time

print("【玩家】\n血量:100\n攻击力:66")
print("--------------------------------------")
time.sleep(1.5)

print("【敌人】\n血量:100\n攻击力:3")
print("--------------------------------------")
time.sleep(1.5)

print("【玩家】攻击了【敌人】,【敌人】血量为34")
print("【敌人】攻击了【玩家】,【玩家】的血量为97")
print("--------------------------------------")
time.sleep(1.5)

print("【玩家】攻击了【敌人】,【敌人】血量为0")
print("【敌人】攻击了【玩家】,【玩家】的血量为94")
print("--------------------------------------")
time.sleep(1.5)

print("【玩家】获胜")

效果动图:

 第二阶段

分析:为了实现更为随机的血量,让游戏充满随机性,我们可以引入random随机数函数,让血量以及攻击力都随机,并且结合循环语句,显然比第一阶段更为有意思。

import time
import random

player_life = random.randint(100,150)
player_attack = random.randint(30,49)
enemy_life = random.randint(50,99)
enemy_attack = random.randint(20,30)

print("【玩家】\n"+"血量:"+str(player_life)+"\n攻击力:"+str(player_attack))
print("________________________________________________________________")
time.sleep(1)
print("【敌人】\n"+"血量:"+str(enemy_life)+"\n攻击力:"+str(enemy_attack))
print("________________________________________________________________")
time.sleep(1)

while (player_life > 0) and (enemy_life > 0):
    player_life = player_life - enemy_attack
    enemy_life = enemy_life - player_attack
    print("【玩家】的血量:"+str(player_life))
    print("【敌人】的血量:"+str(enemy_life))
    print("________________________________________________________________")
    time.sleep(1)

if player_life > 0:
    print("【玩家】获胜!")
else:
    print("【敌人】获胜!")

效果动图:

 第三阶段

分析:大循环要有,毕竟是三局两胜,然后要在中间做出统计,获胜的小局数量,最后做出比较,输出最后的获胜方。

import time
import random

m = 0 #统计玩家获胜的局数
n = 0 #统计敌人获胜的局数
player_life = random.randint(100,150)
player_attack = random.randint(35,69)
enemy_life = random.randint(100,130)
enemy_attack = random.randint(30,49)

print("【玩家】\n"+"血量:"+str(player_life)+"\n攻击力:"+str(player_attack))
print("--------------------------------------------------------")
time.sleep(1)
print("【敌人】\n"+"血量:"+str(enemy_life)+"\n攻击力:"+str(enemy_attack))
print("--------------------------------------------------------")
time.sleep(1)

for i in range(1,4):
    print("这是第"+str(i)+"场比赛")
    print("--------------------------------------------------------")
    while (player_life > 0) and (enemy_life > 0):
        player_life = player_life - enemy_attack
        enemy_life = enemy_life - player_attack
        print("【玩家】的血量:"+str(player_life))
        print("【敌人】的血量:"+str(enemy_life))
        print("--------------------------------------------------------")
        time.sleep(1)

    if player_life > 0:
        print("【玩家】小胜一局!奈斯!")
        m += 1 
    elif (player_life < 0) and (enemy_life < 0):
        print("这局怎么平了!淦!")
    else:
        print("【敌人】取得一分!可惜!")
        n += 1 
    print("--------------------------------------------------------")
if m > n:
    print("【玩家】取得了最终的胜利,干得漂亮!!!")
elif m < n:
    print("【敌人】取得了最终的胜利,运气实在是太背了,淦!!!")
else:
    print("不是吧,阿sir,这都能平局!")

效果动图:

 最终的分析

稍微复杂点的项目是一步一步,先想整体,然后逐渐清晰脉络,慢慢的干掉!

结束了!已经结束了!换碟。

原文地址:https://www.cnblogs.com/sff-0-0/p/15382740.html