PIbd21.LyovushkinaA.A.Conta.../ShipGenericDop.java
2023-11-03 23:38:13 +04:00

58 lines
1.8 KiB
Java

import java.util.Random;
import java.util.ArrayList;
public class ShipGenericDop<T extends EntityShip, U extends IDecksDrawing> {
private ArrayList<T> Ships;
private ArrayList<U> Decks;
private int countShips;
private int max_countShips;
private int countDecks;
private int max_countDecks;
private Random rand;
private int _pictureWidth;
private int _pictureHeight;
public ShipGenericDop(int _max_countShips, int _max_countDecks, int pictureWidth, int pictureHeight){
max_countShips = _max_countShips;
max_countDecks = _max_countDecks;
Ships = new ArrayList<T>(max_countShips);
Decks = new ArrayList<U>(max_countDecks);
countShips = 0;
countDecks = 0;
_pictureWidth = pictureWidth;
_pictureHeight = pictureHeight;
rand = new Random();
}
public boolean Add(T ship){
if(ship == null){
return false;
}
if (countShips > max_countShips){
return false;
}
Ships.add(countShips++, ship);
return true;
}
public boolean Add(U deck){
if(deck == null){
return false;
}
if (countDecks > max_countDecks){
return false;
}
Decks.add(countDecks++, deck);
return true;
}
public DrawingShip getObjectRandomShip(){
if(countShips == 0 || countDecks == 0){
return null;
}
int i = rand.nextInt(countShips);
int j = rand.nextInt(countDecks);
if(Ships.get(i) instanceof EntityContainerShip){
return new DrawingContainerShip((EntityContainerShip)Ships.get(i), (IDecksDrawing)Decks.get(j), _pictureWidth, _pictureHeight);
}
else{
return new DrawingShip((EntityShip)Ships.get(i),_pictureWidth, _pictureHeight);
}
}
}