python文字游戏攻防_python项目:文字版人机PK小游戏

一、明确项目目标

二、分析过程,拆解项目

三、逐步执行,代码实现

3.1 版本1.0:自定属性,人工pk

3.2 版本2.0:随机属性,自动pk

3.3 版本3.0:打印战果,三局两胜

考察知识点:条件判断、循环、格式化字符串

一、明确项目目标

这个游戏中,会随机生成玩家和敌人的属性,同时互相攻击,直至一方血量小于零。这样的战斗会持续三局,采取三局两胜制,最后输出战斗结果,公布获胜方。效果示意图​res.pandateacher.com

二、分析过程、拆解项目

三、逐步执行,代码实现

3.1 版本1.0:自定属性,人工pk

主要有三步:1.规定并显示出玩家和敌人的属性 2.双方同时互相攻击,血量根据对方的攻击力扣除 3.若有一方血量小于等于0,游戏结束。3.2 版本2.0:随机属性,自动pk

第1步:设定【玩家】和【敌人】的属性,即【血量】和【攻击】。

print('【玩家】血量:100 攻击:50') # 自定义玩家角色的血量和攻击

print('【敌人】血量:100 攻击:30') # 自定义敌人角色的血量和攻击

第2步:手动计算攻击一次,双方各自所剩的血量。

print('你发起了攻击,【敌人】剩余血量50') # 人工计算敌人血量:100-50=50

print('敌人向你发起了攻击,【玩家】剩余血量70') # 人工计算玩家血量:100-30=70

第3步:继续做人工计算:算一算,玩家攻击2次敌人,敌人的血量就等于0了,这时候可以结束战斗,打印游戏结果。

print('你发起了攻击,【敌人】剩余血量0') # 双方同时攻击,若血量出现小于等于0,游戏结束

print('敌人向你发起了攻击,【玩家】剩余血量40')

print('敌人死翘翘了,你赢了!') # 打印结果

代码优化:三段代码拼接,加一些修饰视觉的换行符和分割线,优化视觉效果

print('【玩家】\n血量:100\n攻击:50') # 自定义玩家角色的血量和攻击,用换行符'\n'来优化视觉

print('------------------------') # 辅助功能,起到视觉分割的作用,让代码的运行结果更清晰

print('【敌人】\n血量:100\n攻击:30')

print('------------------------')

print('你发起了攻击,【敌人】剩余血量50') # 人工计算敌人血量:100-50=50

print('敌人向你发起了攻击,【玩家】剩余血量70') # 人工计算玩家血量:100-30=70

print('------------------------')

print('你发起了攻击,【敌人】剩余血量0') # 双方同时攻击,若血量出现小于等于0,游戏结束

print('敌人向你发起了攻击,【玩家】剩余血量40')

print('-----------------------')

print('敌人死翘翘了,你赢了!') # 打印结果

运行结果:

【玩家】

血量:100

攻击:50

------------------------

【敌人】

血量:100

攻击:30

------------------------

你发起了攻击,【敌人】剩余血量50

敌人向你发起了攻击,【玩家】剩余血量70

------------------------

你发起了攻击,【敌人】剩余血量0

敌人向你发起了攻击,【玩家】剩余血量40

-----------------------

敌人死翘翘了,你赢了!

代码进一步优化:所有信息一下子都蹦跶出来,一点都没有体现游戏的进程感。为了让打印出的东西能有时间间隔地依次出现,我们需要设置一个类似“计时器”的东西。在Python里,我们需要用到两行代码来实现:

import time #调用time模块

time.sleep(secs)

#使用time模块下面的sleep()函数,括号里填的是间隔的秒数(seconds,简称secs)

#time.sleep(1.5)就表示停留1.5秒再运行后续代码

优化后的代码&#

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值