
正文
猫狗大战JAVA源代码 猫狗大战游戏规则
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用java多线程写一个猫叫和狗叫混合的程序 求各位大神指点 本人是it菜鸟级别的
一写就写多了猫狗大战JAVA源代码,不过包含猫狗大战JAVA源代码的东西比较多,java的重要知识点里面也有
这个结构是简单的处理的,有兴趣的话你可以想象下写成一个小的文字游戏
public class D {
public static void main(String[] args){
Cat cat1 = new Cat("Tom" , 10);
Cat cat2 = new Cat("Sun" , 15 , "苹果树");
Dog dog1 = new Dog("lufy" , 5);
Dog dog2 = new Dog("nan" , 20 , "泳池");
cat1.start();
cat2.start();
dog1.start();
dog2.start();
}
}
abstract class Creature extends Thread
{
protected int life; //生物的寿命
protected String name = "";
protected String objname = "";
public void call(){};
public void eat(){};
public void active(int state){};
}
class Cat extends Creature
{
public Cat(String name , int life)
{
this.name = name;
this.life = life;
System.out.println("小猫" + name + "诞生了 , 寿命" + life);
}
public Cat(String name , int life ,String objname)
{
this.name = name;
this.life = life;
this.objname = objname;
System.out.println("小猫" + name + "诞生了 , 寿命" + life + "喜欢" + objname );
}
public void climb()
{
System.out.println("小猫" + name + "在爬树" );
}
public void climb(String objname)
{
System.out.println("小猫" + name + "在爬" + objname + "树");
}
@Override
public void call() {
System.out.println("小猫" + name + "停下来在喵喵的叫" );
}
@Override
public void eat() {
System.out.println("小猫" + name + "饿了,它在吃东西" );
}
@Override
public void active(int state) {
switch(state)
{
case 1:
if(objname.length() 0)
climb(objname);
else
climb();
break;
case 2:
call();
break;
case 3:
eat();
break;
}
}
@Override
public void run() {
//你可以尝试在这里做一个状态机,控制动物的行为
int i = 0 ;
int state = 0 ;
while(i life)
{
double rnd = Math.random();
state = (int)(rnd * 4);//随机出状态
active(state);
i++;
}
System.out.println("小猫" + name + "它的生命结束了,享年" + life);
}
}
class Dog extends Creature
{
public Dog(String name , int life)
{
this.name = name;
this.life = life;
System.out.println("小狗" + name + "诞生了 , 寿命" + life );
}
public Dog(String name , int life , String objname)
{
this.name = name;
this.life = life;
this.objname = objname;
System.out.println("小狗" + name + "诞生了 , 寿命" + life + "喜欢" + objname );
}
public void swim()
{
System.out.println("小狗" + name + "在游泳" );
}
public void swim(String objname)
{
System.out.println("小狗" + name + "在" + objname + "游泳");
}
@Override
public void call() {
System.out.println("小狗" + name + "停下来在喵喵的叫" );
}
@Override
public void eat() {
System.out.println("小狗" + name + "饿了,它在吃东西" );
}
@Override
public void active(int state) {
switch(state)
{
case 1:
if(objname.length() 0)
swim(objname);
else
swim();
break;
case 2:
call();
break;
case 3:
eat();
break;
}
}
@Override
public void run() {
//你可以尝试在这里做一个状态机,控制动物的行为
int i = 0 ;
int state = 0 ;
while(i life)
{
double rnd = Math.random();
state = (int)(rnd * 4);//随机出状态
active(state);
i++;
}
System.out.println("小狗" + name + "它的生命结束了,享年" + life);
}
}
相关问答
Q1: Java猫狗大战 一个一下的打 猫攻击力5 生命值120 狗攻击力7 生命值100 在生
private static void dogcat(){
int doggj = 7;
int catgj = 5;
int dogx = 100;
int catx = 120;
for(int i=0;i100;i++){
catx = catx-doggj;
dogx = dogx-catgj;
if(catx=40){
catgj = 10 ;
}
if(dogx=30){
doggj = 14;
}
if(catx =0){
System.out.println("dog win");
System.out.println("catx = "+catx);
System.out.println("dogx = "+dogx);
break;
}
if(dogx =0){
System.out.println("cat win");
System.out.println("catx = "+catx);
break;
}
}
}
输出:
dog win
catx = -13
dogx = 0
狗赢了,因为狗打了那一下猫还没打来着,所以他的血应该是10
Q2: 求一个猫狗多态案例的java程序,谢谢
代码如下:
abstract class Animal {
public abstract void eat();
}
class Cat extends Animal {
@Override
public void eat() {
System.out.println("爱吃鱼");
}
public void play() {
System.out.println("玩王者荣耀");
}
}
class Dog extends Animal {
@Override
public void eat() {
System.out.println("爱啃骨头");
}
public void lookDoor() {
System.out.println("看门");
}
}
public class App {
public static void main(String[] argv) {
Cat cat = new Cat();
cat.eat();
cat.play();
Dog dog = new Dog();
dog.eat();
dog.lookDoor();
}
}
猫狗大战JAVA源代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于猫狗大战游戏规则、猫狗大战JAVA源代码的信息别忘了在本站进行查找喔。






