欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java基于面向對象實現一個戰(zhàn)士小游戲

 更新時間:2022年07月13日 11:33:19   作者:我的目標是開458  
這篇文章主要為大家詳細介紹了Java如何基于面向對象實現一個戰(zhàn)士小游戲,文中的示例代碼講解詳細,感興趣的小伙伴可以動手嘗試一下

設計一個游戲系統(tǒng),在該系統(tǒng)當中擁有戰(zhàn)士 Soldier 角色;,每個角色擁有自己的名字 name 、等級 level、生命力 hp ,攻擊力 atk、防御力 def;,戰(zhàn)士都有普通攻擊行為 attack,其實現為根據自己的攻擊力減去 被攻擊對象的防御力 從而得到對方的失血量;,請設計這個系統(tǒng)中有哪些類,分別有什么屬性和行為,有什么關聯關系,并在main方法中調用查看效果。

一、思路

首先,我們知道在系統(tǒng)中有個戰(zhàn)士的角色叫Soldier,Soldier角色擁有自己的名字、等級、生命力、攻擊力、防御力。我們就要區(qū)分有什么類型。戰(zhàn)士有個行為是普通攻擊,行為:方法。由此我們就知道到戰(zhàn)士Soldier是一個類,在進行代碼實現。

二、代碼實現

當我們得知Soldier屬于一個類是,我們是不是就應該用面向對象來進行書寫?面向對象的重要的三個重點是什么:1、類2、屬性、3、方法。那當我們知道了組成面向對象的三個重點的第一個是類。首先,第一個用到的就是自定義的類,那我們將進行代碼的實現吧。

public class Legend {//首字母大寫,見名思意
    public static void main(String[] args) {
        
    }
}
public class Soldier {//首字母大寫,見名思意
    //屬性
    //方法
}

當我們生成了一個自定義的類時,在最開始的時候我們說了面向對象三個重點是由1、類2、屬性、3、方法。3種組成,那我們得知Soldier角色擁有自己的名字、等級、生命力、攻擊力、防御力,是一種屬性。那我們就應該把名字、等級、生命力、攻擊力、防御力等屬性進行填寫進去。

public class Legend {//首字母大寫,見名思意
    public static void main(String[] args) {
        
    }
}
 
public class Soldier {//首字母大寫,見名思意
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
    //方法
}

當Soldier這個角色我們已經創(chuàng)造出來了,是不是就應該創(chuàng)建這個角色了?這時候就需要用到方法了。當我們在使用構造器的時候,類里會默認產生一個無參構造,無參:沒有參數,構造器就是一個函數,跟類名相同:這是避免我們在書寫內容時避免報錯。詳見圖一、圖二。在書寫時方法時,也可以進行快速的生成有參構造的內容。詳見圖二、圖三、圖四。

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier戰(zhàn)士實例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier戰(zhàn)士實例
    }
}
 
public class Soldier {
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
 
    //方法
    public Soldier(){//無參構造
 
    }
    public Soldier(String name, int level, int hp, int atk, int def) {//有參構造
        this.name = name;//姓名
        this.level = level;//等級
        this.hp = hp;//生命力
        this.atk = atk;//攻擊力
        this.def = def;//防御力
    }
}

圖一:

圖二:

圖三:

圖四:

圖五:

當我們已經生成了兩名不同玩家的Soldier,那每個戰(zhàn)士都有普通攻擊的行為,在最開始的時候我們都說了,行為就是等于方法,那方法是不是應該書寫到Soldier戰(zhàn)士里面?肯定也要用yangke的Soldier來跟zhangsan的Soldier來進行pk,那是不是要將zhangsan的Soldier引入到y(tǒng)angke的Soldier進行pk?

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier戰(zhàn)士實例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier戰(zhàn)士實例
        yangke.attack(zhangsan);//將zhangsan的Soldier引入到y(tǒng)angke的Soldier里面并有一個public void attack進行接收
    }
}
public class Soldier {
    //屬性
    public String name;//姓名
    public int level;//等級
    public int hp;//生命力
    public int atk;//攻擊力
    public int def;//防御力
 
