物件導向思想封裝狙擊手狙擊敵人

2022-09-16 23:36:27 字數 2055 閱讀 3957

需求:狙擊手***使用xx槍,射擊敵人***,敵人生命值歸0,應聲倒下

分析設計類:

封裝狙擊手類 屬性: 名字 行為:撿槍   裝彈   射擊

封裝槍類 屬性: 型號 行為:射擊

封裝彈夾類 屬性:彈夾容量   儲存子彈的列表

封裝子彈類 屬性:傷害值    移動速度 行為:移動

封裝敵人類 屬性:名稱    生命值

#狙擊手類

class sniper:

def __init__(self,name):

self.name = name

# self.gun = none

#撿槍def pickupgun(self):

gun = gun('awm')

#給物件新增乙個gun的屬性

self.gun = gun

#裝彈def loading(self):

#建立乙個彈容量為10的彈夾

clip = clip(10)

for i in range(clip.capacity):

bullet = bullet()

#迴圈裝子彈

#給你擁有的槍新增乙個屬性

self.gun.clip = clip

#射擊敵人

def shoot(self,enemy):

print('{}瞄準{}進行射擊'.format(self.name,enemy.name))

self.gun.shoot(enemy)

#槍類class gun:

def __init__(self,type):

self.type = type

#槍的射擊功能

def shoot(self,enemy):

while enemy.hp > 0:

# 將子彈從彈夾中移除

bullet = self.clip.bullet_list.pop()

enemy.hp -= bullet.damage

if enemy.hp <= 0:

bullet.move()

print('敵人{}應聲倒下'.format(enemy.name))

#彈夾類

class clip:

def __init__(self,capacity):

#彈夾容量

self.capacity = capacity

#用來儲存子彈的列表

self.bullet_list =

#子彈類

class bullet:

def __init__(self):

self.damage = 100

self.speed = 1000

def move(self):

print('子彈以{}m/s向敵人'.format(self.speed))

#敵人類

class enemy:

def __init__(self,name,hp):

self.name = name

self.hp = hp

#建立狙擊手物件

sniper = sniper('海豹突擊1號')

#狙擊手撿槍

sniper.pickupgun()

# print(dir(sniper))

# print(dir(sniper.gun))

#裝彈sniper.loading()

# print(dir(sniper.gun))

# #列印狙擊手的槍的彈夾的子彈列表中的子彈

# print(sniper.gun.clip.bullet_list)

# #建立敵人物件

enemy = enemy('小日本1',100)

#射擊sniper.shoot(enemy)

print('槍中剩餘子彈{}發'.format(len(sniper.gun.clip.bullet_list)))

物件導向思想,匿名物件,封裝

概念 基於面向過程,將過程進行物件的封裝。特點 物件導向是一種更符合思考習慣的思想 從過程的執行者,轉換成物件的指揮者 將複雜問題簡單化 類 用於描述事物 物件 類中事物具體的個體 概念 沒有名字的物件,是物件的簡化定義方式 匿名物件可以作為實際引數進行傳遞 如果物件對方法只進行一次呼叫,可以簡化為...

物件導向封裝外掛程式思想 jquery

寫了很多年的js 對於封裝成乙個通用的外掛程式 用過很多種方法 現在來一一來記錄下 所謂積累便是進步 每天一點點 每天就是一大步 廢話不多說我來看下 1.常用的jq 申明表示式 進行封裝的物件 看起來是不是很清晰 又不汙染變數 var a function var pml extend true,l...

go物件導向思想 封裝 繼承 多型

go 如何實現的封裝 繼承 和多型 封裝 go中是通過結構體的方法去模擬類 package objects 通過結構體的方式去模擬類 type user struct 根據方法的首字母的大小寫去判斷是否外部訪問 func user user getbike string 繼承 我們編寫乙個使用者資訊...