:此项目主要用来巩固面向对象以及父类子类继承这一块的知识,其中涉及循环以及随机函数的灵活运用

一、定义父类(怪兽类)和父类(玩家类)

1.怪兽类的属性和方法
属性攻击力生命值
方法:怪兽普通攻击玩家后,玩家的剩余生命值等于玩家原有生命值减去怪兽的攻击力

package daguaishou;public class GS {private int gj;//定义私有属性攻击private int sm;//定义私有属性生命值public void setGj(int gj) {this.gj = gj;}//设置攻击属性值public int getGj() {return gj;}//获取攻击属性值public int getSm() {return sm;}//获取生命属性值public void setSm(int sm) {this.sm = sm;}//设置生命属性值public void ptgj_w(WJ wj1){wj1.setSm(wj1.getSm()-gj);//玩家的生命值等于原有生命值减去怪兽攻击力System.out.println("怪兽1攻击了玩家1,造成了"+gj+"点伤害,玩家1的剩余生命值为:"+wj1.getSm());    }//构造怪兽打玩家的方法
}

2.玩家类的属性和方法
属性攻击力生命值
方法:玩家普通攻击怪兽后,怪兽的剩余生命值等于怪兽原有生命值减去玩家的攻击力

package daguaishou;public class WJ {private int gj;//定义私有属性攻击private int sm;//定义私有属性生命值public void setGj(int gj) {this.gj = gj;}//设置攻击属性值public int getGj() {return gj;}//获取攻击属性值public int getSm() {return sm;}//获取生命属性值public void setSm(int sm) {this.sm = sm;}//设置生命属性值public void ptgj_g(GS gs1){gs1.setSm(gs1.getSm()-gj);//怪兽的生命值等于原有生命值减去玩家攻击力System.out.println("玩家1攻击了怪兽1,造成了"+gj+"点伤害,怪兽1的剩余生命值为:"+gs1.getSm());}//构造玩家打怪兽的方法}

二、定义两个子类(法师类)(刺客类)

1.创建子类法师类
(1)法师的属性:蓝条法术伤害攻击力

package daguaishou;public class Fashi extends GS {//构造法师子类,继承怪兽类private int lt;//定义子类属性蓝量private int fssh=20;//定义属性法术伤害private int gj=10;//定义攻击力public int getLt() {return lt;}public void setLt(int lt) {this.lt = lt;}public int getFssh() {return fssh;}public void setFssh(int fssh) {this.fssh = fssh;}}

(2)法师的方法:法术攻击,每次攻击积攒一层蓝量,满三层蓝量,则释放一次技能,造成魔法伤害

public void fsgj_w(Cike tanglang){tanglang.setSm(tanglang.getSm()-gj);System.out.println("九尾妖狐(法师)发动了攻击,造成了"+gj+"点物理伤害,攻击对象剩余生命值为:"+tanglang.getSm());lt++;//每普通攻击一次,蓝量条加一if(lt%3==0) {//每积满三层能量条,释放一次技能,造成魔法伤害tanglang.setSm(tanglang.getSm()-fssh);System.out.println("九尾妖狐(法师)蓄力三次,发动了技能“欺诈宝珠”,造成了"+fssh+"点魔法伤害,攻击对象的剩余生命值为:"+tanglang.getSm());}}

:这里需要注意的是每满三层则释放一次技能,所以要套在循环

2.创建子类刺客类
(1)刺客的属性:暴击伤害攻击力

package daguaishou;import java.util.Random;public class Cike extends WJ {//构造子类刺客,继承玩家public int getBjsh() {return bjsh;}public void setBjsh(int bjsh) {this.bjsh = bjsh;}private int bjsh=30;//定义私有属性暴击伤害private int gj=5;}

(2)刺客的方法:暴击伤害,每次攻击时,有%66的几率造成暴击伤害

 public void bj_g(Fashi huli){int randombj=new Random().nextInt(3); //引入随机函数,设置暴击几率if(randombj!=1) {//百分之33概率普通攻击huli.setSm(huli.getSm()-gj);System.out.println("螳螂(刺客)攻击了您,造成了"+gj+"点物理伤害,您的剩余生命值为:"+huli.getSm());}if(randombj==1) {//百分之66概率暴击huli.setSm(huli.getSm()-bjsh);System.out.println("螳螂(刺客)发动了技能“大杀四方”,造成了"+bjsh+"点暴击伤害,您的剩余生命值为:"+huli.getSm());}}

:此处注意需要调用随机函数,定义随机数为randombj,在0,1,2三个数字中随机,若randombj=1则相当于在三个数字中,取一个数字的概率为三分之一。若nextInt(3)中,若将3换成4,则当randombj=1时,在四个数字中取1的几率为四分之一(0,1,2,3取头不取尾)。

三、主函数:

1.游戏入口

package daguaishou;import java.util.Scanner;public class test {public static void main(String[] args) {System.out.println("欢迎来到召唤师峡谷!");System.out.print("请给自己设置一个想要的昵称:");Scanner nc = new Scanner(System.in);String x = nc.nextLine();//输入召唤师昵称System.out.print("你好,"+x+"!"+"请选择你想打的怪兽编号(1或2):");Scanner s = new Scanner(System.in);int y = s.nextInt();//输入编号switch(y) {//根据所选编号判断case 1:System.out.println("你选择的怪兽是:九尾妖狐(法师)");break;case 2:System.out.println("你选择的怪兽是:虚空螳螂(刺客)");break; }

:此处调用了scanner类让玩家进行输入想要的昵称和编号,在玩家选择怪兽时,运用switch/case结构。

2.创建实例对象,并赋初值

WJ wj1=new WJ();//创建对象wj1GS gs1=new GS();//创建对象gs1Fashi huli =new Fashi();//创建对象huliCike tanglang = new Cike();//创建对象tanglangwj1.setSm(100);//设置wj1生命值为100wj1.setGj(10);//设置wj1攻击力为10gs1.setSm(60);//设置gs1生命值为100gs1.setGj(20);//设置gs1攻击力为100huli.setFssh(20);//设置huli法术伤害为20huli.setGj(10);//设置huli攻击力为10huli.setSm(100);//设置huli生命值为100huli.setLt(1);//设置huli蓝量为1tanglang.setSm(100);//设置tanglang生命值为100tanglang.setGj(10);//设置tanglang攻击力为10tanglang.setBjsh(30);//设置tanglang暴击伤害为30Fenghuang ss= new Fenghuang();ss.setGj(20);ss.setSm(100);

3.设置打怪兽规则:双方有一人血量低于或等于0,则游戏结束。

while(huli.getSm()>0&&tanglang.getSm()>0) {//设置循环条件为双方都存活时进行战斗huli.fsgj_w(tanglang);//狐狸打螳螂tanglang.bj_g(huli);//螳螂打狐狸}if(huli.getSm()<=0) {  //设置取胜条件为谁生命值小于等于0,谁失败System.out.println("刺客螳螂取胜!");}else if(tanglang.getSm()<=0) {System.out.println("法师狐狸取胜!");}
}

四、代码效果图:

绿色部分为玩家手动输入部分,可任意输入昵称和编号

Java-打怪兽趣味小游戏(附效果图)相关推荐

  1. 【Python游戏】Python基于pygame实现的人机大战的斗兽棋小游戏 | 附源码

    前言 有粉丝说要我出一期Python版本的斗兽棋,今天宠粉狂魔的我不就来啦!! 虽然是一个简单的小游戏,但是对于新手小伙伴来说还是有一定的小难度的哟!要是不理解都可以找到小编的哈!! 相关文件 关注小 ...

  2. 用JAVA写一个趣味小游戏

    趣味猜数小游戏代码如下: public class task08 {public static void main(String[] args) {//声明部分int x,target;Scanner ...

  3. 用Python做一个奥特曼打怪兽的小游戏

    话不多说,往下看吧! 引入需要的模块 from sprites import * from pygame import mixer 设置页面格式(宽高等等) width,height = 800,60 ...

  4. JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二)

    目录 JAVA课程设计(小游戏贪吃蛇)完整源码附素材(一) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(二) JAVA课程设计(小游戏贪吃蛇)完整源码附素材(三) 前言 1. 任务描述 1.1  ...

  5. Java 开发打飞机小游戏(附完整源码)

    上图 写在前面 技术源于分享,所以今天抽空把自己之前用java做过的小游戏整理贴出来给大家参考学习.java确实不适合写桌面应用,这里只是通过这个游戏让大家理解oop面向对象编程的过程,纯属娱乐.代码 ...

  6. java2048小游戏源码及解析_200行java代码实现2048小游戏

    本文实例为大家分享了java实现2048小游戏的具体代码,供大家参考,具体内容如下 效果图: 游戏介绍: 1.2048是一款益智类小游戏,刚开始随机出现两个数字,可以上下左右控制数字的移动. 2.当选 ...

  7. 基于Java+Swing实现雷电小游戏

    基于Java+Swing实现雷电小游戏 一.系统介绍 二.功能展示 三.其他系统 四.获取源码 一.系统介绍 基于java的雷电游戏基本功能包括:敌方飞机随机飞行.我方飞机手动控制飞行,射击比拼,游戏 ...

  8. JAVA简单实现扫雷小游戏

    JAVA简单实现扫雷小游戏 这两天学校外面来人教java基础,学习一下,自己试着做了一个扫雷小游戏,记录一下子学习过程.(我觉得自己不是很懂类和对象,基础没怎么看),敲出来的代码结构混乱,希望路过的大 ...

  9. 【Java】推箱子小游戏(带背景音乐)完整代码

    Java实现推箱子小游戏 一.整体框架 二.游戏效果图 三.推箱子四大类 1. GameFrame类 2. Map类 3. MapFactory类 4. Sound类 四.游戏分析 1.游戏操作 2. ...

最新文章

  1. 从基于网络的安装服务器安装操作系统,PXE 概述 - Sun Fire X4800 服务器安装指南(适用于 Linux 操作系统)...
  2. 厌倦了“正在输入…”的客服对话,是时候pick视频客服了
  3. 佐治亚理工学院发文:不要迷信可解释性,小心被误导
  4. 实用 | PyCharm常用快捷键整理
  5. 【线上分享】RTC在传统流媒体行业的应用实践
  6. javaweb 常用jar包_使用javaweb写一个登录案例
  7. Win7电脑定时关机怎么设置
  8. java postconstruct_java的@PostConstruct注解
  9. ios开发 访问mysql_iOS开发实战-时光记账Demo 网络版
  10. html h3标签,网站h1,h2,h3标签的用法和技巧
  11. taskctl跨调度服务依赖实现
  12. 86版五笔-字根速记
  13. Mac 常用的 20 款效率神器推荐
  14. 矩阵特征值和特征向量详细计算过程
  15. 吴晓波:谷歌亚马逊抖音拼多多,15年前就被他成功预言--长尾理论/推荐系统/数据和消费
  16. Spring data报错:Inferred type 'S' for type parameter 'S' is not within its bound;
  17. 海康威视曲面大屏出现花屏,闪烁等现象该如何解决?
  18. 黑马送书啦!全体IT技术人的福利~
  19. iOS逆向一iPhone手机越狱/APP脱壳/IPA签名
  20. 常量指针(Pointer to const)与指针常量(Const pointer)

热门文章

  1. 【转载】Java 14都快出来了,为什么还有那么多人执着于Java 8?
  2. win10 状态栏图标变成白色方块
  3. [转]9款适合大学生使用的个人知识管理(PKM)工具软件
  4. Unity Shader GrabPass 使用注意的问题
  5. ueditor 图片上传 java_Spring+Vue整合UEditor富文本实现图片附件上传的方法
  6. html画布设计,10个会让你惊叹不已的HTML5画布(canvas)技术应用
  7. 物理学中的衔尾蛇(Ouroboros)
  8. 电脑系统重装下载的系统在哪找到
  9. C#,彩票数学——彩票预测是玄学还是数学?什么是彩票分析?怎么实现彩票号码的预测?
  10. vue滚动屏幕使其菜单栏隐藏和显示