1. 程式人生 > >面向物件小練習

面向物件小練習

基於面向物件設計一個對戰遊戲

定義銳雯類:

class Riven:
    camp='Noxus'
    def __init__(self,nickname,
                 aggressivity=54,
                 life_value=414,
                 money=1001,
                 armor=3):
        self.nickname=nickname
        self.aggressivity=aggressivity
        self.life_value=life_value
        self.money=money
        self.armor=armor
    def attack(self,enemy):
        damage_value=self.aggressivity-enemy.armor
        enemy.life_value-=damage_value

定義蓋文類:

class Garen:
    camp='Demacia'
    def __init__(self,nickname,
                 aggressivity=58,
                 life_value=455,
                 money=100,
                 armor=10):
        self.nickname=nickname
        self.aggressivity=aggressivity
        self.life_value=life_value
        self.money=money
        self.armor=armor
    def attack(self,enemy):
        damage_value=self.aggressivity-enemy.armor
        enemy.life_value-=damage_value

定義裝備:

class BlackCleaver:
    def __init__(self,price=475,aggrev=9,life_value=100):
        self.price=price
        self.aggrev=aggrev
        self.life_value=life_value
    def update(self,obj):
        obj.money-=self.price #減錢
        obj.aggressivity+=self.aggrev #加攻擊
        obj.life_value+=self.life_value #加生命值
    def fire(self,obj): #這是該裝備的主動技能,噴火,燒死對方
        obj.life_value-=1000 #假設火燒的攻擊力是1000

測試互動

r1=Riven('草叢倫')
g1=Garen('蓋文')
b1=BlackCleaver()

print(r1.aggressivity,r1.life_value,r1.money) #r1的攻擊力,生命值,護甲

if r1.money > b1.price:
    r1.b1=b1
    b1.update(r1)


print(r1.aggressivity,r1.life_value,r1.money) #r1的攻擊力,生命值,護甲

print(g1.life_value)
r1.attack(g1) #普通攻擊
print(g1.life_value)
r1.b1.fire(g1) #用裝備攻擊
print(g1.life_value) #g1的生命值小於0就死了 

按照這種思路一點一點的設計類和物件,最終你完全可以實現一個對戰類遊戲。

相關推薦

面向物件-練習

練習:編寫一個學生類,產生一堆學生物件要求:有一個計數器(屬性),統計總共實力化多少個物件 class Student: school = 'luffycity' count = 0 def __init__(self, name, sex, age): # 獨有特徵

面向物件的程式設計 面向物件練習

面向物件小練習   閱讀目錄 基於面向物件設計一個對戰遊戲 基於面向物件設計一個對戰遊戲 定義銳雯類: class Riven:

面向物件練習

