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;
			}
		}
	}
}


發佈了34 篇原創文章 · 獲贊 3 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章