关于用IDLE制作小型格斗游戏并且有反馈这件事...

今天来做一个格斗游戏。

上次做的生命游戏属实是有些草率了,并且这一期没有出井字棋,主要是想多想一想,好提高品质,做了好几期的文字了,要做图画!!!这里也跟大家说个道歉

因为我也找了很多素材,但是代码都是各种模块导入,很麻烦,对于新手并不友好,所以采用random做了简单的文字版,不过也可以用,对不对?

好了,回归正题

我想的是使用一些简单的模块来实现

我们需要随机模块

复制这一条:

import random

好了,接下来定义一些角色

class Character:

接下来定义各种属性

def __init__(self, name, health, power):
        self.name = name
        self.health = health
        self.power = power
def attack(self, other):
        damage = random.randint(1, self.power)
        other.health -= damage
        print(f"{self.name}攻击了{other.name},造成了{damage}点伤害!")
    def is_alive(self):
        return self.health > 0

定义完后就需要创建角色属性

# 创建角色实例
player = Character("玩家", 100, 20)
enemy = Character("敌人", 80, 15)

这里开始讲一下子

玩家有100点血量

敌方有80点血量

剩下的不用说了

我们现在要让游戏两方依次攻击,直到一方死了

while player.is_alive() and enemy.is_alive():

接下来是回合的问题

  # 玩家回合
    print(f"【{player.name}】剩余血量:{player.health}")
    player.attack(enemy)
    
    # 敌人回合
    print(f"【{enemy.name}】剩余血量:{enemy.health}")
    enemy.attack(player)

这就很简单了,print秒了(狗头)

好了,最后一步来了,判断胜负

# 判断胜负
if player.is_alive():
    print("你赢了!")
else:
    print("你输了!")

if else直接秒了

这时候我们会发现一个问题,就是战绩刷的一下就出来了,简直反应不了一点

所以...

元老出场!

有请time先生!

import time

有了这两个模块和tk模块(tk下期吧,和井字棋一起)你就能解决掉99.999%的文字游戏,不骗你,我新手时只用着三个模块,现在也是!

修改之后就是:

 # 玩家回合
    print(f"【{player.name}】剩余血量:{player.health}")
    player.attack(enemy)
    time.sleep(2)
    
    # 敌人回合
    print(f"【{enemy.name}】剩余血量:{enemy.health}")
    enemy.attack(player)
    time.sleep(2)

time.sleep(second)

这里是两秒,因为正常人的阅读能力绝对可以在两秒内读完

关注ant,生活up

看在小学生现在还在写博客的面子上点一下关注吧!谢谢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值