2023-12-30 09:28:39 +04:00

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