本来想把它移植到JAVA GUI文字游戏里,貌似空余时间越来越少,只能提前发出来了

JAVA GUI文字游戏 应该是会开发下去。。。欢迎关注点赞评论啥的

先上两张图

开始

结束

直接上代码吧

Enemy 怪

public class Enemy {private String type;// 名称private int life;// 生命值private boolean isLive;// 是否活着private int attack;// 攻击力private int defend;// 防御力private int maxLife;//最大生命private int miss;// 躲避系数// 受伤public void injured(Player h) {int n = GameUtil.getNumber(1,101);if (n < miss) {System.out.println("[#]"+"没打到");kill(h);// 还击return;}System.out.println("[#]"+type + ":受伤");// 生命值减少int loseLife = GameUtil.getLoseLife(h.getAttack(), defend);// int loseLife=g.getLoseLife(h.attack, defend);// int loseLife=h.attack-defend;life -= loseLife;// life=life-30;// 判断生命值是否小于0if (life < 0) {life = 0;dead(h);// 死亡} else {show();// 显示状态kill(h);// 还击}}public String getType() {return type;}public void setType(String type) {this.type = type;}public int getLife() {return life;}public void setLife(int life) {this.life = life;}public boolean isLive() {return isLive;}public void setLive(boolean isLive) {this.isLive = isLive;}public int getAttack() {return attack;}public void setAttack(int attack) {this.attack = attack;}public int getDefend() {return defend;}public void setDefend(int defend) {this.defend = defend;}public int getMaxLife() {return maxLife;}public void setMaxLife(int maxLife) {this.maxLife = maxLife;}public int getMiss() {return miss;}public void setMiss(int miss) {this.miss = miss;}// 还击public void kill(Player h) {System.out.println("[#]"+type + ":反击" + type + "还击" + h.getName());h.injured(this);}// 死亡 public void dead(Player h) {isLive = false;System.out.println("[#]" + type + "挂了");// 调用hunter中添加经验值的方法h.addExp(maxLife);}// 显示状态public void show() {System.out.println("[#]"+type + "生命值是:" + life + "是否活着" + isLive);}}

Game 游戏主程序

import java.util.ArrayList;
import java.util.List;public class Game {Player h;List<Enemy> enemys = new ArrayList<Enemy>();public Game(String name, String weapon) {h = new Player(name, weapon);enemys.add(new Monster(1));enemys.add(new Monster(2));enemys.add(new Monster(3));enemys.add(new Vampire(1));enemys.add(new Vampire(2));enemys.add(new Vampire(4));enemys.add(new Vampire(1));}public void start() {// 死循环 实现游戏自动打while (true) {// 生成一个随机数 0-5int ran = GameUtil.getNumber(0, enemys.size());h.fight(enemys.get(ran));// 玩家死亡 游戏结束if (!h.isLive()) {System.out.println("恢复一下");h.setLife(100);h.setLive(true);// end();// break;}// 如果当前对手是死亡if (!enemys.get(ran).isLive()) {// 将此对手移除集合enemys.remove(enemys.get(ran));}// 判断集合大小 如果小于等于0 证明所有的对手都死亡了if (enemys.size() <= 0) {end();break;}try {System.out.println("-----------正在寻找对手--------------");Thread.sleep(2000);} catch (InterruptedException e) {e.printStackTrace();}}}public void end() {System.out.println("Game Over!!!");}}

GameUtil 游戏方法


public class GameUtil {//求减少生命值的方法  方法用static 修饰  ,调用时 类名.方法名public static int getLoseLife(int attack,int defend){return attack-defend;}//求a-b之间随机数方法public static int getNumber(int a,int b){//求任意两个数之间的随机数(int)return (int)(Math.random()*(b-a)+a);}}

Monster 小怪列表


public class Monster extends Enemy{public Monster(int t) {switch (t) {case 1:this.setType("青铜小怪");this.setLife(70);this.setAttack(5);this.setDefend(2);this.setMiss(20);break;case 2:this.setType("白银小怪");this.setLife(80);this.setAttack(8);this.setDefend(4);this.setMiss(30);break;case 3:this.setType("黄金小怪");this.setLife(90);this.setAttack(10);this.setDefend(6);this.setMiss(60);break;case 4:this.setType("铂金小怪");this.setLife(100);this.setAttack(15);this.setDefend(10);this.setMiss(70);break;case 5:this.setType("钻石小怪");this.setLife(110);this.setAttack(28);this.setDefend(12);this.setMiss(70);break; default:System.out.println("输入错误");break;}this.setLive(true);this.setMaxLife(this.getLife());//maxLife=life;}
}

Player 玩家

//玩家
public class Player {private String name;private String weapon;// 武器private int life;// 生命值private boolean isLive;// 是否活着private int attack;// 攻击力private int defend;// 防御力private int exp;// 经验值private int level;// 等级private int maxLife;// 最大生命值private int miss;// 躲避系数int times;public Player() {// TODO Auto-generated constructor stub}// 为name 和武器赋值 并且初始化public Player(String name, String weapon) {this.name = name;this.weapon = weapon;life = 200;isLive = true;attack = 60;defend = 3;level = 1;exp = 0;maxLife = life;miss = 60;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getWeapon() {return weapon;}public void setWeapon(String weapon) {this.weapon = weapon;}public int getLife() {return life;}public void setLife(int life) {this.life = life;}public boolean isLive() {return isLive;}public void setLive(boolean isLive) {this.isLive = isLive;}public int getAttack() {return attack;}public void setAttack(int attack) {this.attack = attack;}public int getDefend() {return defend;}public void setDefend(int defend) {this.defend = defend;}public int getExp() {return exp;}public void setExp(int exp) {this.exp = exp;}public int getLevel() {return level;}public void setLevel(int level) {this.level = level;}public int getMaxLife() {return maxLife;}public void setMaxLife(int maxLife) {this.maxLife = maxLife;}public int getMiss() {return miss;}public void setMiss(int miss) {this.miss = miss;}public int getTimes() {return times;}public void setTimes(int times) {this.times = times;}// 打Vampirepublic void fight(Enemy e) {// 在打之前判断一下小怪和玩家是否存活 如果一方死亡 那么程序终止if (!isLive || !e.isLive()) {return;// return 表示结束 方法}System.out.println("[-]" + name + "挥舞着" + weapon + "杀向" + e.getType());// m必须受伤e.injured(this);// this 表示当前对象}// 受伤Vampirepublic void injured(Vampire v) {int n = GameUtil.getNumber(1, 101);if (n < miss) {System.out.println("[-]" + "躲避成功");show();return;}System.out.println("[-]" + name + ": 掉血了");// 减少的生命是动态的值int loseLife = GameUtil.getLoseLife(v.getAttack(), defend);// int loseLife=m.attack-defend;life -= loseLife;if (life < 0) {life = 0;dead();}show();// 当玩家受伤后 吸血v.getBlood(loseLife);}// 受伤Monsterpublic void injured(Enemy e) {int n = GameUtil.getNumber(1, 101);if (n < miss) {System.out.println("[-]" + "闪躲成功");show();return;}System.out.println("[-]" + name + ":掉血");// 减少的生命是动态的值int loseLife = GameUtil.getLoseLife(e.getAttack(), defend);// int loseLife=m.attack-defend;life -= loseLife;if (life < 0) {life = 0;dead();}show();}// 死亡public void dead() {System.out.println("[-]" + name + "你挂了");isLive = false;}// 显示状态public void show() {System.out.println(name + "生命值是:" + life + "\n攻击力" + attack + "防御力:" + defend);}// 升级方法public void addLevel() {attack += 3;defend += 3;level++;// 满血life = maxLife;System.out.println("[-]" + "升级成功!当前的等级是:" + level);show();}// 增加经验方法 当对手死亡的时候 玩家增加经验 经验值=对手的生命值public void addExp(int life) {exp += life;// 加的经验值=对手的生命值// 判断当前经验值是否满足此等级升级所需的经验值int needExp = 0;for (int i = 1; i < level; i++) {needExp += i * 50;}if (exp > needExp) {addLevel();}}}

Vampire 吸血类怪

public class Vampire extends Enemy {private int blood;// 吸血系数public Vampire(int t) {switch (t) {case 1:this.setType("青铜吸血鬼");this.setLife(70);this.setAttack(5);this.setDefend(2);this.setMiss(20);break;case 2:this.setType("白银吸血鬼");this.setLife(80);this.setAttack(8);this.setDefend(4);this.setMiss(30);break;case 3:this.setType("黄金吸血鬼");this.setLife(90);this.setAttack(10);this.setDefend(6);this.setMiss(60);break;case 4:this.setType("铂金吸血鬼");this.setLife(100);this.setAttack(15);this.setDefend(10);this.setMiss(70);break;default:System.out.println("输入错误");break;}this.setLive(true);this.setMaxLife(this.getLife());// maxLife=life;}public int getBlood() {return blood;}public void setBlood(int blood) {this.blood = blood;}// 吸血public void getBlood(int loseLife) {System.out.println("[+]" + this.getType() + ":吸血成功!");// 吸玩家失去的生命力*blood/100;int getBlood = loseLife * blood / 100;this.setLife(this.getLife() + getBlood);// life+=getBlood;if (this.getLife() >= this.getMaxLife()) {this.setLife(this.getMaxLife());// life=maxLife;}}}

TestGame  最最重要的main方法所在类

import java.util.Scanner;public class TestGame {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("请输入玩家姓名:");String name = s.next();System.out.println("请输入玩家武器:");String w = s.next();Game g = new Game(name, w);System.out.println("是否开始游戏?[Y][N]");String f = s.next();if (f.equals("Y") || f.equals("y")) {g.start();} else {System.out.println("结束");}}}

java 最简单的文字类游戏相关推荐

  1. 基于Java多线程的打怪升级类游戏设计与开发

    摘要:本文论述了通过JAVA多线程.基于JAVA Swing的GUI图形用户界面设计.IO输入输出流.JDBC技术,实现了游戏系统的UI设计.游戏数据的存储.关卡的设置.用户头像的上传与更改.游戏数据 ...

  2. App Store游戏付费榜前三,推荐一款Cocos Creator制作的文字类游戏

    不靠怒刷,不喜宣传,这款基于Cocos Creator制作的文字类游戏「荒野求生」就这样默默无闻地一跃而上,取得了App Store游戏榜前十的好成绩.而且上周还一举挤入游戏付费榜第三.文字类游戏排行 ...

  3. Java实现简单的回合制游戏

    实现简单的回合制游戏 测试类 方法类 角色类 玩家类 测试类 package turn_base;import javax.security.sasl.SaslServer;/** 回合制游戏的需求* ...

  4. 基于JavaSwing的简单的动作类游戏

    FightGame 介绍 借用拳皇和冒险岛素材的基于JavaSwing的动作类游戏. JDK 1.9 运行截图: 动态演示: 安装教程 下载本项目后导入eclipse即可. 存在问题 目前该游戏仍然存 ...

  5. java小游戏:蜡笔小新!!!基于JAVA面向对象实现的跑酷类游戏(小新跑酷)(简单小游戏,仅仅使用Java面向对象基础实现(附上源码))

    一起来看一下蜡笔小新,很好看的,解压!!!!!!!!!!!!!!! 由于Java面向对象基础的游戏,有一定的局限,但是我觉得这款的可玩性已经很高了,话不多说一起来看游戏: 游戏界面,点击空格跳跃来躲避 ...

  6. 用java制作扑克牌_利用java实现简单的扑克牌小游戏

    扑克牌小游戏: (推荐教程:java课程) 游戏玩法简介:定义五个People在玩扑克牌游戏,玩法是5个人从一副没有大小王的扑克牌中各抽取4张,牌的类型有四种:♥,♣,♠,♦.牌的大小为从1~13.( ...

  7. python文字冒险游戏_模拟射击文字类游戏(Python)

    之前使用java进行一个比较简单的实验--模拟打枪游戏,具体内容就在这里不多说了,以下是python版本,对于python在语法要求上相对其他语言较为松散,所以在编写时遇到了一些坑. 因为单纯以实现为 ...

  8. JAVA实现简单的猜数字游戏

    1.游戏分析: 游戏第一步:需要一个随机数,并且该随机数有范围:(java的包中有一个Random类可产生随机数,需要导入这个包,如下) 游戏第二步:猜数字的设计,猜的次数为5次 2.编程实现: im ...

  9. java实现简单的网络象棋游戏

    - 游戏规则: 1.将/帅:不能出田字格,不能走斜线,只能前进后退向左向右,每次只走一格: 2.士/仕:不能出田字格,只能走斜线,每次只走一格: 3.象/相:只能走田字格,中间防止蹩脚,不能有棋: 4 ...

最新文章

  1. springmvc 拦截器、国际化、验证
  2. XCode 7上传遇到ERROR ITMS-90535 Unexpected
  3. volatile的适用场景
  4. React基础学习(第三天)
  5. React- jsx的使用可以渲染html标签 或React组件
  6. java学完jdk后学什么_学完了javase之后要学什么?
  7. 联动椰树花式营销 完成债务重组的瑞幸又“站”了起来
  8. [转载] Python 模块的设计和编写
  9. MySQL函数大全,MySQL常用函数以及用法汇总
  10. 现代高频开关电源技术与应用随堂练习_详细了解开关电源的电磁干扰分析
  11. 10个不错的编程等宽字体
  12. php oop思想
  13. android 语音留言功能,不想接电话怎么办?中移动语音信箱Android版测评
  14. qt中glMultiTexCoord2fARB报错
  15. SEM数据分析之做好关键词报告
  16. AlexNet 参数计算
  17. vi vim 快速跳到文件末尾 GA 在最后一行下方新增一行 (光标换行,文字不换行) GO
  18. 【CSS】955- 你该知道的字体 font-family
  19. 快上车,老司机带你实现后台录像功能
  20. Redis常用命令小总

热门文章

  1. amd linux 知乎,为什么贴吧里几乎所有装机大神都反对用AMD的CPU?
  2. FCPX视频特效插件Boris Continuum Complete 2019 for FCPX(BCC12) v12.0.3激活版
  3. 僕らの手には何もないけど、(尽管我们手中空无一物)--罗马音歌词
  4. 零基础要怎么样学习嵌入式--带你走进嵌入式
  5. echarts环形图的图例引导线水平加圆点
  6. echarts雷达图 echart雷达图 雷达图
  7. CentOS6.5安装Kmplayer
  8. 2019年下半年《软件评测师》下午试卷及答案
  9. linux clocksource
  10. native2ascii的用法