Java基于面向对象实现一个战士小游戏

目录
  • 一、思路
  • 二、代码实现

设计一个游戏系统,在该系统当中拥有战士 Soldier 角色;,每个角色拥有自己的名字 name 、等级 level、生命力 hp ,攻击力 atk、防御力 def;,战士都有普通攻击行为 attack,其实现为根据自己的攻击力减去 被攻击对象的防御力 从而得到对方的失血量;,请设计这个系统中有哪些类,分别有什么属性和行为,有什么关联关系,并在main方法中调用查看效果。

一、思路

首先,我们知道在系统中有个战士的角色叫Soldier,Soldier角色拥有自己的名字、等级、生命力、攻击力、防御力。我们就要区分有什么类型。战士有个行为是普通攻击,行为:方法。由此我们就知道到战士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这个角色我们已经创造出来了,是不是就应该创建这个角色了?这时候就需要用到方法了。当我们在使用构造器的时候,类里会默认产生一个无参构造,无参:没有参数,构造器就是一个函数,跟类名相同:这是避免我们在书写内容时避免报错。详见图一、图二。在书写时方法时,也可以进行快速的生成有参构造的内容。详见图二、图三、图四。

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier战士实例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier战士实例
    }
}

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,那每个战士都有普通攻击的行为,在最开始的时候我们都说了,行为就是等于方法,那方法是不是应该书写到Soldier战士里面?肯定也要用yangke的Soldier来跟zhangsan的Soldier来进行pk,那是不是要将zhangsan的Soldier引入到yangke的Soldier进行pk?

