java敌机生命的简单介绍
今天给各位分享java敌机生命的知识,其中也会对进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、Java类的生命周期包括哪几个阶段
- 2、java飞机大战求实现让敌机打子弹的方法
- 3、java编写两玩家对打程序,需要生命值,攻击和防御,生命为0则死亡。
- 4、java做的Android 飞机大战中如何实现敌机个数随机实现?比如在一个屏幕中最多只能出现5个敌机!
Java类的生命周期包括哪几个阶段
加载:查找并加载类的二进制数据
连接:分为三个小阶段:
验证:确保被加载的类的正确性
准备:为类的静态变量分配内存,并将其初始 化为默认值
解析:把类中的符号引用转换为直接引用
初始化:为类的静态变量赋予正确的初始值
使用:又分为主动使用和被动使用。
卸载:由JVM自带的类加载器所加载的类,在JVM的生命周期中,始终不会被卸载。但是由用户自定义的类加载器所加载的类是可以被卸载的。
以上只是做部分说明。 要细说的话,内容还是很多的。
java飞机大战求实现让敌机打子弹的方法
首先创建四个类,敌机和英雄机子弹类,敌机类,英雄机类,类中定义各自的横竖x y坐标属性,值得注意的是,在写构造的时候,子弹的构造需要传入参数,因为子弹英雄机和敌机发出来的嘛。再定义两种子弹移动方法。移动方法很好写,子弹垂直方向发,x——就行了。再在main中调用就行了
java编写两玩家对打程序,需要生命值,攻击和防御,生命为0则死亡。
public class Player {
// 模拟交战
public static void Engage(){
System.out.println("战斗开始!");
new Player("悟空",200,50,10).Attack(new Player("八戒",300,40,6));
System.out.println("战斗结束!");
}
// 名字
private String name;
// 生命值
private int hp;
// 伤害
private int damage;
// 护甲
private int armor;
public Player(String name,int hp,int damage,int armor){
this.name = name;
this.hp = hp;
this.damage = damage;
this.armor = armor;
}
public String GetName(){
return this.name;
}
// 进攻
public void Attack(Player target){
System.out.println(String.format("%1$s正在攻击%2$s!",this.GetName(),target.GetName()));
target.HurtFrom(this, this.damage);
}
// 反击
public void CounterAttack(Player enemy){
System.out.println(String.format("%1$s正在反击%2$s!",this.GetName(),enemy.GetName()));
this.Attack(enemy);
}
// 计算伤害
public void HurtFrom(Player enemy,int damage){
int realDamage = damage - this.armor;
this.hp = this.hp - realDamage;
System.out.println(String.format("%1$s受到%2$s的攻击,伤害%3$s,真实伤害%4$s,当前血量%5$s!",this.GetName(),enemy.GetName(),damage,realDamage,this.hp));
if(this.hp50)
System.out.println(String.format("哈哈,%1$s快死了!", this.GetName()));
if(this.hp 0){
System.out.println(String.format("%1$s已死亡!", this.GetName()));
return;
}
this.CounterAttack(enemy);
}
}
public class Application {
public static void main(String[] args) {
// 模拟交战
Player.Engage();
}
}
// 战斗记录
/*
战斗开始!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量256!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量170!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量212!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量140!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量168!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量110!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量124!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量80!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量80!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量50!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量36!
哈哈,八戒快死了!
八戒正在反击悟空!
八戒正在攻击悟空!
悟空受到八戒的攻击,伤害40,真实伤害30,当前血量20!
哈哈,悟空快死了!
悟空正在反击八戒!
悟空正在攻击八戒!
八戒受到悟空的攻击,伤害50,真实伤害44,当前血量-8!
哈哈,八戒快死了!
八戒已死亡!
战斗结束!
*/
java做的Android 飞机大战中如何实现敌机个数随机实现?比如在一个屏幕中最多只能出现5个敌机!
可以使用java.util.Random类来产生一个随机数发生器。它有两种形式的构造函数,分别是Random()和Random(long seed)。Random()使用当前时间即System.currentTimeMillis()作为发生器的种子,Random(long seed)使用指定的seed作为发生器的种子。
随机数发生器(Random)对象产生以后,通过调用不同的method:nextInt()、nextLong()、nextFloat()、nextDouble()等获得不同类型随机数。
1生成随机数
Random random = new Random();
Random random = new Random(100);//指定种子数100
random调用不同的方法,获得随机数。
如果2个Random对象使用相同的种子(比如都是100),并且以相同的顺序调用相同的函数,那它们返回值完全相同。如下面代码中两个Random对象的输出完全相同
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random1 = new Random(100);
System.out.println(random1.nextInt());
System.out.println(random1.nextFloat());
System.out.println(random1.nextBoolean());
Random random2 = new Random(100);
System.out.println(random2.nextInt());
System.out.println(random2.nextFloat());
System.out.println(random2.nextBoolean());
}
}
2指定范围内的随机数
随机数控制在某个范围内,使用模数运算符%
import java.util.*;
class TestRandom {
public static void main(String[] args) {
Random random = new Random();
for(int i = 0; i 10;i++) {
System.out.println(Math.abs(random.nextInt())%10);
}
}
}
获得的随机数有正有负的,用Math.abs使获取数据范围为非负数
3获取指定范围内的不重复随机数
import java.util.*;
class TestRandom {
public static void main(String[] args) {
int[] intRet = new int[6];
int intRd = 0; //存放随机数
int count = 0; //记录生成的随机数个数
int flag = 0; //是否已经生成过标志
while(count6){
Random rdm = new Random(System.currentTimeMillis());
intRd = Math.abs(rdm.nextInt())%32+1;
for(int i=0;icount;i++){
if(intRet[i]==intRd){
flag = 1;
break;
}else{
flag = 0;
}
}
if(flag==0){
intRet[count] = intRd;
count++;
}
}
for(int t=0;t6;t++){
System.out.println(t+"-"+intRet[t]);
}
}
}
Java随机数类Random介绍
Java实用工具类库中的类java.util.Random提供了产生各种类型随机数的方法。它可以产生int、long、float、double以 及Goussian等类型的随机数。这也是它与java.lang.Math中的方法Random()最大的不同之处,后者只产生double型的随机 数。
类Random中的方法十分简单,它只有两个构造方法和六个普通方法。
构造方法:
(1)public Random()
(2)public Random(long seed)
Java产生随机数需要有一个基值seed,在第一种方法中基值缺省,则将系统时间作为seed。
普通方法:
(1)public synonronized void setSeed(long seed)
该方法是设定基值seed。
(2)public int nextInt()
该方法是产生一个整型随机数。
(3)public long nextLong()
该方法是产生一个long型随机数。
(4)public float nextFloat()
该方法是产生一个Float型随机数。
(5)public double nextDouble()
该方法是产生一个Double型随机数。
(6)public synchronized double nextGoussian()
该方法是产生一个double型的Goussian随机数。
例2 RandomApp.java。
//import java.lang.*;
import java.util.Random;
public class RandomApp{
public static void main(String args[]){
Random ran1=new Random();
Random ran2=new Random(12345);
//创建了两个类Random的对象。
System.out.println("The 1st set of random numbers:");
System.out.println(" Integer:"+ran1.nextInt());
System.out.println(" Long:"+ran1.nextLong());
System.out.println(" Float:"+ran1.nextFloat());
System.out.println(" Double:"+ran1.nextDouble());
System.out.println(" Gaussian:"+ran1.nextGaussian());
//产生各种类型的随机数
System.out.print("The 2nd set of random numbers:");
for(int i=0;i5;i++){
System.out.println(ran2.nextInt()+" ");
if(i==2) System.out.println();
//产生同种类型的不同的随机数。
System.out.println();
}
}
}
Random random=new Random();
random.nextInt();
也可以有nextFloat等等,各种基本类型都有
Math.random也可以
比如说你想要0-10之间的随机数
你可以这样写
(int)(Math.random()*10);
JAVA产生指定范围的随机数》
《JAVA产生指定范围的随机数》
产生机制:
产生Min-Max之间的数字
实现原理:
Math.round(Math.random()*(Max-Min)+Min)
long Temp; //不能设定为int,必须设定为long
//产生1000到9999的随机数
Temp=Math.round(Math.random()*8999+1000);
java敌机生命的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于、java敌机生命的信息别忘了在本站进行查找喔。