From 2577e0d87934007c3324c4242b7cf030842f18ec Mon Sep 17 00:00:00 2001 From: Alenka Date: Sat, 9 Dec 2023 00:17:07 +0400 Subject: [PATCH] Done --- AbstractStrategy.java | 45 +--------- DopClassMixed.java | 34 ++++++++ DopClassRect.java | 19 ++-- DopClassTriangle.java | 39 --------- DrawingAdvancedCruiser.java | 72 +++++----------- DrawingCruiser.java | 167 +++++++++++++++--------------------- DrawingObjectCruiser.java | 7 +- EntityAdvancedCruiser.java | 18 +--- EntityCruiser.java | 2 - GameFrame.java | 96 +++++++-------------- IMoveableObject.java | 11 --- MoveToBorder.java | 10 +-- MoveToCenter.java | 8 +- NumberOfWheels.java | 8 +- ObjectParameters.java | 31 +------ Status.java | 3 - 16 files changed, 171 insertions(+), 399 deletions(-) create mode 100644 DopClassMixed.java delete mode 100644 DopClassTriangle.java diff --git a/AbstractStrategy.java b/AbstractStrategy.java index af7eff4..03e8b4d 100644 --- a/AbstractStrategy.java +++ b/AbstractStrategy.java @@ -1,30 +1,9 @@ public abstract class AbstractStrategy { - /// - /// Перемещаемый объект - /// private IMoveableObject _moveableObject; - /// - /// Статус перемещения - /// private Status _state = Status.NotInit; - /// - /// Ширина поля - /// protected int FieldWidth; - /// - /// Высота поля - /// protected int FieldHeight; - /// - /// Статус перемещения - /// public Status GetStatus() { return _state; } - /// - /// Установка данных - /// - /// Перемещаемый объект - /// Ширина поля - /// Высота поля public void SetData(IMoveableObject moveableObject, int width, int height) { @@ -38,12 +17,8 @@ public abstract class AbstractStrategy { FieldWidth = width; FieldHeight = height; } - /// - /// Шаг перемещения - /// public void MakeStep() { - if (_state != Status.InProgress) { return; @@ -55,10 +30,6 @@ public abstract class AbstractStrategy { } MoveToTarget(); } - /// - /// Перемещение влево - /// - /// Результат перемещения (true - удалось переместиться, false - неудача) protected boolean MoveLeft() { return MoveTo(Direction.Left);}; protected boolean MoveRight(){return MoveTo(Direction.Right);} protected boolean MoveUp(){return MoveTo(Direction.Up);} @@ -72,20 +43,8 @@ public abstract class AbstractStrategy { } return _moveableObject.GetStep(); } - /// - /// Перемещение к цели - /// protected abstract void MoveToTarget(); - /// - /// Достигнута ли цель - /// - /// protected abstract boolean IsTargetDestinaion(); - /// - /// Попытка перемещения в требуемом направлении - /// - /// Направление - /// Результат попытки (true - удалось переместиться, false - неудача) private boolean MoveTo(Direction directionType) { if (_state != Status.InProgress) @@ -100,7 +59,5 @@ public abstract class AbstractStrategy { else { return false; } - } -} - +} \ No newline at end of file diff --git a/DopClassMixed.java b/DopClassMixed.java new file mode 100644 index 0000000..ede36dd --- /dev/null +++ b/DopClassMixed.java @@ -0,0 +1,34 @@ +import java.awt.*; +public class DopClassMixed implements IDop{ + public int numOfWheels; + public DopClassMixed(int num){ + numOfWheels = num; + } + public void setNumOfWheels(String num){ + switch (Integer.valueOf(num)){ + case 2: + numOfWheels = NumberOfWheelsEnum.wheel_2.value; + break; + case 3: + numOfWheels = NumberOfWheelsEnum.wheel_3.value; + break; + case 4: + numOfWheels = NumberOfWheelsEnum.wheel_4.value; + break; + default: + numOfWheels = NumberOfWheelsEnum.wheel_2.value; + } + } + public void drawWheels(Graphics g, int _startPosX, int _startPosY, Color c) { + g.setColor(c); + + if (numOfWheels >= 2) { + g.fillRect(_startPosX+55, _startPosY+20, 20, 15); + g.fillRect(_startPosX+55, _startPosY+40, 20, 15); + } if (numOfWheels >= 3) { + g.fillOval(_startPosX+30, _startPosY+20, 20, 15); + } if (numOfWheels >= 4) { + g.fillRect(_startPosX+85, _startPosY+20, 20, 15); + } + } +} \ No newline at end of file diff --git a/DopClassRect.java b/DopClassRect.java index 555159f..d73270c 100644 --- a/DopClassRect.java +++ b/DopClassRect.java @@ -1,7 +1,5 @@ import java.awt.*; - public class DopClassRect implements IDop{ - public int numOfWheels; public DopClassRect(int num){ numOfWheels = num; @@ -20,23 +18,16 @@ public class DopClassRect implements IDop{ default: numOfWheels = NumberOfWheelsEnum.wheel_2.value; } - } - public void drawWheels(Graphics g, int _startPosX, int _startPosY, Color c) { g.setColor(c); - System.out.println("WHITE"); if (numOfWheels >= 2) { - g.fillRect(_startPosX, _startPosY + 35 + 10, 15, 15); - g.fillRect(_startPosX + 95, _startPosY + 35 + 10, 15, 15); - + g.fillRect(_startPosX+55, _startPosY+15, 20, 15); + g.fillRect(_startPosX+55, _startPosY+30, 20, 15); } if (numOfWheels >= 3) { - g.fillRect(_startPosX, _startPosY + 35 + 10, 15, 15); - g.fillRect(_startPosX + 15, _startPosY + 35 + 10, 15, 15); - + g.fillRect(_startPosX+30, _startPosY+15, 20, 15); } if (numOfWheels >= 4) { - g.fillRect(_startPosX + 95 - 20, _startPosY + 35 + 10, 15, 15); + g.fillRect(_startPosX + 60, _startPosY + 35, 15, 15); } } -} - +} \ No newline at end of file diff --git a/DopClassTriangle.java b/DopClassTriangle.java deleted file mode 100644 index 119202e..0000000 --- a/DopClassTriangle.java +++ /dev/null @@ -1,39 +0,0 @@ -import java.awt.*; - -public class DopClassTriangle implements IDop{ - public int numOfWheels; - - public DopClassTriangle(int num){ - numOfWheels = num; - } - public void setNumOfWheels(String num){ - switch (Integer.valueOf(num)){ - case 2: - numOfWheels = NumberOfWheelsEnum.wheel_2.value; - break; - case 3: - numOfWheels = NumberOfWheelsEnum.wheel_3.value; - break; - case 4: - numOfWheels = NumberOfWheelsEnum.wheel_4.value; - break; - default: - numOfWheels = NumberOfWheelsEnum.wheel_2.value; - } - - } - - public void drawWheels(Graphics g, int _startPosX, int _startPosY, Color c) { - g.setColor(c); - - if (numOfWheels >= 2) { - g.fillPolygon(new int[]{_startPosX, _startPosX + 15/2, _startPosX + 15}, new int[]{_startPosY + 35 + 10, _startPosY + 35 + 10 + 15/2, _startPosY + 35 + 10}, 3); - g.fillPolygon( new int[]{_startPosX + 95, _startPosX + 95 + 15/2, _startPosX + 95 + 15}, new int[]{_startPosY + 35 + 10, _startPosY + 35 + 10 + 15/2, _startPosY + 35 + 10}, 3); - } if (numOfWheels >= 3) { - g.fillPolygon(new int[]{_startPosX + 15, _startPosX + 15 + 15/2, _startPosX + 15 + 15}, new int[]{_startPosY + 35 + 10, _startPosY + 35 + 10 + 15/2, _startPosY + 35 + 10}, 3); - } if (numOfWheels >= 4) { - g.fillPolygon(new int[]{_startPosX + 95 - 20, _startPosX + 95 - 20 + 15/2, _startPosX + 95 - 20 + 15}, new int[]{_startPosY + 35 + 10, _startPosY + 35 + 10 + 15/2, _startPosY + 35 + 10}, 3); - } - } -} - diff --git a/DrawingAdvancedCruiser.java b/DrawingAdvancedCruiser.java index 18a53f9..ccdb085 100644 --- a/DrawingAdvancedCruiser.java +++ b/DrawingAdvancedCruiser.java @@ -1,77 +1,47 @@ - import java.awt.*; - public class DrawingAdvancedCruiser extends DrawingCruiser{ - EntityAdvancedCruiser EntityCar; - - - public DrawingAdvancedCruiser(int speed, double weight, Color bodyColor, Color additionalColor, boolean bodyKit, boolean tent, boolean ornamentWheels, int width, int height) { + EntityAdvancedCruiser EntityCruiser; + public DrawingAdvancedCruiser(int speed, double weight, Color bodyColor, Color additionalColor, boolean helicopterPad, boolean coating, boolean ornamentWheels, int width, int height) { super(speed, weight, bodyColor, width, height, 110, 60); { - EntityCar = new EntityAdvancedCruiser(speed, weight, bodyColor, additionalColor, bodyKit, tent); + EntityCruiser = new EntityAdvancedCruiser(speed, weight, bodyColor, additionalColor, helicopterPad, coating); } } - public DrawingAdvancedCruiser(EntityAdvancedCruiser entityDumpTruck, IDop wheels) + public DrawingAdvancedCruiser(EntityAdvancedCruiser entityAdvancedCruiser, IDop wheels) { - super(entityDumpTruck, wheels); + super(entityAdvancedCruiser, wheels); { - EntityCar = entityDumpTruck; + EntityCruiser = entityAdvancedCruiser; this.wheels = wheels; } } - - - public EntityAdvancedCruiser getEntityDumpTruck(){ - return EntityCar; + public EntityAdvancedCruiser getentityAdvancedCruiser(){ + return EntityCruiser; } - public void DrawTransport(Graphics g) { - EntityAdvancedCruiser dumpTruck; - if (EntityCar == null ) + EntityAdvancedCruiser advancedCruiser; + if (EntityCruiser == null ) { return; } - - - Color addBrush = EntityCar.AdditionalColor; - Color brush = EntityCar.BodyColor; - + Color addBrush = EntityCruiser.AdditionalColor; + Color brush = EntityCruiser.BodyColor; super.DrawTransport(g); - if (EntityCar.HelicopterPad) + if (EntityCruiser.HelicopterPad) { g.setColor(addBrush); - int[] pointsX = new int[3]; - int[] pointsY = new int[3]; - pointsX[0] = _startPosX; pointsY[0] = _startPosY + 35; - pointsX[1] = _startPosX + 85; pointsY[1] = _startPosY; - pointsX[2] = _startPosX + 85; pointsY[2] = _startPosY + 35; - g.fillPolygon(pointsX, pointsY, 3); - + g.drawRect(_startPosX + 35, + _startPosY + 23, 15, 15); + g.drawRect(_startPosX + 50, + _startPosY + 19, 30, 25); } - - if (EntityCar.Coating) + if (EntityCruiser.Coating) { - g.setColor(addBrush); - int[] pointsX = new int[4]; - int[] pointsY = new int[4]; - pointsX[0] = _startPosX; pointsY[0] = _startPosY + 35; - pointsX[1] = _startPosX; pointsY[1] = _startPosY; - pointsX[2] = _startPosX + 85; pointsY[2] = _startPosY; - pointsX[3] = _startPosX + 85; pointsY[3] = _startPosY + 35; - g.fillPolygon(pointsX, pointsY, 4); + g.drawOval(_startPosX + 70, + _startPosY + 29, 20, 20); } - - if (EntityCar.HelicopterPad && EntityCar.Coating) - { - g.setColor(brush); - int x = _startPosX; - int y = _startPosY - 8; - g.fillRect(_startPosX, _startPosY, 95, 3); - - } - if (wheels == null){return;} wheels.drawWheels(g, _startPosX, _startPosY, brush); } -} +} \ No newline at end of file diff --git a/DrawingCruiser.java b/DrawingCruiser.java index aa6fc81..0600b3e 100644 --- a/DrawingCruiser.java +++ b/DrawingCruiser.java @@ -2,84 +2,71 @@ import java.awt.*; public class DrawingCruiser { public EntityCruiser EntityCruiser; - private int _pictureWidth; - private int _pictureHeight; - protected int _startPosX; - protected int _startPosY; + private int _cruiserWidth = 110; + private int _cruiserHeight = 60; - private int _carWidth = 110; + public int GetPosX() { + return _startPosX; + } - private int _carHeight = 60; + ; + + public int GetPosY() { + return _startPosY; + } + + public int GetWidth() { + return _cruiserWidth; + } + + ; + + public int GetHeight() { + return _cruiserHeight; + } - /// - /// Координата X объекта - /// - public int GetPosX(){return _startPosX;}; - /// - /// Координата Y объекта - /// - public int GetPosY(){return _startPosY;} - /// - /// РЁРёСЂРёРЅР° объекта - /// - public int GetWidth(){return _carWidth;}; - /// - /// Высота объекта - /// - public int GetHeight(){return _carHeight;} public IDop wheels; - - - - public DrawingCruiser(int speed, double weight, Color bodyColor, int width, int height) - { - if(width < _carWidth || height < _carHeight) - { + public DrawingCruiser(int speed, double weight, Color bodyColor, int width, int height) { + if (width < _cruiserWidth || height < _cruiserHeight) { return; } _pictureWidth = width; _pictureHeight = height; - EntityCruiser = new EntityCruiser(speed, weight, bodyColor); - } - public EntityCruiser getEntity(){ + + public EntityCruiser getEntity() { return EntityCruiser; } protected DrawingCruiser(int speed, double weight, Color bodyColor, int - width, int height, int carWidth, int carHeight) - { - if (width <= _carWidth || height <= _carHeight) - { + width, int height, int cruiserWidth, int cruiserHeight) { + if (width <= _cruiserWidth || height <= _cruiserHeight) { return; } _pictureWidth = width; _pictureHeight = height; - _carWidth = carWidth; - _carHeight = carHeight; + _cruiserWidth = cruiserWidth; + _cruiserHeight = cruiserHeight; EntityCruiser = new EntityCruiser(speed, weight, bodyColor); } - public DrawingCruiser(EntityCruiser entityCar, IDop wheels) - { - EntityCruiser = entityCar; + public DrawingCruiser(EntityCruiser entityCruiser, IDop wheels) { + EntityCruiser = entityCruiser; this.wheels = wheels; _pictureWidth = 1000; _pictureHeight = 1000; - _carWidth = 110; - _carHeight = 60; + _cruiserWidth = 110; + _cruiserHeight = 60; } - public void SetPosition(int x, int y) - { - if (x < 0 || x >= _pictureWidth || y < 0 || y >= _pictureHeight) - { + public void SetPosition(int x, int y) { + if (x < 0 || x >= _pictureWidth || y < 0 || y >= _pictureHeight) { _startPosX = 0; _startPosY = 0; } @@ -87,84 +74,72 @@ public class DrawingCruiser { _startPosY = y; } - public void MoveTransport(Direction direction) - { - if (!CanMove(direction) || EntityCruiser == null) - { + public void MoveTransport(Direction direction) { + if (!CanMove(direction) || EntityCruiser == null) { return; } - switch (direction) - { - //влево + switch (direction) { case Left: - _startPosX -= (int)EntityCruiser.Step(); + _startPosX -= (int) EntityCruiser.Step(); break; - //вверх case Up: - _startPosY -= (int)EntityCruiser.Step(); + _startPosY -= (int) EntityCruiser.Step(); break; - // вправо case Right: - _startPosX += (int)EntityCruiser.Step(); + _startPosX += (int) EntityCruiser.Step(); break; - //РІРЅРёР· case Down: - _startPosY += (int)EntityCruiser.Step(); + _startPosY += (int) EntityCruiser.Step(); break; } } - public boolean CanMove(Direction direction) - { - if (EntityCruiser == null) - { + public boolean CanMove(Direction direction) { + if (EntityCruiser == null) { return false; } - switch (direction) - { - //влево + switch (direction) { case Left: - return (_startPosX - EntityCruiser.Step()) > 0; - - //вверх + return (_startPosX - EntityCruiser.Step()) > 0; case Up: return _startPosY - EntityCruiser.Step() > 0; - - // вправо case Right: - return _startPosX + EntityCruiser.Step() + _carWidth < _pictureWidth; - - //РІРЅРёР· + return _startPosX + EntityCruiser.Step() + _cruiserWidth < _pictureWidth; case Down: - return _startPosY + EntityCruiser.Step() + _carHeight < _pictureHeight; - + return _startPosY + EntityCruiser.Step() + _cruiserHeight < _pictureHeight; default: return false; - } } - - public void DrawTransport(Graphics g) - { - - if (EntityCruiser == null) - { + public void DrawTransport(Graphics g) { + if (EntityCruiser == null) { return; } - g.setColor(EntityCruiser.BodyColor); + g.drawRect(_startPosX + 9, _startPosY + 15, 10, 30); + g.drawRect(_startPosX + 90, _startPosY + 15, 10, + 30); + g.drawRect(_startPosX + 20, _startPosY + 4, 70, 52); - //границы автомобиля - g.fillRect(_startPosX, _startPosY + 35, 110, 10); - g.fillRect( _startPosX + 85, _startPosY, 25, 35); - /*g.fillOval( _startPosX, _startPosY + 35 + 10, 15, 15); - g.fillOval( _startPosX + 15, _startPosY + 35 + 10, 15, 15); - g.fillOval( _startPosX + 95, _startPosY + 35 + 10, 15, 15);*/ + g.fillRect(_startPosX + 10, _startPosY + 15, 10, 30); + g.fillRect(_startPosX + 90, _startPosY + 15, 10, 30); + g.fillRect(_startPosX + 20, _startPosY + 5, 70, 50); + g.fillRect(_startPosX + 10, _startPosY + 15, 10, 30); + g.fillRect(_startPosX + 90, _startPosY + 15, 10, 30); + g.fillRect(_startPosX + 20, _startPosY + 5, 70, 50); - if (wheels == null){return;} + Point[] points1 = new Point[3]; + points1[0] = new Point(_startPosX + 100, _startPosY + 5); + points1[1] = new Point(_startPosX + 100, _startPosY + 55); + points1[2] = new Point(_startPosX + 150, _startPosY + 30); + g.fillPolygon(new int[]{points1[0].x, points1[1].x, points1[2].x}, + new int[]{points1[0].y, points1[1].y, points1[2].y}, 3); + g.fillRect(_startPosX + 5, _startPosY + 15, 10, 10); + g.fillRect(_startPosX + 5, _startPosY + 35, 10, 10); + if (wheels == null) { + return; + } wheels.drawWheels(g, _startPosX, _startPosY, EntityCruiser.BodyColor); } - public IMoveableObject GetMoveableObject(){return new DrawingObjectCruiser(this);} - -} +} \ No newline at end of file diff --git a/DrawingObjectCruiser.java b/DrawingObjectCruiser.java index ef171ce..045838a 100644 --- a/DrawingObjectCruiser.java +++ b/DrawingObjectCruiser.java @@ -1,29 +1,24 @@ public class DrawingObjectCruiser implements IMoveableObject { private DrawingCruiser _drawningCruiser = null; - public DrawingObjectCruiser(DrawingCruiser drawningCruiser) { _drawningCruiser = drawningCruiser; } - public ObjectParameters GetObjectPosition() { if (_drawningCruiser == null || _drawningCruiser.EntityCruiser == null) { return null; } return new ObjectParameters(_drawningCruiser.GetPosX(), _drawningCruiser.GetPosY(), _drawningCruiser.GetWidth(), _drawningCruiser.GetHeight()); } - public int GetStep() { return (int) (_drawningCruiser.EntityCruiser.Step()); } - public boolean CheckCanMove(Direction direction) { if (_drawningCruiser.CanMove(direction)){ return true; } return false; } - public void MoveObject(Direction direction) { _drawningCruiser.MoveTransport(direction); } -} +} \ No newline at end of file diff --git a/EntityAdvancedCruiser.java b/EntityAdvancedCruiser.java index 352e8a3..91dc4d0 100644 --- a/EntityAdvancedCruiser.java +++ b/EntityAdvancedCruiser.java @@ -1,22 +1,8 @@ import java.awt.*; - public class EntityAdvancedCruiser extends EntityCruiser{ - /// - /// Дополнительный цвет (для опциональных элементов) - /// public Color AdditionalColor; - - /// - /// Признак (опция) наличия кузова - /// public boolean HelicopterPad ; - - /// - /// Признак (опция) наличия tent - /// public boolean Coating ; - - public EntityAdvancedCruiser(int speed, double weight, Color bodyColor, Color additionalColor, boolean helicopterPad, boolean coating) { @@ -26,6 +12,4 @@ public class EntityAdvancedCruiser extends EntityCruiser{ Coating = coating; } -} - - +} \ No newline at end of file diff --git a/EntityCruiser.java b/EntityCruiser.java index b30d1cb..5248f31 100644 --- a/EntityCruiser.java +++ b/EntityCruiser.java @@ -1,12 +1,10 @@ import java.awt.*; - public class EntityCruiser { public int Speed; public double Weight; public Color BodyColor; public double Step() {return (double)Speed * 100 / Weight;}; public boolean OrnamentWheels; - public EntityCruiser(int speed, double weight, Color bodyColor) { Speed = speed; diff --git a/GameFrame.java b/GameFrame.java index 1f1c42e..408581c 100644 --- a/GameFrame.java +++ b/GameFrame.java @@ -9,7 +9,7 @@ public class GameFrame extends JFrame { GameFrame() { this.setSize(710, 535); - this.setTitle("DumpTruck"); + this.setTitle("Cruiser"); this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); this.setResizable(false); this.setLocationRelativeTo(null); @@ -29,8 +29,8 @@ public class GameFrame extends JFrame { static final int SCREEN_H = 500; int xx = 0; int yy = 0; - private DrawingAdvancedCruiser _drawningDumpTruck; - private DrawingCruiser _drawningCar; + private DrawingAdvancedCruiser _drawningAdvancedCruiser; + private DrawingCruiser _drawningCruiser; private AbstractStrategy _abstractStrategy; GamePanel() { @@ -38,81 +38,76 @@ public class GameFrame extends JFrame { this.setPreferredSize(new Dimension(SCREEN_W, SCREEN_H)); GridBagConstraints layers = new GridBagConstraints(); - JButton buttonCar = new JButton("Создать грузовик"); - buttonCar.addActionListener(new ActionListener() { + JButton buttonCruiser = new JButton("Создать простой объект"); + buttonCruiser.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Random random = new Random(); - _drawningCar = new DrawingCruiser(random.nextInt(100, 300), + _drawningCruiser = new DrawingCruiser(random.nextInt(100, 300), random.nextInt(1000, 3000), Color.getHSBColor(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), GamePanel.SCREEN_W, GamePanel.SCREEN_H); - _drawningCar.SetPosition(random.nextInt(10, 100), random.nextInt(10, + _drawningCruiser.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); int ornament = random.nextInt(1, 4); switch (ornament){ case 1: - _drawningCar.wheels = new NumberOfWheels(random.nextInt(2, 5)); + _drawningCruiser.wheels = new NumberOfWheels(random.nextInt(2, 5)); break; case 2: - _drawningCar.wheels = new DopClassRect(random.nextInt(2, 5)); + _drawningCruiser.wheels = new DopClassRect(random.nextInt(2, 5)); break; default: - _drawningCar.wheels = new DopClassTriangle(random.nextInt(2, 5)); + _drawningCruiser.wheels = new DopClassMixed(random.nextInt(2, 5)); break; } repaint(); } }); - buttonCar.setBounds(20 + 150, 390, 120, 30); - this.add(buttonCar); + buttonCruiser.setBounds(20 + 150, 390, 120, 30); + this.add(buttonCruiser); - JButton buttonDumpCar = new JButton("Создать самосвал"); - buttonDumpCar.addActionListener(new ActionListener() { + JButton buttonAdvancedCruiser = new JButton("Создать продвинутый объект"); + buttonAdvancedCruiser.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { Random random = new Random(); - System.out.println("F"); - _drawningCar = new DrawingAdvancedCruiser(random.nextInt(100, 300), + _drawningCruiser = new DrawingAdvancedCruiser(random.nextInt(100, 300), random.nextInt(1000, 3000), Color.getHSBColor(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), Color.getHSBColor(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256)), random.nextBoolean(),random.nextBoolean(),random.nextBoolean(), GamePanel.SCREEN_W, GamePanel.SCREEN_H); //TODO - _drawningCar.SetPosition(random.nextInt(10, 100), random.nextInt(10, + _drawningCruiser.SetPosition(random.nextInt(10, 100), random.nextInt(10, 100)); int ornament = random.nextInt(1, 4); switch (ornament){ case 1: - _drawningCar.wheels = new NumberOfWheels(random.nextInt(2, 5)); + _drawningCruiser.wheels = new NumberOfWheels(random.nextInt(2, 5)); break; case 2: - _drawningCar.wheels = new DopClassRect(random.nextInt(2, 5)); + _drawningCruiser.wheels = new DopClassRect(random.nextInt(2, 5)); break; default: - _drawningCar.wheels = new DopClassTriangle(random.nextInt(2, 5)); + _drawningCruiser.wheels = new DopClassMixed(random.nextInt(2, 5)); break; } - - repaint(); } }); - buttonDumpCar.setBounds( 20, 390, 120, 30); - this.add(buttonDumpCar); - + buttonAdvancedCruiser.setBounds( 20, 390, 120, 30); + this.add(buttonAdvancedCruiser); JTextField textStrategy = new JTextField(); textStrategy.setBounds(550, 20, 120, 30); this.add(textStrategy); - JButton buttonStep = new JButton("Шаг"); buttonStep.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - if (_drawningCar == null) + if (_drawningCruiser == null) { return; } @@ -131,39 +126,30 @@ public class GameFrame extends JFrame { if (_abstractStrategy == null) { - return; } - _abstractStrategy.SetData(new DrawingObjectCruiser(_drawningCar), SCREEN_W, SCREEN_H); - //textStrategy.setText(); + _abstractStrategy.SetData(new DrawingObjectCruiser(_drawningCruiser), SCREEN_W, SCREEN_H); } if (_abstractStrategy == null) { - return; } - System.out.println("step"); _abstractStrategy.MakeStep(); repaint(); if (_abstractStrategy.GetStatus() == Status.Finish) { - //comboBoxStrategy.Enabled = true; _abstractStrategy = null; } } }); buttonStep.setBounds(550, 60, 70, 30); this.add(buttonStep); - - - JPanel panel = new JPanel(new GridBagLayout()); - JButton up = new BasicArrowButton(BasicArrowButton.NORTH); up.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - _drawningCar.MoveTransport(Direction.Up); + _drawningCruiser.MoveTransport(Direction.Up); repaint(); } }); @@ -171,7 +157,7 @@ public class GameFrame extends JFrame { left.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - _drawningCar.MoveTransport(Direction.Left); + _drawningCruiser.MoveTransport(Direction.Left); repaint(); } }); @@ -179,7 +165,7 @@ public class GameFrame extends JFrame { down.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - _drawningCar.MoveTransport(Direction.Down); + _drawningCruiser.MoveTransport(Direction.Down); repaint(); } }); @@ -187,12 +173,10 @@ public class GameFrame extends JFrame { right.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - _drawningCar.MoveTransport(Direction.Right); + _drawningCruiser.MoveTransport(Direction.Right); repaint(); } }); - - up.setBounds(570, 350, 30, 30); this.add(up); @@ -205,35 +189,15 @@ public class GameFrame extends JFrame { right.setBounds(570 + 40, 350 + 40, 30, 30); this.add(right); } - - void setTruck(DrawingAdvancedCruiser _truck) { - _drawningDumpTruck = _truck; - } - - private void Draw() - { - if (_drawningCar == null) - { - return; - } - - Graphics gr =new DebugGraphics(); - _drawningCar.DrawTransport(gr); - - } @Override public void paintComponent(Graphics g) { super.paintComponent(g); draw(g); } - public void draw(Graphics g) { - if (_drawningCar != null) { - _drawningCar.DrawTransport(g); + if (_drawningCruiser != null) { + _drawningCruiser.DrawTransport(g); } } - } -} - - +} \ No newline at end of file diff --git a/IMoveableObject.java b/IMoveableObject.java index 1fd5c4a..41d9c7b 100644 --- a/IMoveableObject.java +++ b/IMoveableObject.java @@ -1,17 +1,6 @@ public interface IMoveableObject { - /// - /// Получение координаты X объекта - /// public ObjectParameters GetObjectPosition(); - /// - /// Шаг объекта - /// public int GetStep(); - boolean CheckCanMove(Direction direction); - /// - /// Изменение направления пермещения объекта - /// - /// Направление void MoveObject(Direction direction); } \ No newline at end of file diff --git a/MoveToBorder.java b/MoveToBorder.java index e63d8bb..f5c7e8e 100644 --- a/MoveToBorder.java +++ b/MoveToBorder.java @@ -11,27 +11,19 @@ public class MoveToBorder extends AbstractStrategy { objParams.DownBorder() <= FieldHeight && objParams.DownBorder() + GetStep() >= FieldHeight; } - protected void MoveToTarget() { - var objParams = GetObjectParameters(); if (objParams == null) { return; } var diffX = FieldWidth - objParams.ObjectMiddleHorizontal(); if (Math.abs(diffX) > GetStep()) { - MoveRight(); - } var diffY = FieldHeight - objParams.ObjectMiddleVertical(); if (Math.abs(diffY) > GetStep()) { - MoveDown(); - } } - -} - +} \ No newline at end of file diff --git a/MoveToCenter.java b/MoveToCenter.java index 47fc647..b7b1c30 100644 --- a/MoveToCenter.java +++ b/MoveToCenter.java @@ -10,15 +10,12 @@ public class MoveToCenter extends AbstractStrategy { objParams.ObjectMiddleVertical() <= FieldHeight / 2 && objParams.ObjectMiddleVertical() + GetStep() >= FieldHeight / 2); } - protected void MoveToTarget() { - var objParams = GetObjectParameters(); if (objParams == null) { return; } - var diffX = objParams.ObjectMiddleHorizontal() - FieldWidth / 2; if (Math.abs(diffX) > GetStep()) { if (diffX > 0) { @@ -38,7 +35,4 @@ public class MoveToCenter extends AbstractStrategy { } } } - -} - - +} \ No newline at end of file diff --git a/NumberOfWheels.java b/NumberOfWheels.java index d48dc38..3bb32e1 100644 --- a/NumberOfWheels.java +++ b/NumberOfWheels.java @@ -24,12 +24,12 @@ public class NumberOfWheels implements IDop{ public void drawWheels(Graphics g, int _startPosX, int _startPosY, Color c) { g.setColor(c); if (numOfWheels >= 2) { - g.fillOval(_startPosX, _startPosY + 35 + 10, 15, 15); - g.fillOval(_startPosX + 95, _startPosY + 35 + 10, 15, 15); + g.fillOval(_startPosX+55, _startPosY+15, 20, 15); + g.fillOval(_startPosX+55, _startPosY+30, 20, 15); } if (numOfWheels >= 3) { - g.fillOval(_startPosX + 15, _startPosY + 35 + 10, 15, 15); + g.fillOval(_startPosX+30, _startPosY+15, 20, 15); } if(numOfWheels >= 4){ - g.fillOval(_startPosX + 95 - 20, _startPosY + 35 + 10, 15, 15); + g.fillOval(_startPosX+85, _startPosY+15, 20, 15); } } } diff --git a/ObjectParameters.java b/ObjectParameters.java index ea3174c..89ca4cf 100644 --- a/ObjectParameters.java +++ b/ObjectParameters.java @@ -4,40 +4,12 @@ public class ObjectParameters { private final int _y; private final int _width; private final int _height; - - - /// - /// Левая граница - /// public int LeftBorder(){return _x;} - - /// - /// Верхняя граница - /// public int TopBorder(){return _y;} - /// - /// Правая граница - /// public int RightBorder(){return _x + _width;} - /// - /// Нижняя граница - /// public int DownBorder(){return _y + _height;} - /// - /// Середина объекта - /// public int ObjectMiddleHorizontal(){return _x + _width / 2;} - /// - /// Середина объекта - /// public int ObjectMiddleVertical(){return _y + _height / 2;} - /// - /// Конструктор - /// - /// Координата X - /// Координата Y - /// Ширина - /// Высота public ObjectParameters(int x, int y, int width, int height) { _x = x; @@ -45,5 +17,4 @@ public class ObjectParameters { _width = width; _height = height; } -} - +} \ No newline at end of file diff --git a/Status.java b/Status.java index 1df7125..388d5b4 100644 --- a/Status.java +++ b/Status.java @@ -1,8 +1,5 @@ public enum Status { - - NotInit, InProgress, Finish - } \ No newline at end of file