51 lines
1.9 KiB
Java
51 lines
1.9 KiB
Java
import java.util.Random;
|
|
|
|
public class HardGeneric<T extends EntityAir, U extends IDrawEngines> {
|
|
T[] planes;
|
|
U[] engines;
|
|
private int planesNumber;
|
|
private int enginesNumber;
|
|
private int pictureBoxWidth;
|
|
private int pictureBoxHeight;
|
|
|
|
public HardGeneric(int planesCount, int enginesCount, int width, int height) {
|
|
planesNumber = 0;
|
|
enginesNumber = 0;
|
|
planes = (T[]) new EntityAir[planesCount];
|
|
engines = (U[]) new IDrawEngines[enginesCount];
|
|
pictureBoxHeight = height;
|
|
pictureBoxWidth = width;
|
|
}
|
|
|
|
public int InsertPlanes(T entityPlane) {
|
|
if (planes[planes.length - 1] != null)
|
|
return -1;
|
|
for (int i = planesNumber - 1; i >= 0; i--) {
|
|
planes[i + 1] = planes[i];
|
|
}
|
|
planesNumber++;
|
|
planes[0] = entityPlane;
|
|
return 0;
|
|
}
|
|
|
|
public int InsertEngine(U engine) {
|
|
if (engines[engines.length - 1] != null)
|
|
return -1;
|
|
for (int i = enginesNumber - 1; i >= 0; i--) {
|
|
engines[i + 1] = engines[i];
|
|
}
|
|
enginesNumber++;
|
|
engines[0] = engine;
|
|
return 0;
|
|
}
|
|
|
|
public DrawingAir makeObject() {
|
|
Random rand = new Random();
|
|
EntityAir entity = planes[rand.nextInt(0, planesNumber)];
|
|
IDrawEngines engine = engines[rand.nextInt(0, enginesNumber)];
|
|
if(entity instanceof EntityAirBomber)
|
|
return new DrawingAirBomber(entity.getSpeed(), entity.getWeight(), entity.getBodyColor(), ((EntityAirBomber) entity).getAdditionalColor(),
|
|
((EntityAirBomber) entity).getBombs(), ((EntityAirBomber) entity).getFuel(), pictureBoxWidth, pictureBoxHeight, engine.getType(), engine.getNumber());
|
|
return new DrawingAir(entity.getSpeed(), entity.getWeight(), entity.getBodyColor(), pictureBoxWidth, pictureBoxHeight, engine.getType(), engine.getNumber());
|
|
}
|
|
} |