基於面向物件設計一個對戰遊戲 定義銳雯類: class Riven: camp='Noxus' def __init__(self,nickname, aggressivity=54, life_val

python面向物件練習

就是幾個動物,自動排列生成什麼的 class Animal(object): def __init__(self,name,weight): self.name = name self.

Java練習 SDUT-3349_答答租車系統(面向物件綜合練習

答答租車系統(面向物件綜合練習) Time Limit: 1000 ms Memory Limit: 65536 KiB Problem Description 各位面向物件的小夥伴們,在學習了面向物件的核心概念——類的封裝、繼承、多型之後,答答租車系統開始營運了。 請你充分利用面向物件思想,為公司解

python_面向物件—程式碼練習

"""注意:程式碼切勿照搬,錯誤請留言指出""" 1 import re 2 3 ''' 4 class Person: 5 name='xxx' 6 age=20 7 8 p=Person() #p為例項物件 9 print(p.name,p

JAVA 面向物件程式設計練習(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊)

一. 小編有話說 前面一篇文章寫了JAVA面向物件程式設計的思想,本文主要展示關於面向物件程式設計的例項(一個回合制的戰鬥遊戲:戰士,騎兵,法師,電腦互相攻擊),小編的基礎暫時薄弱,如此一來有助於更深入的理解和靈活的運用,以及打下堅實的基礎。 二. 遊戲的要求

SDUT-3349 答答租車系統(面向物件綜合練習

Problem Description 各位面向物件的小夥伴們,在學習了面向物件的核心概念——類的封裝、繼承、多型之後,答答租車系統開始營運了。 請你充分利用面向物件思想,為公司解決智慧租車問題,根據客戶選定的車型和租車天數,來計算租車費用,最大載客人數,最大載載重量。

面向物件程式設計練習(開篇)

      今天無意中看到了一些關於面向物件程式設計的練習題,私以為很是不錯,摘錄其中較有代表性的幾道,供大家學習。     一.面向物件三大特性,各有什麼用處?     1.繼承:解決程式碼的複用性問題     2.封裝:對資料屬性嚴格控制,隔離複雜度     3.多型性:增加程式的靈活

【JavaSE練習面向物件_練習_模擬汽車的自動駕駛系統

 模擬汽車駕駛系統 定義一個交通工具的類,包括:  屬性:速度  方法:設定速度,加速度  測試類中例項化一個交通工具物件  通過方法初始化speed,打印出來  呼叫方法對速度進行改變  當汽車停止執行時,程式結束執行 程式程式碼如下: import java.u

C#面向物件程式設計練習

using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T

JAVA面向物件程式(二):俄羅斯方塊s

今天,我們來使用Eclipse製作一個小遊戲《Tetris~》 資源在文末 一、遊戲機制 a)    7種小塊兒隨機生成                i.         一塊放置在頂部(隨時間下降)               ii.         另一塊

php面向物件程式設計練習:計算矩形、三角形、圓形的周長和麵積

剛剛學完php面向物件的程式設計,參考著高洛峰老師的php教程學習了這個例項。 效果圖片: 以下是實現程式碼: index.php <html> <hea

python類與物件練習2

#人和機器猜拳遊戲 #選擇角色1 曹操 2張飛 3 劉備 #角色猜拳1剪刀 2石頭 3布 隨便輸入一個字元隨機產生一個1-3的數字 #電腦出拳 隨機產生1個1-3的數字,提示電腦出拳結果,本局對戰結果...贏...輸,是否繼續?y/n #輸出結果 角色贏幾局 電腦贏幾局,平局

java面向物件基礎 練習 +答案

三、選擇題 1.下面關於封裝性的描述中,錯誤的是( )。 A.封裝體包含屬性和行為 B.被封裝的某些資訊在外不可見 C.封裝提高了可重用性 D.封裝體中的屬性和行為的訪問許可權相同 可以不相同 程式設計師定義 2.下面關於類方法的描述,錯誤的是()。 A.說明類方法使用關鍵字static B.

【安博培訓筆記】Java1 Java面向物件_PPT練習20130920

package com.ambow.java20130917; public class Student { private String name; private int age; private int banji; private String love;

面向物件章節練習(實現使用者和密碼一致)

public class User{     // 成員屬性private String user;private String code;// 帶參構造方法public User(String user, String code) {this.user = user;th

《Python核心程式設計》第13章 面向物件程式設計 練習

13-3.對類進行定製。 寫一個類,用來將浮點型值轉換為金額。 class MoneyFmt(object): def __init__(self, value=0.0): self.value = float(value) def upd

java使用 ArrayList 的增刪改(Java面向物件基礎練習

題目 編寫一個簡單的程式,利用陣列儲存書(Book),cd(CompactDisk),磁帶(Tape)資訊,並能實現插入、刪除、查詢功能。注意使用面向物件的思想進行程式設計。 解題思路 使用arraylist陣列,原因是可以根據實際情況新增資訊而不用

Go語言基礎(十三)—— Go面向物件簡單練習

練習要求: 介面->父類實現->多種子類實現->多型 定義介面IPerson,定義吃喝睡三個抽象方法; 定義一個IPerson的實現類Person,實現吃喝睡方法; 定義IWorker勞動者介面,擁有勞動方法Work()(output str