3. Доп.задание
This commit is contained in:
parent
b15fd30fb1
commit
e9261e6b51
@ -1,8 +1,7 @@
|
||||
import java.awt.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.Random;
|
||||
import java.util.*;
|
||||
|
||||
public class DrawingArmoredCar {
|
||||
public class DrawingArmoredCar implements Iterable{
|
||||
protected EntityArmoredCar armoredCar;
|
||||
|
||||
protected float startPosX;
|
||||
@ -19,6 +18,8 @@ public class DrawingArmoredCar {
|
||||
|
||||
protected IDrawingCaterpillar drawingCaterpillar;
|
||||
|
||||
private Object cursor = null;
|
||||
|
||||
public EntityArmoredCar getArmoredCar() {
|
||||
return armoredCar;
|
||||
}
|
||||
@ -151,4 +152,35 @@ public class DrawingArmoredCar {
|
||||
hashMap.put("Bottom", startPosY + carHeight);
|
||||
return hashMap;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Iterator iterator() {
|
||||
return new ArmoredCarIterator();
|
||||
}
|
||||
|
||||
protected ArrayList<Object> getParts() {
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
list.add(armoredCar.getSpeed());
|
||||
list.add(armoredCar.getWeight());
|
||||
list.add(armoredCar.getBodyColor());
|
||||
list.add(drawingCaterpillar);
|
||||
list.add(drawingCaterpillar.getNumRinks());
|
||||
return list;
|
||||
}
|
||||
|
||||
protected class ArmoredCarIterator implements Iterator {
|
||||
Deque<Object> partsCar = new LinkedList<>(getParts());
|
||||
@Override
|
||||
public boolean hasNext() {
|
||||
return !partsCar.isEmpty();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Object next() throws NoSuchElementException{
|
||||
if (partsCar.isEmpty())
|
||||
throw new NoSuchElementException();
|
||||
return partsCar.pollFirst();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -64,6 +64,8 @@ public class DrawingObjectArmoredCar implements IDrawingObject{
|
||||
{
|
||||
return false;
|
||||
}
|
||||
if (armoredCar.drawingCaterpillar.getClass() != otherCar.armoredCar.drawingCaterpillar.getClass())
|
||||
return false;
|
||||
var car = armoredCar.armoredCar;
|
||||
var otherCarCar = otherCar.armoredCar.armoredCar;
|
||||
|
||||
|
@ -1,4 +1,5 @@
|
||||
import java.awt.*;
|
||||
import java.util.ArrayList;
|
||||
|
||||
public class DrawingTank extends DrawingArmoredCar{
|
||||
public DrawingTank(int speed, float weight, Color bodyColor, Color dopColor,
|
||||
@ -40,4 +41,23 @@ public class DrawingTank extends DrawingArmoredCar{
|
||||
armoredCar = new EntityTank(tank.getSpeed(), tank.getWeight(), tank.getBodyColor(),
|
||||
color, tank.isTowerWeapon(), tank.isAMachineGun());
|
||||
}
|
||||
|
||||
@Override
|
||||
protected ArrayList<Object> getParts() {
|
||||
ArrayList<Object> list = new ArrayList<>();
|
||||
list.add(armoredCar.getSpeed());
|
||||
list.add(armoredCar.getWeight());
|
||||
list.add(armoredCar.getBodyColor());
|
||||
|
||||
if (armoredCar instanceof EntityTank tank) {
|
||||
list.add(tank.getDopColor());
|
||||
list.add(tank.isTowerWeapon());
|
||||
list.add(tank.isAMachineGun());
|
||||
}
|
||||
|
||||
list.add(drawingCaterpillar);
|
||||
list.add(drawingCaterpillar.getNumRinks());
|
||||
|
||||
return list;
|
||||
}
|
||||
}
|
||||
|
@ -4,7 +4,7 @@ import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.Comparator;
|
||||
|
||||
public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends AbstractMap> {
|
||||
public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends AbstractMap> implements Comparable{
|
||||
|
||||
private int _pictureWidth;
|
||||
|
||||
@ -175,4 +175,18 @@ public class MapWithSetArmoredCarsGeneric<T extends IDrawingObject, U extends Ab
|
||||
public void Sort(Comparator<T> comparator) {
|
||||
_setCars.SortSet(comparator);
|
||||
}
|
||||
|
||||
@Override
|
||||
public int compareTo(Object o) {
|
||||
if (o == null)
|
||||
return 1;
|
||||
var other = (MapWithSetArmoredCarsGeneric) o;
|
||||
if (_setCars.getCount() != other._setCars.getCount())
|
||||
return Integer.compare(_setCars.getCount(), other._setCars.getCount());
|
||||
if (_placeSizeHeight != other._placeSizeHeight)
|
||||
return Integer.compare(_placeSizeHeight, other._placeSizeHeight);
|
||||
if (_placeSizeWidth != other._placeSizeWidth)
|
||||
return Integer.compare(_placeSizeWidth, other._placeSizeWidth);
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user