使用java里class方法和接口实现输入玩家和怪物攻击力的游戏

import java.util.Scanner;

interface shape{
	void show();
}
class Youxi implements shape{
	int wanjia;
	int guaiwu;
	int yuan;
	int wanjia1;
	int guaiwu1;
	Youxi(int xue1,int xue2,int a,int b){
		wanjia=xue1;
		guaiwu=xue2;
		yuan=xue2;
		wanjia1=a;
		guaiwu1=b;
	}
	public void show() {
		System.out.printf("游戏开始玩家初始血量"+wanjia+"怪物初始血量"+guaiwu);
		System.out.printf("\n");
		for(int i=1;i<=yuan;i++) {
			System.out.printf("第"+i+"回合");
			System.out.printf("\n");
			if(guaiwu>0) {
				wanjia=wanjia-guaiwu1;
				guaiwu=guaiwu-wanjia1;
				System.out.printf("第"+i+"次结束后玩家血量"+wanjia+"怪物血量"+guaiwu);
                System.out.printf("\n");
			}
			if(guaiwu<0||guaiwu==0) {
				System.out.printf("胜利");
                break;
			}
		}
	}
	
}
public class App {
	public static void main(String[] args) {
		int xue1=1000;
		int xue2=100;
		Scanner scan=new Scanner(System.in);
		System.out.printf("输入玩家攻击力");
		int a=scan.nextInt();
		System.out.printf("输入怪物攻击力");
		int b=scan.nextInt();
		shape c=new Youxi(xue1,xue2,a,b);
        c.show();
	}
}
class Youxi{
	int wanjia;
	int guaiwu;
	int wanjia1=16;
	int guaiwu1=1;
	Youxi(int xue1,int xue2){
		wanjia=xue1;
		guaiwu=xue2;
	}
	public void show() {
		System.out.printf("游戏开始玩家初始血量"+wanjia+"怪物初始血量"+guaiwu);
		System.out.printf("\n");
		int guaiwu2=guaiwu;
		for(int i=1;i<=guaiwu2;i++) {
			if(guaiwu>0) {
				System.out.printf("第"+i+"次攻击\n");
				wanjia=wanjia-guaiwu1;
				guaiwu=guaiwu-wanjia1;
				System.out.printf("第"+i+"次攻击后玩家血量"+wanjia+"怪物血量"+guaiwu);
				System.out.println("\n");
			}
			if(guaiwu<0||guaiwu==0) {
				System.out.printf("胜利");
				break;
			}
		}
	}
}
public class b {
	public static void main(String[] args) {
		int xue1=1000;
		int xue2=100;
		Youxi c=new Youxi(xue1,xue2);
		c.show();
	}
}

好的,以下是我的回答: 1. 公共成员:怪物名字,生命值,攻击力,攻击方法,移动方法 父类:怪物类 2. 代码实现: ```java class Monster { protected String name; protected int hp; protected int atk; public Monster(String name, int hp, int atk) { this.name = name; this.hp = hp; this.atk = atk; } public void attack() { System.out.println(name + "正在攻击,攻击力为" + atk + ",剩余生命值为" + hp); } public void move() {} public String getName() { return name; } public int getHp() { return hp; } public int getAtk() { return atk; } } class SnakeMonster extends Monster { public SnakeMonster(String name, int hp, int atk) { super(name, hp, atk); } public void move() { System.out.println(name + "正在曲线移动"); } public void addHp() { if (hp < 10) { hp += 20; } } } class CentipedeMonster extends Monster { public CentipedeMonster(String name, int hp, int atk) { super(name, hp, atk); } public void move() { System.out.println(name + "正在飞行移动"); } } ``` 3. 攻击方法实现: ```java public static void attack(Monster monster) { monster.attack(); } ``` 4. 测试代码: ```java SnakeMonster snakeMonster = new SnakeMonster("蛇怪", 50, 20); snakeMonster.attack(); snakeMonster.move(); snakeMonster.addHp(); snakeMonster.attack(); CentipedeMonster centipedeMonster = new CentipedeMonster("蜈蚣精", 70, 30); centipedeMonster.attack(); centipedeMonster.move(); attack(snakeMonster); attack(centipedeMonster); ``` 输出结果: ``` 蛇怪正在攻击,攻击力为20,剩余生命值为50 蛇怪正在曲线移动 蛇怪正在攻击,攻击力为20,剩余生命值为50 蜈蚣精正在攻击,攻击力为30,剩余生命值为70 蜈蚣精正在飞行移动 蛇怪正在攻击,攻击力为20,剩余生命值为30 蜈蚣精正在攻击,攻击力为30,剩余生命值为70 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值