Java小小RPG游戏第五版(基于第四版优化)

package com.game.huntervsmonster04;

public class Hunter
{
	String name;
	int maxLife;
	int actualLife;
	int level;
	int attack;
	int defend;
	int experience;
	String weapon;
	boolean isLive;
	int nimble;

	public Hunter(int i)
	{
		switch (i)
		{
		case 1:
		{
			this.name = "李逍遥";
			this.attack = 100;
			this.defend = 40;
			this.isLive = true;
			this.maxLife = 200;
			this.weapon = "无尘剑";
			this.actualLife = maxLife;
			this.experience = 0;
			this.level = 1;
			this.nimble = 90;
		}
			break;
		case 2:
		{
			this.name = "景天";
			this.attack = 500;
			this.defend = 200;
			this.isLive = true;
			this.maxLife = 1000;
			this.weapon = "魔剑";
			this.actualLife = maxLife;
			this.experience = 0;
			this.level = 1;
			this.nimble = 45;
		}
			break;
		case 3:
		{
			this.name = "孙悟空";
			this.attack = 1000;
			this.defend = 400;
			this.isLive = true;
			this.maxLife = 3000;
			this.weapon = "金箍棒";
			this.actualLife = maxLife;
			this.experience = 0;
			this.level = 1;
			this.nimble = 50;
		}
			break;
		}
	}

	void fight(Monster monster)
	{
		if (!isLive)
		{
			return;
		}
		monster.injured(this);
	}

	void injured(Monster monster)
	{
		int randomNimble = 0;
		randomNimble = randomNumber();
		if (randomNimble >this.nimble)
		{
			if (monster.attack >= this.defend)
				this.actualLife = this.actualLife
						- (monster.attack - this.defend);
		}
		else
			System.out.println(this.name + "躲避成功");
		if (this.actualLife <= 0)
		{
			this.dead();
			return;
		}
		this.show();
		this.fight(monster);
	}

	void dead()
	{
		this.isLive = false;
	}

	void changeExperience(Monster moster)
	{
		this.experience += moster.experience;
		while (this.experience >= (this.level * 200))
		{
			upgrade();
		}
	}

	void upgrade()
	{
		this.level += 1;
		this.attack *= 1.5;
		this.defend *= 1.25;
		this.actualLife = (int) (this.maxLife * 1.5);
		this.maxLife *= 1.5;
		this.nimble += 2;
		System.out.println(this.name + ":" + this.level);
	}

	void show()
	{
		if (this.isLive)
			System.out.println(this.name + "还有" + this.actualLife + "点血");
		else
		{
			System.out.println(this.name + "壮烈牺牲了!");
			return;
		}
	}

	int randomNumber()
	{
		int number = 0;
		number = (int) (Math.random() * 100);
		return number;
	}
}

package com.game.huntervsmonster04;

public class Monster
{
	String type;
	int maxLife;
	int actualLife;
	boolean isLive;
	int attack;
	int defend;
	int experience;
	int nimble;

	public Monster(int i)
	{
		switch (i)
		{
		case 1:
		{
			this.type = "小僵尸";
			this.attack = 80;
			this.defend = 20;
			this.isLive = true;
			this.maxLife = 200;
			this.actualLife = maxLife;
			this.experience = 100;
			this.nimble = 5;
		}
			break;
		case 2:
		{
			this.type = "大僵尸";
			this.attack = 130;
			this.defend = 50;
			this.isLive = true;
			this.maxLife = 500;
			this.actualLife = maxLife;
			this.experience = 200;
			this.nimble = 10;
		}
			break;
		case 3:
		{
			this.type = "僵尸老大";
			this.attack = 200;
			this.defend = 90;
			this.isLive = true;
			this.maxLife = 1000;
			this.actualLife = maxLife;
			this.experience = 300;
			this.nimble = 13;
		}
			break;
		case 4:
		{
			this.type = "小鬼";
			this.attack = 210;
			this.defend = 100;
			this.isLive = true;
			this.maxLife = 1200;
			this.actualLife = maxLife;
			this.experience = 320;
			this.nimble = 20;
		}
			break;
		case 5:
		{
			this.type = "老鬼";
			this.attack = 350;
			this.defend = 150;
			this.isLive = true;
			this.maxLife = 2000;
			this.actualLife = maxLife;
			this.experience = 400;
			this.nimble = 25;
		}
			break;
		case 6:
		{
			this.type = "火鬼王";
			this.attack = 500;
			this.defend = 200;
			this.isLive = true;
			this.maxLife = 5000;
			this.actualLife = maxLife;
			this.experience = 500;
			this.nimble = 30;
		}
			break;
		case 7:
		{
			this.type = "黑无常";
			this.attack = 600;
			this.defend = 250;
			this.isLive = true;
			this.maxLife = 8000;
			this.actualLife = maxLife;
			this.experience = 800;
			this.nimble = 35;
		}
			break;
		case 8:
		{
			this.type = "白无常";
			this.attack = 600;
			this.defend = 250;
			this.isLive = true;
			this.maxLife = 8000;
			this.actualLife = maxLife;
			this.experience = 800;
			this.nimble = 40;
		}
			break;
		case 9:
		{
			this.type = "阎王";
			this.attack = 900;
			this.defend = 300;
			this.isLive = true;
			this.maxLife = 10000;
			this.actualLife = maxLife;
			this.experience = 1000;
			this.nimble = 50;
		}
			break;
		}
	}

	public void fight(Hunter hunter)
	{
		if (!isLive)
		{
			return;
		}
		hunter.injured(this);
	}

	public void injured(Hunter hunter)
	{
		int randomNimble = 0;
		randomNimble = randomNumber();
		if (randomNimble >this.nimble)
		{
			if (hunter.attack >= this.defend)
				this.actualLife = this.actualLife
						- (hunter.attack - this.defend);
		}
		else
			System.out.println(this.type + "躲避成功");
		if (this.actualLife <= 0)
		{
			this.dead(hunter);
			return;
		}
		this.show();
		this.fight(hunter);
	}

	void dead(Hunter hunter)
	{
		this.isLive = false;
		hunter.changeExperience(this);
	}

	int randomNumber()
	{
		int number = 0;
		number = (int) (Math.random() * 100);
		return number;
	}

	void show()
	{
		if (this.isLive)
			System.out.println(this.type + "还有" + this.actualLife + "点血");
		else
			System.out.println(this.type + "被杀死了!");
	}
}

package com.game.huntervsmonster04;

public class TestGme
{
	static int i;

	public static void main(String[] args)
	{
		Hunter hunter = new Hunter(1);
		for (i = 1; i < 10; i++)
		{
			Monster monster = new Monster(i);
			System.out.println(hunter.name + "VS" + monster.type);
			hunter.fight(monster);
			System.out.println("战斗结束");
			// monster.show();
			hunter.show();
			if (!hunter.isLive)
			{
				return;
			}
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值