Python3の基本文法練習用の小さなデモ

カウンターストライク ベーシックエディション

エリート対ギャング。

分析する

  1. 人間を定義し、公共の属性を説明しlife:100name:姓名要传参
  2. ヒーローとテロリストのクラスを定義する
  3. 銃撃戦のプロセスを記述する main 関数を定義しmain、2 つのオブジェクトを作成します
  4. グラブ メソッドを定義します。これは 2 つのメソッドに分かれています HeroIs
    • 定義されたメソッドでは、撮影されるオブジェクトを渡す必要があります。
    • 撃たれたターゲットの体力は減少します。
  5. メインプログラムでグラブ操作を呼び出します。
  6. グラブ操作が開始された後、全員のステータス情報がメインプログラムに表示されるはずです
  7. 各人のステータスを表示するメソッドをPersonクラスに定義する__str__
  8. 開く動作と掴む動作を繰り返し動作に設定する
    • 銃撃戦を停止する条件を設定します: 一方のパーティの体力値 <=0
    • ブレークを使用してループを停止する

コード

class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        damage = 40
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life -= damage


class Is(Person):
    def fire(self, person):
        damage = 90
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life -= damage


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")

    while True:
        h.fire(is1)
        is1.fire(h)
        print(h)
        print(is1)
        print()
        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        # 结束枪战
        if is1.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break


# 执行主函数
main()

カウンターストライク リマスター版

分析する

  1. ヒーロー情報の表示モードとステータスの説明を修正
    • 100:ダメージなし
    • 70-99: 軽傷
    • 1-69: 重傷
    • 0: 電話を切りました
  2. マイナスの健康値の問題を修正
    • 射撃時、体力値がダメージ値未満の場合は体力値 = 0、それ以外の場合は通常通り体力値が減少します。
    • 三項式:变量 = 成立值 if 条件 else 不成立值

コード

class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        damage = 40
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        # 三元表达式:变量 = 成立值 if 条件 else 不成立值
        person.life = 0 if person.life < damage else (person.life - damage)

    def __str__(self):
        state = ""
        if self.life == 100:
            state = "无伤"
        elif 70 <= self.life < 100:
            state = "轻伤"
        elif 1 <= self.life < 70:
            state = "重伤"
        elif self.life <= 0:
            state = "挂了"

        return "%s当前的状态为:%s" % (self.name, state)


class Is(Person):
    def fire(self, person):
        damage = 20
        print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
        person.life = 0 if person.life < damage else (person.life - damage)


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")

    while True:
        h.fire(is1)
        is1.fire(h)

        print(h)
        print(is1)
        print()

        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        # 结束枪战
        if is1.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break


# 执行主函数
main()

カウンターストライク エンハンスドエディション

エリート 1 名対ギャング 3 名。

分析する

  1. 3 つのテロリスト オブジェクトを作成し、3 つすべてのオブジェクトを強奪し、3 つすべてのオブジェクトのステータスを出力する必要があります。
  2. 修復の最終条件は、テロリスト3人全員が死亡し、テロリスト3人全員が同時に死亡することです。
  3. 3人のテロリスト強盗問題を解決する
    • 乱数: ランダム
      1. ランダムを使用: すべてのコードの前に追加しますimport random
      2. random.randint(1, 3)1 から 3 までの乱数を生成するために使用します
    • 乱数を生成し、それを判断してその数の敵を撃ちます

コード

カウンターストライク 超強化版

分析する

  1. 銃の射撃命中率を追加
  2. 銃のダメージ値の変動を追加
  3. 鞭死体テキスト表示エフェクトを追加

コード

import random


class Person:
    def __init__(self, name):
        self.name = name
        self.life = 100

    def __str__(self):
        return "%s当前生命值为:[%d]" % (self.name, self.life)


class Hero(Person):
    def fire(self, person):
        # 增加命中率
        hit = random.randint(1, 100)
        # 80% 命中率
        if hit > 20:
            # 增加鞭尸判断
            if person.life <= 0:
                print("%s都死了,就不要鞭尸了" % person.name)
            else:
                # 加入伤害波动值
                damage = random.randint(41, 60)
                print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
                # 三元表达式:变量 = 成立值 if 条件 else 不成立值
                person.life = 0 if person.life < damage else (person.life - damage)
        else:
            print("没有打到恐怖分子,这什么垃圾枪法~~~")

    def __str__(self):
        state = ""
        if self.life == 100:
            state = "无伤"
        elif 70 <= self.life < 100:
            state = "轻伤"
        elif 1 <= self.life < 70:
            state = "重伤"
        elif self.life <= 0:
            state = "挂了"

        return "%s当前的状态为:%s" % (self.name, state)


class Is(Person):
    def fire(self, person):
        damage = random.randint(1, 20)
        # 增加命中率
        hit = random.randint(1, 100)
        # 30% 命中率
        if hit > 70:
            print("%s向%s开抢,造成了[%d]伤害" % (self.name, person.name, damage))
            person.life = 0 if person.life < damage else (person.life - damage)
        else:
            print("%s枪法不行呀,再去练练吧~~~" % self.name)


def main():
    h = Hero("【英雄】")
    is1 = Is("【不要命】")
    is2 = Is("【不怕死】")
    is3 = Is("【还有谁】")

    while True:
        # 产生一个随机数
        x = random.randint(1, 3)
        if x == 1:
            h.fire(is1)
        elif x == 2:
            h.fire(is2)
        else:
            h.fire(is3)

        # 结束枪战
        if is1.life <= 0 and is2.life <= 0 and is3.life <= 0:
            print("所有恐怖分子全部死亡,枪战结束")
            break

        is1.fire(h)
        is2.fire(h)
        is3.fire(h)

        # 结束枪战
        if h.life <= 0:
            print("%s死亡,枪战结束" % h.name)
            break

        print(h)
        print(is1)
        print(is2)
        print(is3)
        print()


# 执行主函数
main()

おすすめ

転載: blog.csdn.net/weixin_52610802/article/details/125576695