本来想把它移植到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. CVPR2021最新接收论文合集!22个方向100+篇论文汇总
  2. 汇总下几个IP计算/转换的shell小脚本-转
  3. 科大星云诗社动态20210809
  4. 台式计算机配置清单及价格,电脑配置清单及价格
  5. vector 源码及使用
  6. 5月份----要做的
  7. close wait 过多原因_time_wait 详解和解决方案
  8. Spring Boot配置文件规则以及使用方法官方文档查找以及Spring项目的官方文档查找方法...
  9. SQL Server 2005 express下载地址
  10. 几种常见的数据分析模型
  11. 【软件project】 文档 - 银行业务管理 - 需求分析
  12. matlab爆炸建模,7.2.5萨墓基尔加丹M螺旋爆炸技能建模分析
  13. 信息学奥赛知识点(一)—计算机基础知识【转载】
  14. html5 自动分享到朋友圈,html5手机端分享微信朋友圈代码
  15. 基于冲突的搜索算法(CBS)个人笔记
  16. linux runtime pm机制的深入理解
  17. centos7双机搭建_CentOS 7 配置 Keepalived 实现双机热备
  18. 队列(先进先出的数据结构)
  19. 各人口大国的人口密度排名
  20. 7-2 计算职工工资 (20 分)

热门文章

  1. linux升级编译器,升级Linux系统中的gcc编译器
  2. tortoisesvn的版本冲突
  3. 传统健身管理-捷径体系
  4. gem意思_邓紫棋为什么叫gem 邓紫棋gem有什么特殊的含义吗
  5. 前端页面设计0.5px的线
  6. uni-app css之background属性说明
  7. 【虹科白皮书】高级分析对NetOps的重要性
  8. 百度搜索引擎千人千面的转型之路
  9. MEMS-IMU误差类型
  10. mac 不显示 外接屏幕_如何设置Macbook外接显示器 Macbook外接显示器设置教程【详解】...