代码完成项目流程

这篇博客详细介绍了如何使用Python实现一个三局两胜的战斗模拟游戏,包括随机生成角色属性、自动战斗和战果打印。首先,明确了项目目的,通过产品经理提出的需求分析项目流程,然后逐步拆解并解决各个部分:定义角色属性、计算伤害、实现循环战斗、判断胜负,并最终完成三局两胜的战斗结果输出。博客通过代码实例和流程图辅助理解,使得整个项目实现过程清晰易懂。
摘要由CSDN通过智能技术生成

完成一个项目的流程分三步:
在这里插入图片描述
明确项目目的,指的就是我们希望这个程序干什么,达到什么样的效果,从而帮助我们分析整个项目流程,拆解项目;然而,一个完美的拆解方案,应当是按照从上往下的逻辑自然拆解,难度逐渐增加;逐步解决问题,逐渐完善整个项目功能。
明确项目目的
在编程界,一般都是由产品经理提出项目需求,由程序员来实现。项目需求,大家可以简单的理解为项目效果。

用文字描述一下,在这个游戏中,李逍遥(freeLi)大战拜月教主(BOSS),在这个游戏中,会随机生成李逍遥与拜月教主的属性,相互攻击,直到有一方的血量为0。
,这样的战斗采取三局两胜制,最后显示战斗结果,公布获胜方。
在这里插入图片描述
分析流程,拆解项目
在这里插入图片描述
版本1.0主要是帮我们理清战斗逻辑,而版本2.0与3.0会涉及到新的知识点,到时候再讲解。
逐步解决,逐渐完善
理清战斗逻辑
在这里插入图片描述
回想一下,李逍遥游戏中,都有哪些基础的元素?
在这里插入图片描述
根据这些元素,我们要做的主要有三步:
1、规定李逍遥和拜月教主的属性。
2、双方攻击时,失血量根据对方的攻击来计算。
3、如果有一方的血量减少到0以下,GAMEu3000OVER。
为了保持清晰思路,画出流程图如下:
在这里插入图片描述
好,从第一步开始,设定【李逍遥】和【BOSS】的属性,及【血量】和【攻击力】。

print('【李逍遥】血量:100攻击力:25')   # 自定义李逍遥角色的血量和攻击
print('【拜月教主】血量:100攻击力:20')   # 自定义拜月教主角色的血量和攻击

第二步,双方攻击人工计算各自剩余血量。

print('李逍遥发起了攻击,【拜月教主】剩余血量75') #人工计算拜月教主剩余血量100-25 = 75
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量80') #人工计算李逍遥剩余血量100-20 = 80

第三步,继续攻击,人工计算各自剩余血量。

print('李逍遥发起了攻击,【拜月教主】剩余血量50') #人工计算拜月教主剩余血量75-25 = 50
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量60') #人工计算李逍遥剩余血量80-20= 60

第四步,继续攻击,人工计算各自剩余血量。

print('李逍遥发起了攻击,【拜月教主】剩余血量25') #人工计算拜月教主剩余血量50-25= 25
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量40') #人工计算李逍遥剩余血量60-20=40

第五步,继续攻击,人工计算各自剩余血量。

print('李逍遥发起了攻击,【拜月教主】剩余血量0') #人工计算拜月教主剩余血量25-25=0,此时拜月教主血量为0,拜月教主死亡,游戏结束。
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量20') #人工计算李逍遥剩余血量40-20=20
print('拜月教主死了,李逍遥赢了')

我们现在要做的是,将三段代码拼接起来,形成一个完整的代码,然后再加一些分割线和格式修饰符,看起来更美观一些。

