#千锋逆战班,作业2.28#

本文详细介绍了一个游戏开发团队的组成,包括不同角色如Magicer(魔法师)、Soldier(士兵)的功能与技能提升机制,以及武器和魔法棒的使用效果。通过具体的代码实现,展示了团队攻击总和的计算方法,并在角色练习后重新计算攻击总和,体现了角色成长对团队战斗力的影响。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Q9
2
	null 0
	Tom 18
3
	ture
	false
4
	ture
	false
5
	ABCD
6
class Worker{
	String name;
	int age;
	double salary;
	Address addr;
	public Worker(){}
	public Worker(String name, int age, double salary){
		this.name = name;
		this.age = age;
		this.salary = salary;
	}
	public void work(){}
	public void work(int hours){}
	@Override
	public String toString() {
		return "Worker [name=" + name + ", age=" + age + ", salary=" + salary + ", addr=" + addr + "]";
	}
	@Override
	public boolean equals(Object obj){
		return this == obj;
		
	}
}
9
	ABCD
10
interface Light{
	void shine();
}

class Lamp{
	public void on(Light light){
		light.shine();
	}
}

public class TestLamp{
	public static void main(String[] args){
		Lamp lamp = new Lamp();
		//1
		class RedLight implements Light{
			@Override
			public void shine() {
				System.out.println("shine in red");
			}
		}
		
		lamp.on(new RedLight());
		//2
		Light l = new Light() {
			@Override
			public void shine() {
				System.out.println("shine in yellow");
			}
		};
		lamp.on(l);
	}
}
QD
8 & 10
package game1;

import java.util.Calendar;

public class TestGame {
	public static void main(String[] args) {
		
		MagicStick stick1 = new GreenStick();
		MagicStick stick2 = new GreenStick();
		Weapon weapon1 = new Bolo();
		Weapon weapon2 = new Pike("jimbo");
		Role role1 = new Magicer("tom", 18, 0, stick2);
		Role role2 = new Soldier("jack", 20, 5);
		Role role3 = new Magicer("jinne", 17, 0, stick1);
		Role role4 = new Soldier("jimbo", 18, 5);
		weapon1.setSoldier((Soldier)role2);
		weapon2.setSoldier((Soldier)role4);
		Team team1 = new Team();
		team1.addMember(role1);
		team1.addMember(role2);
		team1.addMember(role3);
		team1.addMember(role4);
		
		System.out.println(team1.attackSum());
		
		role1.practise();
		role2.practise();
		
		System.out.println(team1.attackSum());
	}

}

interface Role{
	int attack();
	void practise();
}

abstract class NamedRole implements Role{
	String name;
	int age;
}

interface MagicStick{
	int fire();
}

class GreenStick implements MagicStick{

	@Override
	public int fire() {
		int month = Calendar.MONTH;
		if(month > 5 && month < 9){
			return 1;
		}
		return 2;
	}
	
}

class BlackStick implements MagicStick{

	@Override
	public int fire() {
		int month = Calendar.MONTH;
		if(month % 2 == 0){
			return 2;
		}
		return 1;
	}
	
}

interface Weapon{
	void setSoldier(Soldier s);
	int fire();
}

class Bolo implements Weapon{
	private Soldier s;
	@Override
	public void setSoldier(Soldier s) {
		s.setWeapon(this);
		this.s = s;
	}

	@Override
	public int fire() {
		if(s.age >= 18){
			return 100;
		}
		return 50;
	}
}

class Pike implements Weapon{
	private Soldier s;
	private String name;
	
	public Pike(String name) {
		super();
		this.name = name;
	}

	@Override
	public void setSoldier(Soldier s) {
		s.setWeapon(this);
		this.s = s;
	}

	@Override
	public int fire() {
		if(s.name.equals(this.name)){
			return 1000;
		}
		return 25;
	}
}

class Magicer extends NamedRole{
	private int level;
	private MagicStick stick; 
	
	public Magicer(String name, int age, int level, MagicStick stick) {
		super();
		super.age = age;
		super.name = name;
		this.level = level;
		this.stick = stick;
	}

	@Override
	public int attack() {
		return this.level * 5;
	}

	public int getMagicLevel() {
		return level;
	}

	public void setMagicLevel(int level) {
		if(level > 0 && level < 11){
			this.level = level;
		}		
	}

	@Override
	public void practise() {
		if(this.stick == null && this.level < 11){
			this.level++;
		}else if(this.level < 11){
			level += 1 + stick.fire();
		}
	}
}

class Soldier extends NamedRole{
	private int hurt;
	private Weapon weapon;
	
	public Soldier(String name, int age, int hurt) {
		super();
		super.age = age;
		super.name = name;
		this.hurt = hurt;
	}

	public Weapon getWeapon() {
		return weapon;
	}

	public void setWeapon(Weapon weapon) {
		this.weapon = weapon;
	}

	@Override
	public int attack() {
		int sumAttack = this.hurt;
		if(weapon != null){
			sumAttack += weapon.fire();
		}
		return sumAttack;
	}

	public int getAttackNum() {
		return hurt;
	}

	public void setAttackNum(int hurt) {
		this.hurt = hurt;
	}

	@Override
	public void practise() {
		this.hurt += 10;
	}
}

class Team {
	private Role[] team = new Role[6];
	public void addMember(Role role){
		for(int i = 0; i < team.length; i++){
			if(team[i] == null ){
				team[i] = role;
				return;
			}
		}
		System.out.println("队伍已满");
	} 
	public int attackSum(){
		int attackSum = 0;
		for(int i = 0; team[i] != null && i < team.length; i++){
			attackSum += team[i].attack();
		}
		return attackSum;
	}
}
笔记

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值