    //方法
    public Soldier(){//無參構造
 
    }
    public Soldier(String name, int level, int hp, int atk, int def) {//有參構造
        this.name = name;//姓名
        this.level = level;//等級
        this.hp = hp;//生命力
        this.atk = atk;//攻擊力
        this.def = def;//防御力
    }
    public void attack(Soldier other){//當主函數將zhangsan的Soldier引入到y(tǒng)angke的Soldier里面我們要進行一個接收
        int Damage = this.atk-other.def;//設置一個傷害的計算 Damage肯定等于yangke的攻擊力-zhangsan的防御力
        other.hp-=Damage;//再用zhangsan的血量減去傷害得到zhangsan的血量
        if (other.hp <= 0){//如果zhangsan的血量少于等于0時,zhangsan陣亡,如果沒有進行顯示傷害數據
            System.out.println(other.name+"已經陣亡");
        }else {
            System.out.println("成功普通攻擊了"+other.name+"并對它造成了"+Damage+"傷害"+other.name+"還剩"+other.hp+"血量");
        }
 
    }
}

最終結果

以上就是Java基于面向對象實現一個戰(zhàn)士小游戲的詳細內容,更多關于Java戰(zhàn)士小游戲的資料請關注腳本之家其它相關文章!

相關文章

  • MybatisPlus實現邏輯刪除的示例代碼

    MybatisPlus實現邏輯刪除的示例代碼

    本文主要介紹了Mybatis?Plus實現邏輯刪除的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • 使用ShardingSphere-Proxy實現分表分庫

    使用ShardingSphere-Proxy實現分表分庫

    這篇文章介紹了使用ShardingSphere-Proxy實現分表分庫的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-02-02
  • MyBatis-Spring配置的講解

    MyBatis-Spring配置的講解

    今天小編就為大家分享一篇關于MyBatis-Spring配置的講解,小編覺得內容挺不錯的,現在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧
    2018-12-12
  • springboot中PostMapping正常接收json參數后返回404問題

    springboot中PostMapping正常接收json參數后返回404問題

    這篇文章主要介紹了springboot中PostMapping正常接收json參數后返回404問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • 詳解如何在SpringBoot中優(yōu)雅地重試調用第三方API

    詳解如何在SpringBoot中優(yōu)雅地重試調用第三方API

    在實際的應用中,我們經常需要調用第三方API來獲取數據或執(zhí)行某些操作,文中的示例代碼講解詳細,感興趣的小伙伴可以跟隨小編一起學習一下
    2023-12-12
  • win10操作系統(tǒng)下重啟電腦java環(huán)境變量失效

    win10操作系統(tǒng)下重啟電腦java環(huán)境變量失效

    這篇文章主要介紹了win10操作系統(tǒng)下重啟電腦java環(huán)境變量失效,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-09-09
  • Filter中獲取傳遞參數方式(解決post請求參數問題)

    Filter中獲取傳遞參數方式(解決post請求參數問題)

    這篇文章主要介紹了Filter中獲取傳遞參數方式(解決post請求參數問題),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • mybatis深入講解resultMap的定義及用法

    mybatis深入講解resultMap的定義及用法

    MyBatis的每一個查詢映射的返回類型都是ResultMap,當我們提供返回類型屬性是resultType時,MyBatis會自動給我們把對應值賦給resultType所指定對象的屬性,當我們提供返回類型是resultMap時,將數據庫中列數據復制到對象的相應屬性上,可以用于復制查詢,兩者不能同時用
    2022-04-04
  • Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式

    Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式

    這篇文章主要介紹了Spring Boot mybatis-config 和 log4j 輸出sql 日志的方式,本文通過實例圖文相結合給大家介紹的非常詳細,需要的朋友可以參考下
    2021-07-07
  • 解析SpringSecurity自定義登錄驗證成功與失敗的結果處理問題

    解析SpringSecurity自定義登錄驗證成功與失敗的結果處理問題

    這篇文章主要介紹了SpringSecurity系列之自定義登錄驗證成功與失敗的結果處理問題,本文通過實例給大家講解的非常詳細,具有一定的參考借鑒價值,需要的朋友可以參考下
    2019-11-11

最新評論