print('【李逍遥】血量:100攻击力:25')   # 自定义李逍遥角色的血量和攻击
print('【拜月教主】血量:100攻击力:20')   # 自定义拜月教主角色的血量和攻击
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量75') #人工计算拜月教主剩余血量100-25 = 75
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量80') #人工计算李逍遥剩余血量100-20 = 80
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量50') #人工计算拜月教主剩余血量75-25 = 50
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量60') #人工计算李逍遥剩余血量80-20= 60
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量25') #人工计算拜月教主剩余血量50-25= 25
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量40') #人工计算李逍遥剩余血量60-20=40
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量0') #人工计算拜月教主剩余血量25-25=0,此时拜月教主血量为0,拜月教主死亡,游戏结束。
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量20') #人工计算李逍遥剩余血量40-20=20
print('-----------------------')

print('拜月教主死了,李逍遥赢了')

随机属性,自动PK
这个阶段,我们主要增加【随机属性】和【自动战斗】两个功能,画出流程图:
在这里插入图片描述
版本1.0中,我们自定义双方属性,这不等于暗箱操作吗。所以,为了公平起见,我们要让计算机随机生成双方属性。
要生成随机数,要使用random随机数模块中的randint(a,b)函数,括号内为a,b两个数字为生成随机数的范围,a是小数字,b是大数字。

#多运行几次,看看结果是不是随机生成的~
import random 
#调用random模块
num = random.randint(1,100)
# 随机生成1-100范围内(含1和100)的一个整数,并赋值给变量a
print(num)

好,既然随机数搞定,那么下面我们能就把随机数引入到项目中。
1、定义两个变量,用来存储李逍遥的血量和攻击力。 2、血量是100-150之间的随机数,攻击力是20-30之间的随机数。3、打印两个变量。

#多运行几次,看看结果是不是随机生成的~
import random 
#调用random模块
freeLi = random.randint(100,150)
battle = random.randint(20,30)
print(freeLi)
print(battle)

或者是如下:

import random
freeLi_life = random.randint(100,150)
#表示李逍遥血量
freeLi_attack = random.randint(20,30)
#表示李逍遥攻击
print(freeLi_life)
print(freeLi_attack)

变量命名应使用英文来表达,如果是多个单词,单词与单词之间需要使用英文下划线_来分隔。
好了,我们已经能够随机生成李逍遥的血量和攻击力了,下面我们要生成拜月教主的血量和攻击力,完成随机生成两者属性的任务。

import time
import random
#也可合并写成一行:import time,random

# 生成随机属性
freeLi_life = random.randint(100,150) # “freeLi_life” 代表李逍遥血量
freeLi_attack = random.randint(20,30) # “freeLi_attack” 代表李逍遥攻击
BOSS_life = random.randint(100,150) # “BOSS_life” 代表拜月教主血量
BOSS_attack = random.randint(20,30) # “BOSS_attack” 代表拜月教主攻击

# 展示双方角色的属性
print('【李逍遥】\n'+'血量:'+str(freeLi_life)+'\n攻击:'+str(freeLi_attack))
#freeLi_life和freeLi_attack的数据类型都是整数,所以拼接时需要先用str()转换
print('------------------------')
time.sleep(1)
#暂停一秒再执行后续代码
print('【拜月教主】\n'+'血量:'+str(BOSS_life)+'\n攻击:'+str(BOSS_attack))
print('------------------------')

要实现自动PK?怎么干呀?不着急,先看看1.0版本的代码:

print('【李逍遥】血量:100攻击力:25')   # 自定义李逍遥角色的血量和攻击
print('【拜月教主】血量:100攻击力:20')   # 自定义拜月教主角色的血量和攻击
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量75') #人工计算拜月教主剩余血量100-25 = 75
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量80') #人工计算李逍遥剩余血量100-20 = 80
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量50') #人工计算拜月教主剩余血量75-25 = 50
print('拜月教主向李逍遥发起了攻击,【李逍遥】剩余血量60') #人工计算李逍遥剩余血量80-20= 60
print('-----------------------')

print('李逍遥发起了攻击,【拜月教主】剩余血量25') #人工计算拜月教主剩余血量50-25= 25
print</
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值