public class Legend {
    public static void main(String[] args) {
        Soldier yangke = new Soldier("yangke",50,500,68,2);//yangke的Soldier战士实例
        Soldier zhangsan = new Soldier("zhangsan",50,400,68,4);//zhangsan的Soldier战士实例
        yangke.attack(zhangsan);//将zhangsan的Soldier引入到yangke的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引入到yangke的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基于面向对象实现一个战士小游戏的详细内容,更多关于Java战士小游戏的资料请关注我们其它相关文章!

(0)

相关推荐

  • java实现连连看游戏课程设计

    本文为大家分享了JAVA语言课程设计:连连看小游戏,供大家参考,具体内容如下 1.设计内容 界面中有5*10的界面,图中共有6种不同的图片,每两个相同的图片连接在一起,如果连线中转折的次数<=3次,两张图片可同时削掉,否则不能削去. 2.设计要求 色彩鲜艳,鼠标点击键好用,以固定时间将所有图片消掉为胜利,若时间到了,图片还有,则闯关失败. 3.设计思想 1)    搭建界面,首先搭建简单界面,可以先用按钮代替图片,并且行列可以先少做一些,如下图所示:2)    每次用户选择两个图形,如果图形满足

  • java面向对象之人机猜拳小游戏

    人机猜拳小游戏,只要用到的java面向对象的思维模式.本游戏中有游戏玩家和计算机两个参与者.玩家和计算机都有的属性是姓名和得分.共分为4个类.下图是游侠小程序控制台截图:     以下是源代码: Computer.java类 package com.whf.guess.game; /** * @author :辰 * @version * 创建时间:2017年2月24日 上午8:38:29 * */ public class Computer { String name = "电脑";

  • 教你使用Java实现扫雷小游戏(最新完整版)

    目录 效果展示 主类:GameWin类 底层地图MapBottom类 顶层地图MapTop类 底层数字BottomNum类 初始化地雷BottomRay类 工具GameUtil类 总结 大家好,我是orangemilk_,哈哈,学习Java已经到一个阶段啦,今天我们使用GUI来写一个扫雷小游戏吧! 效果展示 主类:GameWin类 package com.sxt; import javax.swing.*; import java.awt.*; import java.awt.event.Mou

  • Java面向对象之猜拳游戏

    Java面向对象之猜拳游戏,供大家参考,具体内容如下 1 要求 与电脑进行猜拳并记录分数. 2 Computer.java 源代码(电脑自动随机出拳) public class Computer { public void Fingers(int index) { String[] fingers = {"石头", "剪刀", "布"}; System.out.println("电脑出拳:" + fingers[index])

  • Java实现简单的五子棋游戏示例代码

    目录 项目结构 核心代码 ArrComparator.java类 ChessMap.java类 ChessPanel.java类 效果图展示 项目结构 这个是在网上找的资源,出处记不得了,记录一下.程序的总体结构,很简单的: 核心代码 代码如下: ArrComparator.java类 import java.util.Comparator; /** * 排序 Comparator */ class ArrComparator implements Comparator<Object> { i

  • Java基于面向对象实现一个战士小游戏

    目录 一.思路 二.代码实现 设计一个游戏系统,在该系统当中拥有战士 Soldier 角色:,每个角色拥有自己的名字 name .等级 level.生命力 hp ,攻击力 atk.防御力 def:,战士都有普通攻击行为 attack,其实现为根据自己的攻击力减去 被攻击对象的防御力 从而得到对方的失血量:,请设计这个系统中有哪些类,分别有什么属性和行为,有什么关联关系,并在main方法中调用查看效果. 一.思路 首先,我们知道在系统中有个战士的角色叫Soldier,Soldier角色拥有自己的名

  • Java实现贪吃蛇大作战小游戏的示例代码

    目录 效果展示 项目介绍 项目背景 总体需求 实现过程 代码展示 项目结构 总结 大家好,今天尝试用swing技术写一个贪吃蛇大作战小游戏,供大家参考. 效果展示 效果展示 一.游戏界面 二.得分情况 项目介绍 项目背景 “贪吃蛇大作战”游戏是一个经典的游戏,它因操作简单.娱乐性强,自从计算机实现以来,深受广大电脑玩家的喜爱,本项目基于Java技术,开发了一个 操作简单.界面美观.功能较齐全 的“贪吃蛇”游戏.通过本游戏的开发,达到学习Java技术和熟悉软件开发流程的目的. 总体需求  本系统主

  • 基于Python实现贪吃蛇小游戏(附源码)

    目录 前言 主要设计 应用知识点 1.python知识点 2.pygamezero知识点 功能截图 代码实现 1.蛇的表示 2.蛇的前进移动 3.控制移动方向 4.游戏失败 5.食物的随机出现 6.游戏得分 源码 总结 前言 这几年人工智能技术大发展,Python因此几乎成了第一位的语言.实际上,多年来,它不仅在软件工程师中得到广泛使用,也是各行业通用的专家语言,就是说,不管孩子以后做什么,都可能用得着.准备针对我自己上小学的孩子,每周抽出些时间,通过学习他们感兴趣的小游戏,逐步把python知

  • 基于JavaScript+HTML5 实现打地鼠小游戏逻辑流程图文详解(附完整代码)

    随着html5的兴起,那些公司对大型游戏的开发正在慢慢疏远,一.开发周期长:二.运营花费高:他们正找一些能够克服这些缺点的替代品.正好,html5的出现可以改变这些现状,在淘宝.京东等一些大型电商网站.QQ.微信等聊天软件都出现了html5的小游戏,这说明html5越来越受到大家的青睐.接下来我用javascript实现一个小型游戏---打地鼠. 一.游戏简介 打地鼠这个游戏相信大家都不陌生,也是童年时候一款经典的游戏.本次游戏的编写是以html文件形式完成的,并且使用HBulider软件进行编

  • Java实现简单的贪吃蛇小游戏

    本文实例为大家分享了Java实现简单的贪吃蛇小游戏的具体代码,供大家参考,具体内容如下 1. 程序结构 程序结构图如图: 2. 程序设计思路 2.1 Data类 作用:连接statics文件夹,将静态资源包中的图片转化为图标 方便在面板上绘制. 实现:使用class.getResource(String path)方法. 代码如下: package com.snake; import javax.swing.*; import java.net.URL; public class Data {

  • Java实战之飞翔的小鸟小游戏

    前言 一个简单的单机小游戏:flypybird ,用来巩固java基础. 涉及主要知识点:JFrame . JPanel . 继承. 键盘/鼠标监听 . 多线程 . 工具类设计 提示:这是大致的实现过程,实际实现过程有一定的修改,具体以源码为准. 一.大体思路 1.首先要有一个框架,作为主程序入口,这里使用 JFrame  类. 2.然后需要有一个画布,用来把游戏场景画上去,然后在上面添加键盘/鼠标监听来控制,这里使用的是 JPenal 类. 3.需要创建几个类:小鸟.地面.障碍物柱子.一个获取

  • java gui详解贪吃蛇小游戏实现流程

    根据狂神的视频做的,然后自己优化了一些bug,比如新生成食物的时候不会生成在蛇的身体上,再新增长身体的时候不会在左上角出现一个绿色的方块以及增加了难度控制功能,以及可以使用WASD进行控制,而不仅仅限于上下左右方向键 最后的游戏界面是这样的: 可以在上方的菜单栏里选择不同的难度进行游戏.难度对应的是不同的蛇移动的速度,点击退出游戏和点击右上角的X是一样的功能,都是退出游戏.然后点击重新开始就会回到最初的时候重新开始游戏. 按下空格开始游戏,随时可以再次按下空格进行暂停游戏.同时每吃到一个食物就会

  • 基于Unity3D实现3D迷宫小游戏的示例代码

    目录 一.前言 二.构思 三.正式开发 3-1.搭建场景 3-2.设置出入口 3-3.添加角色 3-4.实现角色移动 3-5.出入口逻辑 四.总结 一.前言 闲来无事,从零开始整个<3D迷宫>小游戏. 本篇文章会详细介绍构思.实现思路,希望可以帮助到有缘人. 二.构思 首先,要实现一个小游戏,心里肯定要有一个大概的想法,然后就是将想法完善起来. 我的想法就是一个用立体的墙搭建的迷宫,然后控制人物在迷宫中移动,最后找到出口,就这么简单. 当然,这是一个雏形,比如可以加点音效.背景.关卡.解密等.

  • 利用Java实现简单的猜数字小游戏

    目录 实现思路 代码实现 实现思路 由计算机随机产生1~100的整数.用户猜测计算机产生的数字,并输入数字,当输入的数字与计算机产生的数字相同时输出恭喜你,猜对了.当输入的数字小于计算机产生的数字输出太小了,当输入的数字大于计算机产生的数字输出太大了 可以用for循环设定游戏猜的次数,增加代码的可玩性 代码实现 import java.util.Random; import java.util.Scanner; public class User { public static void mai

  • 基于JS实现接粽子小游戏的示例代码

    目录 游戏设计 游戏实现 添加粽子元素 粽子掉落 难度选择 开始游戏 总结 端午节马上就到了,听说你们公司没发粽子大礼包?没关系,这里用 JS 实现了一个简单的接粽子小游戏,能接到多少粽子,完全看你手速,不用担心端午没粽子了. 游戏设计 在游戏屏幕内,会随机的从顶部掉落粽子,通过鼠标移动到粽子上并点击,成功接住粽子,得到积分.在设置面板中,可以设置游戏难度,分为简单.很难.超级难三种等级,不同等级的积分也是不同的,玩家可根据自己的手速进行设置.游戏结束后,可看到自己的成绩.实现出来的效果如下(可

随机推荐