From 6bdd753c333e1e7dde1cb78615df5ac77fb557f6 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Thu, 3 Nov 2022 22:49:09 +0400 Subject: [PATCH 1/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=B8=D0=BD=D1=82=D0=B5=D1=80=D1=84=D0=B5?= =?UTF-8?q?=D0=B9=D1=81=D0=BE=D0=B2=20=D0=B8=20=D0=B0=D0=B1=D1=81=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D0=BA=D1=82=D0=BD=D0=BE=D0=B3=D0=BE=20=D0=BA=D0=BB?= =?UTF-8?q?=D0=B0=D1=81=D1=81=D0=B0.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/Hard.iml | 4 +- .idea/misc.xml | 2 +- Project/.idea/misc.xml | 2 +- Project/src/.idea/.gitignore | 3 + Project/src/.idea/misc.xml | 6 + Project/src/.idea/modules.xml | 8 ++ Project/src/.idea/vcs.xml | 6 + Project/src/AbstractMap.java | 167 ++++++++++++++++++++++ Project/src/IAdditionalDrawingObject.java | 7 + Project/src/IDrawningObject.java | 18 +++ Project/src/Project.iml | 11 ++ 11 files changed, 231 insertions(+), 3 deletions(-) create mode 100644 Project/src/.idea/.gitignore create mode 100644 Project/src/.idea/misc.xml create mode 100644 Project/src/.idea/modules.xml create mode 100644 Project/src/.idea/vcs.xml create mode 100644 Project/src/AbstractMap.java create mode 100644 Project/src/IAdditionalDrawingObject.java create mode 100644 Project/src/IDrawningObject.java create mode 100644 Project/src/Project.iml diff --git a/.idea/Hard.iml b/.idea/Hard.iml index d6ebd48..b107a2d 100644 --- a/.idea/Hard.iml +++ b/.idea/Hard.iml @@ -2,7 +2,9 @@ - + + + diff --git a/.idea/misc.xml b/.idea/misc.xml index 639900d..1ce6e7f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Project/.idea/misc.xml b/Project/.idea/misc.xml index 1ce6e7f..e2ca0b8 100644 --- a/Project/.idea/misc.xml +++ b/Project/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Project/src/.idea/.gitignore b/Project/src/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/Project/src/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/Project/src/.idea/misc.xml b/Project/src/.idea/misc.xml new file mode 100644 index 0000000..1ce6e7f --- /dev/null +++ b/Project/src/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Project/src/.idea/modules.xml b/Project/src/.idea/modules.xml new file mode 100644 index 0000000..2ff9c41 --- /dev/null +++ b/Project/src/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Project/src/.idea/vcs.xml b/Project/src/.idea/vcs.xml new file mode 100644 index 0000000..b2bdec2 --- /dev/null +++ b/Project/src/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/Project/src/AbstractMap.java b/Project/src/AbstractMap.java new file mode 100644 index 0000000..65847c5 --- /dev/null +++ b/Project/src/AbstractMap.java @@ -0,0 +1,167 @@ +import java.awt.*; +import java.awt.image.BufferedImage; +import java.util.Random; + +public abstract class AbstractMap +{ + private IDrawningObject _drawingObject = null; + protected int[][] _map = null; + protected int _width; + protected int _height; + protected float _size_x; + protected float _size_y; + protected float[] position; + protected Random _random = new Random(); + protected int _freeRoad = 0; + protected int _barrier = 1; + + public BufferedImage CreateMap(int width, int height, IDrawningObject drawningObject) + { + _width = width; + _height = height; + _drawingObject = drawningObject; + + GenerateMap(); + while (!SetObjectOnMap()) + { + GenerateMap(); + } + + return DrawMapWithObject(); + } + + //проверка на "накладывание" + protected boolean CheckPosition(float Left, float Right, float Top, float Bottom) + { + int x_start = (int)(Left / _size_x); + int y_start = (int)(Right / _size_y); + int x_end = (int)(Top / _size_x); + int y_end = (int)(Bottom / _size_y); + + for(int i = x_start; i <= x_end; i++) + { + for(int j = y_start; j <= y_end; j++) + { + if (_map[i][j] == _barrier) + { + return true; + } + } + } + + return false; + } + + public BufferedImage MoveObject(Direction direction) + { + position = _drawingObject.GetCurrentPosition(); + + for (int i = 0; i < _map.length; ++i) + { + for (int j = 0; j < _map[i].length; ++j) + { + if (_map[i][j] == _barrier) + { + switch (direction) + { + case Up: + if(_size_y * (j+1) >= position[0] - _drawingObject.Step() && _size_y * (j+1) < position[0] && _size_x * (i + 1) > position[3] + && _size_x * (i + 1) <= position[1]) + { + return DrawMapWithObject(); + } + break; + case Down: + if (_size_y * j <= position[2] + _drawingObject.Step() && _size_y * j > position[2] && _size_x * (i+1) > position[3] + && _size_x * (i+1) <= position[1]) + { + return DrawMapWithObject(); + } + break; + case Left: + if (_size_x * (i+1) >= position[3] - _drawingObject.Step() && _size_x * (i + 1) < position[3] && _size_y * (j + 1) < position[2] + && _size_y * (j + 1) >= position[0]) + { + return DrawMapWithObject(); + } + break; + case Right: + if (_size_x * i <= position[1] + _drawingObject.Step() && _size_x * i > position[3] && _size_y * (j + 1) < position[2] + && _size_y * (j + 1) >= position[0]) + { + return DrawMapWithObject(); + } + break; + } + } + } + } + + _drawingObject.MoveObject(direction); + return DrawMapWithObject(); + } + + private boolean SetObjectOnMap() + { + if(_drawingObject == null || _map == null) + { + return false; + } + + int x = _random.nextInt(10); + int y = _random.nextInt(10); + _drawingObject.SetObject(x, y, _width, _height); + + for (int i = 0; i < _map.length; ++i) + { + for(int j = 0; j < _map[0].length; ++j) + { + if(i * _size_x >= x && j * _size_y >= y && + i * _size_x <= x + _drawingObject.GetCurrentPosition()[1] && + j * _size_y <= j + _drawingObject.GetCurrentPosition()[2]) + { + if (_map[i][j] == _barrier) + { + return false; + } + } + } + } + + return true; + } + + private BufferedImage DrawMapWithObject() + { + BufferedImage bmp = new BufferedImage(_width, _height, BufferedImage.TYPE_INT_RGB); + + if(_drawingObject == null || _map == null) + { + return bmp; + } + + Graphics gr = bmp.getGraphics(); + + for(int i = 0; i < _map.length; ++i) + { + for(int j = 0; j < _map[i].length; ++j) + { + if (_map[i][j] == _freeRoad) + { + DrawRoadPart(gr, i, j); + } + else if (_map[i][j] == _barrier) + { + DrawBarrierPart(gr, i, j); + } + } + } + + _drawingObject.DrawningObject(gr); + return bmp; + } + + protected abstract void GenerateMap(); + protected abstract void DrawRoadPart(Graphics g, int i, int j); + protected abstract void DrawBarrierPart(Graphics g, int i, int j); +} \ No newline at end of file diff --git a/Project/src/IAdditionalDrawingObject.java b/Project/src/IAdditionalDrawingObject.java new file mode 100644 index 0000000..cf9f27b --- /dev/null +++ b/Project/src/IAdditionalDrawingObject.java @@ -0,0 +1,7 @@ +import java.awt.*; + +public interface IAdditionalDrawingObject +{ + void SetAddEnum(int airplaneWindow); + void DrawAirplaneWindow(Color colorAirplaneWindow, Graphics g, float _startPosX, float _startPosY); +} diff --git a/Project/src/IDrawningObject.java b/Project/src/IDrawningObject.java new file mode 100644 index 0000000..5d5092e --- /dev/null +++ b/Project/src/IDrawningObject.java @@ -0,0 +1,18 @@ +import java.awt.*; + +public interface IDrawningObject { + //шаг перемещения объекта + public float Step(); + + //установка позиции объекта + void SetObject(int x, int y, int width, int height); + + //изменение направления перемещения объекта + void MoveObject(Direction direction); + + //отрисовка объекта + void DrawningObject(Graphics g); + + //получение текущей позиции объекта + float[] GetCurrentPosition(); +} diff --git a/Project/src/Project.iml b/Project/src/Project.iml new file mode 100644 index 0000000..b107a2d --- /dev/null +++ b/Project/src/Project.iml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file From 90ceb3ed941c3197f3eafba5e64de5b316597ec5 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Thu, 3 Nov 2022 23:34:20 +0400 Subject: [PATCH 2/8] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BB=D0=B0=D1=81=D1=81=D0=BE=D0=B2?= =?UTF-8?q?=20=D0=BE=D1=82=D1=80=D0=B8=D1=81=D0=BE=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=80=D1=82,=20=D1=84=D0=BE=D1=80=D0=BC=D1=8B,=20?= =?UTF-8?q?=D0=B8=20=D1=82.=D0=B4.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/DesertStormMap.java | 51 ++++ Project/src/Direction.java | 4 +- Project/src/DrawingAirbus.java | 48 ++++ Project/src/DrawingAirplaneWindow.java | 57 +++-- Project/src/DrawingPlane.java | 102 +++++--- Project/src/DrawingRectAirplaneWindow.java | 55 +++++ .../src/DrawingTriangleAirplaneWindow.java | 63 +++++ Project/src/DrawningObjectPlane.java | 50 ++++ Project/src/EntityAirbus.java | 21 ++ Project/src/EntityPlane.java | 4 +- Project/src/FormAirbus.form | 2 +- Project/src/FormAirbus.java | 15 +- Project/src/FormMap.form | 125 ++++++++++ Project/src/FormMap.java | 217 ++++++++++++++++++ Project/src/Main.java | 4 +- Project/src/SimpleMap.java | 51 ++++ Project/src/StarWarsMap.java | 55 +++++ 17 files changed, 847 insertions(+), 77 deletions(-) create mode 100644 Project/src/DesertStormMap.java create mode 100644 Project/src/DrawingAirbus.java create mode 100644 Project/src/DrawingRectAirplaneWindow.java create mode 100644 Project/src/DrawingTriangleAirplaneWindow.java create mode 100644 Project/src/DrawningObjectPlane.java create mode 100644 Project/src/EntityAirbus.java create mode 100644 Project/src/FormMap.form create mode 100644 Project/src/FormMap.java create mode 100644 Project/src/SimpleMap.java create mode 100644 Project/src/StarWarsMap.java diff --git a/Project/src/DesertStormMap.java b/Project/src/DesertStormMap.java new file mode 100644 index 0000000..a806b60 --- /dev/null +++ b/Project/src/DesertStormMap.java @@ -0,0 +1,51 @@ +import java.awt.*; + +public class DesertStormMap extends AbstractMap{ + //цвет закрытого участка + private final Color barriedColor = new Color(139, 0, 0); + + //цвет открытого участка + private final Color roadColor = new Color(255, 140, 0); + + @Override + protected void GenerateMap() { + _map = new int[100][100]; + _size_x = (float)_width / _map.length; + _size_y = (float)_height / _map[0].length; + int counter = 0; + + for(int i = 0; i < _map.length; ++i) + { + for(int j = 0; j < _map[0].length; ++j) + { + _map[i][j] = _freeRoad; + } + } + + while(counter < 50) + { + int x = _random.nextInt(0, 100); + int y = _random.nextInt(0, 100); + + if (_map[x][y] == _freeRoad) + { + _map[x][y] = _barrier; + counter++; + } + } + } + + @Override + protected void DrawRoadPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + g2d.setPaint(roadColor); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } + + @Override + protected void DrawBarrierPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + g2d.setPaint(barriedColor); + g.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } +} diff --git a/Project/src/Direction.java b/Project/src/Direction.java index 6716191..e2d98d9 100644 --- a/Project/src/Direction.java +++ b/Project/src/Direction.java @@ -1,4 +1,6 @@ -public enum Direction { +//направление перемещения +public enum Direction +{ Up(1), Down(2), Left(3), diff --git a/Project/src/DrawingAirbus.java b/Project/src/DrawingAirbus.java new file mode 100644 index 0000000..3c53628 --- /dev/null +++ b/Project/src/DrawingAirbus.java @@ -0,0 +1,48 @@ +import java.awt.*; + +public class DrawingAirbus extends DrawingPlane +{ + //Инициализаци свойств + public DrawingAirbus(int speed, int weight, Color corpusColor, Color addColor, boolean addCompartment, boolean addEngine) + { + super(speed, weight, corpusColor, 110, 60); + Plane = new EntityAirbus(speed, weight, corpusColor, addColor, addCompartment, addEngine); + } + + @Override + public void DrawTransport(Graphics g) + { + Graphics2D g2d = (Graphics2D) g; + EntityAirbus airbus; + + if (!(GetPlane() instanceof EntityAirbus)) + { + return; + } + + airbus = (EntityAirbus) Plane; + _startPosX += 10; + _startPosY += 5; + super.DrawTransport(g); + _startPosX -= 10; + _startPosY -= 5; + + //дополнительный пассажирский отсек + if (airbus.AddСompartment) + { + g2d.setPaint(airbus.AddColor); + g.fillRect((int)_startPosX + 30, (int)_startPosY + 12, 14, 3); + g2d.setPaint(Color.BLACK); + g.drawRect((int)_startPosX + 30, (int)_startPosY + 12, 14, 3); + } + + //дополнительный двигатель + if (airbus.AddEngine) + { + g2d.setPaint(airbus.AddColor); + g.fillOval((int)_startPosX + 24, (int)_startPosY + 22, 10, 5); + g2d.setPaint(Color.BLACK); + g.drawOval((int)_startPosX + 24, (int)_startPosY + 22, 10, 5); + } + } +} diff --git a/Project/src/DrawingAirplaneWindow.java b/Project/src/DrawingAirplaneWindow.java index ec6a8ab..186b922 100644 --- a/Project/src/DrawingAirplaneWindow.java +++ b/Project/src/DrawingAirplaneWindow.java @@ -1,16 +1,19 @@ import javax.swing.*; import java.awt.*; -public class DrawingAirplaneWindow extends JComponent +public class DrawingAirplaneWindow extends JComponent implements IAdditionalDrawingObject { private Additional_Enum _airplaneWindowEnum; - public void SetAddEnum(int decksAmount) { + @Override + public void SetAddEnum(int airplaneWindow) + { for(Additional_Enum item : _airplaneWindowEnum.values()) { - if(item.GetAddEnum() == decksAmount) + if(item.GetAddEnum() == airplaneWindow) { _airplaneWindowEnum = item; + return; } } @@ -21,35 +24,31 @@ public class DrawingAirplaneWindow extends JComponent super.paintComponent(g); Graphics2D g2d = (Graphics2D) g; - switch(_airplaneWindowEnum.GetAddEnum()) + if(_airplaneWindowEnum.GetAddEnum() >= 1) { - case 1: - g2d.setPaint(colorWindow); - g2d.fillOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); + g2d.setPaint(colorWindow); + g2d.fillOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - g2d.setPaint(Color.BLACK); - g2d.drawOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - break; - case 2: - g2d.setPaint(colorWindow); - g2d.fillOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - g2d.fillOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); + g2d.setPaint(Color.BLACK); + g2d.drawOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); + } - g2d.setPaint(Color.BLACK); - g2d.drawOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - g2d.drawOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); - break; - case 3: - g2d.setPaint(colorWindow); - g2d.fillOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - g2d.fillOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); - g2d.fillOval((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); + if(_airplaneWindowEnum.GetAddEnum() >= 2) + { + g2d.setPaint(colorWindow); + g2d.fillOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); - g2d.setPaint(Color.BLACK); - g2d.drawOval((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); - g2d.drawOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); - g2d.drawOval((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); - break; + g2d.setPaint(Color.BLACK); + g2d.drawOval((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); + } + + if(_airplaneWindowEnum.GetAddEnum() >= 3) + { + g2d.setPaint(colorWindow); + g2d.fillOval((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); + + g2d.setPaint(Color.BLACK); + g2d.drawOval((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); } } -} \ No newline at end of file +} diff --git a/Project/src/DrawingPlane.java b/Project/src/DrawingPlane.java index 30157bf..8c58f47 100644 --- a/Project/src/DrawingPlane.java +++ b/Project/src/DrawingPlane.java @@ -1,40 +1,68 @@ import java.awt.*; +import javax.swing.*; import java.awt.Color; import java.util.Random; -public class DrawingPlane +public class DrawingPlane extends JPanel { - public EntityPlane Airbus; //класс-сущность - public DrawingAirplaneWindow _airplaneWindow; //для дополнительной отрисовки + protected EntityPlane Plane; //класс-сущность + public IAdditionalDrawingObject _airplaneWindow; //для дополнительной отрисовки - private float _startPosX; //левая координата отрисовки - private float _startPosY; //верхняя координата отрисовки - private Integer _pictureWidth = null; //ширина окна отрисовки - private Integer _pictureHeight = null; //высота окна отрисовки - protected final int _airbusWidth = 50; //ширина отрисовки самолёта - protected final int _airbusHeight = 16; //высота отрисовки самолёта - - //инициализаци свойств - public void Initial(int speed, float weight, Color corpusColor) - { - Airbus = new EntityPlane(); - Airbus.Initial(speed, weight, corpusColor); - _airplaneWindow = new DrawingAirplaneWindow(); - - SetAddEnum(); - } - - //установка кол-ва иллюминаторов public void SetAddEnum() { Random rnd = new Random(); - int countWindow = rnd.nextInt(1, 4); - _airplaneWindow.SetAddEnum(countWindow); + int numbEnum = rnd.nextInt(1, 4); + _airplaneWindow.SetAddEnum(numbEnum); + } + + public void SetFormEnum() + { + Random rnd = new Random(); + + int numbEnum = rnd.nextInt(1, 4); + + if(numbEnum == 1) + { + _airplaneWindow = new DrawingAirplaneWindow(); + } + + if(numbEnum == 2) + { + _airplaneWindow = new DrawingTriangleAirplaneWindow(); + } + + if(numbEnum == 3) + { + _airplaneWindow = new DrawingRectAirplaneWindow(); + } } public EntityPlane GetPlane() { - return Airbus; + return Plane; + } + + protected float _startPosX; //левая координата отрисовки + protected float _startPosY; //верхняя координата отрисовки + private Integer _pictureWidth = null; //ширина окна отрисовки + private Integer _pictureHeight = null; //высота окна отрисовки + protected int _airbusWidth = 50; //ширина отрисовки самолёта + protected int _airbusHeight = 16; //высота отрисовки самолёта + + //конструктор + public DrawingPlane(int speed, float weight, Color corpusColor) + { + Plane = new EntityPlane(speed, weight, corpusColor); + SetFormEnum(); + SetAddEnum(); + } + + //конструктор + public DrawingPlane(int speed, float weight, Color corpusColor, int planeWidth, int planeHeight) + { + this(speed, weight, corpusColor); + _airbusWidth = planeWidth; + _airbusHeight = planeHeight; } //установка координат позиции самолёта @@ -65,30 +93,30 @@ public class DrawingPlane switch (direction) { case Right: //вправо - if (_startPosX + _airbusWidth + Airbus.GetStep() < _pictureWidth) + if (_startPosX + _airbusWidth + Plane.GetStep() < _pictureWidth) { - _startPosX += Airbus.GetStep(); + _startPosX += Plane.GetStep(); } break; case Left: //влево - if (_startPosX - _airbusWidth - Airbus.GetStep() > 0) + if (_startPosX - _airbusWidth - Plane.GetStep() > 0) { - _startPosX -= Airbus.GetStep(); + _startPosX -= Plane.GetStep(); } break; case Up: //вверх - if (_startPosY - _airbusHeight - Airbus.GetStep() > 0) + if (_startPosY - _airbusHeight - Plane.GetStep() > 0) { - _startPosY -= Airbus.GetStep(); + _startPosY -= Plane.GetStep(); } break; case Down: //вниз - if (_startPosY + _airbusHeight + Airbus.GetStep() < _pictureHeight) + if (_startPosY + _airbusHeight + Plane.GetStep() < _pictureHeight) { - _startPosY += Airbus.GetStep(); + _startPosY += Plane.GetStep(); } break; } @@ -143,7 +171,7 @@ public class DrawingPlane g2d.drawLine((int)_startPosX + 40, (int)_startPosY + 20, (int)_startPosX + 50, (int)_startPosY + 15); //отрисовка иллюминаторов - _airplaneWindow.DrawAirplaneWindow(Airbus.GetColor(), g, _startPosX, _startPosY); + _airplaneWindow.DrawAirplaneWindow(Plane.GetColor(), g, _startPosX, _startPosY); } //смена границ формы отрисовки @@ -169,4 +197,10 @@ public class DrawingPlane _startPosY = _pictureHeight - _airbusHeight; } } -} \ No newline at end of file + + public float[] GetCurrentPosition() + { + return new float[] {_startPosX, _startPosX + _airbusWidth, + _startPosY + _airbusHeight, _startPosX}; + } +} diff --git a/Project/src/DrawingRectAirplaneWindow.java b/Project/src/DrawingRectAirplaneWindow.java new file mode 100644 index 0000000..9055068 --- /dev/null +++ b/Project/src/DrawingRectAirplaneWindow.java @@ -0,0 +1,55 @@ +import javax.swing.*; +import java.awt.*; + +public class DrawingRectAirplaneWindow extends JComponent implements IAdditionalDrawingObject +{ + private Additional_Enum _airplaneWindowEnum; + + @Override + public void SetAddEnum(int airplaneWindow) + { + for(Additional_Enum item : _airplaneWindowEnum.values()) + { + if(item.GetAddEnum() == airplaneWindow) + { + _airplaneWindowEnum = item; + + return; + } + } + } + + public void DrawAirplaneWindow(Color colorWindow, Graphics g, float _startPosX, float _startPosY) + { + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g; + + if(_airplaneWindowEnum.GetAddEnum() >= 1) + { + g2d.setPaint(colorWindow); + g2d.fillRect((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); + + g2d.setPaint(Color.BLACK); + g2d.drawRect((int)_startPosX + 9, (int)_startPosY + 11, 6, 4); + } + + if(_airplaneWindowEnum.GetAddEnum() >= 2) + { + g2d.setPaint(colorWindow); + g2d.fillRect((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); + + g2d.setPaint(Color.BLACK); + g2d.drawRect((int)_startPosX + 18, (int)_startPosY + 11, 6, 4); + } + + if(_airplaneWindowEnum.GetAddEnum() >= 3) + { + g2d.setPaint(colorWindow); + g2d.fillRect((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); + + g2d.setPaint(Color.BLACK); + g2d.drawRect((int)_startPosX + 27, (int)_startPosY + 11, 6, 4); + } + } +} + diff --git a/Project/src/DrawingTriangleAirplaneWindow.java b/Project/src/DrawingTriangleAirplaneWindow.java new file mode 100644 index 0000000..bdbebfb --- /dev/null +++ b/Project/src/DrawingTriangleAirplaneWindow.java @@ -0,0 +1,63 @@ +import javax.swing.*; +import java.awt.*; + +public class DrawingTriangleAirplaneWindow extends JComponent implements IAdditionalDrawingObject +{ + private Additional_Enum _airplaneWindowEnum; + + @Override + public void SetAddEnum(int airplaneWindow) + { + for(Additional_Enum item : _airplaneWindowEnum.values()) + { + if(item.GetAddEnum() == airplaneWindow) + { + _airplaneWindowEnum = item; + + return; + } + } + } + + public void DrawAirplaneWindow(Color colorWindow, Graphics g, float _startPosX, float _startPosY) + { + super.paintComponent(g); + Graphics2D g2d = (Graphics2D) g; + + if(_airplaneWindowEnum.GetAddEnum() >= 1) + { + int[] x_point = {(int)_startPosX + 12, (int)_startPosX + 16, (int)_startPosX + 9}; + int[] y_point = {(int)_startPosY + 11, (int)_startPosY + 15, (int)_startPosY + 15}; + + g2d.setPaint(colorWindow); + g2d.fillPolygon(x_point, y_point, 3); + + g2d.setPaint(Color.BLACK); + g2d.drawPolygon(x_point, y_point, 3); + } + + if(_airplaneWindowEnum.GetAddEnum() >= 2) + { + int[] x_point = {(int)_startPosX + 21, (int)_startPosX + 25, (int)_startPosX + 18}; + int[] y_point = {(int)_startPosY + 11, (int)_startPosY + 15, (int)_startPosY + 15}; + + g2d.setPaint(colorWindow); + g2d.fillPolygon(x_point, y_point, 3); + + g2d.setPaint(Color.BLACK); + g2d.drawPolygon(x_point, y_point, 3); + } + + if(_airplaneWindowEnum.GetAddEnum() >= 3) + { + int[] x_point = {(int)_startPosX + 30, (int)_startPosX + 34, (int)_startPosX + 27}; + int[] y_point = {(int)_startPosY + 11, (int)_startPosY + 15, (int)_startPosY + 15}; + + g2d.setPaint(colorWindow); + g2d.fillPolygon(x_point, y_point, 3); + + g2d.setPaint(Color.BLACK); + g2d.drawPolygon(x_point, y_point, 3); + } + } +} diff --git a/Project/src/DrawningObjectPlane.java b/Project/src/DrawningObjectPlane.java new file mode 100644 index 0000000..7240f70 --- /dev/null +++ b/Project/src/DrawningObjectPlane.java @@ -0,0 +1,50 @@ +import java.awt.*; + +public class DrawningObjectPlane implements IDrawningObject +{ + private DrawingPlane _plane = null; + + public DrawningObjectPlane(DrawingPlane plane){ + _plane = plane; + } + + @Override + public float Step() + { + if(_plane != null && _plane.Plane != null) + { + return _plane.Plane.GetStep(); + } + + return 0; + } + + @Override + public void SetObject(int x, int y, int width, int height) + { + _plane.SetPosition(x, y, width, height); + } + + @Override + public void MoveObject(Direction direction) + { + _plane.MoveTransport(direction); + } + + @Override + public void DrawningObject(Graphics g) + { + _plane.DrawTransport(g); + } + + @Override + public float[] GetCurrentPosition() + { + if(_plane != null) + { + return _plane.GetCurrentPosition(); + } + + return null; + } +} diff --git a/Project/src/EntityAirbus.java b/Project/src/EntityAirbus.java new file mode 100644 index 0000000..25c99c8 --- /dev/null +++ b/Project/src/EntityAirbus.java @@ -0,0 +1,21 @@ +import java.awt.*; + +public class EntityAirbus extends EntityPlane{ + //Дополнительный цвет + public Color AddColor; + + //Признак наличия дополнительно пассажирского отсека + public boolean AddСompartment; + + //Признак наличия дополнительных двигателей + public boolean AddEngine; + + //Инициализация свойств + public EntityAirbus(int speed, float weight, Color corpusColor, Color addColor, boolean addCompartment, boolean addEngine) + { + super(speed, weight, corpusColor); + AddColor = addColor; + AddСompartment = addCompartment; + AddEngine = addEngine; + } +} diff --git a/Project/src/EntityPlane.java b/Project/src/EntityPlane.java index 38df649..f9e4256 100644 --- a/Project/src/EntityPlane.java +++ b/Project/src/EntityPlane.java @@ -22,10 +22,10 @@ public class EntityPlane return Speed * 100 / Weight; } - public void Initial(int speed, float weight, Color corpusColor) + public EntityPlane(int speed, float weight, Color corpusColor) { Speed = speed; Weight = weight; CorpusColor = corpusColor; } -} \ No newline at end of file +} diff --git a/Project/src/FormAirbus.form b/Project/src/FormAirbus.form index b34deed..714bd1f 100644 --- a/Project/src/FormAirbus.form +++ b/Project/src/FormAirbus.form @@ -63,7 +63,7 @@ - + diff --git a/Project/src/FormAirbus.java b/Project/src/FormAirbus.java index 3fbd8c3..d682a4e 100644 --- a/Project/src/FormAirbus.java +++ b/Project/src/FormAirbus.java @@ -9,7 +9,7 @@ import java.util.Random; public class FormAirbus { - protected DrawingPlane plane = new DrawingPlane(); + protected DrawingPlane plane; public JPanel MainPanel; private JButton ButtonCreate; @@ -18,7 +18,7 @@ public class FormAirbus private JButton ButtonRight; private JButton ButtonUp; private JToolBar StatusStrip; - private JPanel PictureBox; + private JPanel PictureBoxPlane; private JLabel LabelSpeed = new JLabel(); private JLabel LabelWeight = new JLabel(); private JLabel LabelColor = new JLabel(); @@ -51,12 +51,11 @@ public class FormAirbus ButtonCreate.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { - plane = new DrawingPlane(); Random rnd = new Random(); - plane.Initial(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), + plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256))); plane.SetPosition(rnd.nextInt(10, 100), rnd.nextInt(10, 100), - PictureBox.getWidth(), PictureBox.getHeight()); + PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); LabelSpeed.setText("Скорость: " + plane.GetPlane().GetSpeed() + " "); LabelWeight.setText("Вес: " + plane.GetPlane().GetWeight() + " "); LabelColor.setText("Цвет: r = " + plane.GetPlane().GetColor().getRed() + " g = " + plane.GetPlane().GetColor().getGreen() + @@ -70,7 +69,7 @@ public class FormAirbus @Override public void componentResized(ComponentEvent e) { super.componentResized(e); - plane.ChangeBorders(PictureBox.getWidth(), PictureBox.getHeight()); + plane.ChangeBorders(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); Draw(); } }); @@ -115,6 +114,6 @@ public class FormAirbus return; } - plane.DrawTransport(PictureBox.getGraphics()); + plane.DrawTransport(PictureBoxPlane.getGraphics()); } -} \ No newline at end of file +} diff --git a/Project/src/FormMap.form b/Project/src/FormMap.form new file mode 100644 index 0000000..1aca1e8 --- /dev/null +++ b/Project/src/FormMap.form @@ -0,0 +1,125 @@ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
diff --git a/Project/src/FormMap.java b/Project/src/FormMap.java new file mode 100644 index 0000000..531d17d --- /dev/null +++ b/Project/src/FormMap.java @@ -0,0 +1,217 @@ +import javax.imageio.ImageIO; +import javax.swing.*; +import java.awt.*; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.awt.event.ComponentAdapter; +import java.awt.event.ComponentEvent; +import java.awt.image.BufferedImage; +import java.util.Random; +import java.util.Set; + +public class FormMap extends JFrame +{ + public JPanel MainPanel; + private JButton ButtonCreate; + private JButton ButtonCreateModif; + private JButton ButtonLeft; + private JButton ButtonDown; + private JButton ButtonRight; + private JButton ButtonUp; + private JToolBar StatusStrip; + private JPanel PictureBoxPlane; + private JComboBox ComboBoxSelectorMap; + private JLabel LabelSpeed = new JLabel(); + private JLabel LabelWeight = new JLabel(); + private JLabel LabelColor = new JLabel(); + + protected DrawingPlane _plane; + private AbstractMap _abstractMap; + private Random rnd = new Random(); + private BufferedImage bufferImg = null; + + public void Draw() + { + PictureBoxPlane.removeAll(); + + bufferImg = new BufferedImage(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), BufferedImage.TYPE_INT_RGB); + Graphics g = bufferImg.getGraphics(); + g.setColor(new Color(238, 238, 238)); + g.fillRect(0, 0, PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); + + if(_plane != null) + { + _plane.DrawTransport(g); + JLabel imageOfLogo = new JLabel(); + imageOfLogo.setPreferredSize(PictureBoxPlane.getSize()); + imageOfLogo.setMinimumSize(new Dimension(1, 1)); + imageOfLogo.setIcon(new ImageIcon(bufferImg)); + PictureBoxPlane.add(imageOfLogo, BorderLayout.CENTER); + } + + validate(); + } + + @Override + public void paint(Graphics g) + { + super.paint(g); + Draw(); + } + + public void SetData(DrawingPlane _plane) + { + PictureBoxPlane.removeAll(); + + LabelSpeed.setText("Скорость: " + _plane.GetPlane().GetSpeed() + " "); + LabelWeight.setText("Вес: " + _plane.GetPlane().GetWeight() + " "); + LabelColor.setText("Цвет: r = " + _plane.GetPlane().GetColor().getRed() + " g = " + _plane.GetPlane().GetColor().getGreen() + + " b = " + _plane.GetPlane().GetColor().getBlue()); + + JLabel imageWithMapAndObject = new JLabel(); + imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); + imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); + imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.CreateMap(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), new DrawningObjectPlane((_plane))))); + PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + PictureBoxPlane.revalidate(); + } + + public FormMap() + { + _abstractMap = new SimpleMap(); + //создание строки отображения скорости, веса и цвета объекта + Box LableBox = Box.createHorizontalBox(); + LableBox.setMinimumSize(new Dimension(1, 20)); + LableBox.add(LabelSpeed); + LableBox.add(LabelWeight); + LableBox.add(LabelColor); + StatusStrip.add(LableBox); + + try + { + Image img = ImageIO.read(getClass().getResource("resourses/Up.png")); + ButtonUp.setIcon(new ImageIcon(img)); + img = ImageIO.read(getClass().getResource("resourses/Left.png")); + ButtonLeft.setIcon(new ImageIcon(img)); + img = ImageIO.read(getClass().getResource("resourses/Down.png")); + ButtonDown.setIcon(new ImageIcon(img)); + img = ImageIO.read(getClass().getResource("resourses/Right.png")); + ButtonRight.setIcon(new ImageIcon(img)); + } catch (Exception ex) + { + System.out.println(ex.getMessage()); + } + + _plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256))); + + ButtonCreate.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + Random rnd = new Random(); + var plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), + new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256))); + plane.SetPosition(rnd.nextInt(10, 100), rnd.nextInt(10, 100), + PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); + SetData(plane); + } + }); + + ButtonUp.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + PictureBoxPlane.removeAll(); + + JLabel imageWithMapAndObject = new JLabel(); + imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); + imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); + imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Up)))); + + PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + PictureBoxPlane.revalidate(); + PictureBoxPlane.repaint(); + } + }); + + ButtonLeft.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + PictureBoxPlane.removeAll(); + + JLabel imageWithMapAndObject = new JLabel(); + imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); + imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); + imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Left)))); + + PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + PictureBoxPlane.revalidate(); + PictureBoxPlane.repaint(); + } + }); + + ButtonDown.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + PictureBoxPlane.removeAll(); + + JLabel imageWithMapAndObject = new JLabel(); + imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); + imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); + imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Down)))); + + PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + PictureBoxPlane.revalidate(); + PictureBoxPlane.repaint(); + } + }); + + ButtonRight.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + PictureBoxPlane.removeAll(); + + JLabel imageWithMapAndObject = new JLabel(); + imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); + imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); + imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.MoveObject((Direction.Right)))); + + PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + PictureBoxPlane.revalidate(); + PictureBoxPlane.repaint(); + } + }); + + ButtonCreateModif.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + _plane = new DrawingAirbus(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), + new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)), + new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)), + rnd.nextBoolean(), rnd.nextBoolean()); + _plane.SetPosition(rnd.nextInt(100, 500), rnd.nextInt(10, 100), + PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); + SetData(_plane); + } + }); + + + ComboBoxSelectorMap.addActionListener(new ActionListener() { + @Override + public void actionPerformed(ActionEvent e) { + ComboBoxSelectorMap = (JComboBox)e.getSource(); + String item = (String)ComboBoxSelectorMap.getSelectedItem(); + switch(item) + { + case "Простая карта": + _abstractMap = new SimpleMap(); + break; + case "Буря в пустыне": + _abstractMap = new DesertStormMap(); + break; + case "Звёздные войны": + _abstractMap = new StarWarsMap(); + break; + } + } + }); + } +} diff --git a/Project/src/Main.java b/Project/src/Main.java index 1d1f21a..6b0c728 100644 --- a/Project/src/Main.java +++ b/Project/src/Main.java @@ -3,11 +3,11 @@ import javax.swing.*; public class Main { public static void main(String[] args) { JFrame frame = new JFrame("Airbus"); - frame.setContentPane(new FormAirbus().MainPanel); + frame.setContentPane(new FormMap().MainPanel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setLocation(500, 200); frame.pack(); frame.setSize(1000, 500); frame.setVisible(true); } -} \ No newline at end of file +} diff --git a/Project/src/SimpleMap.java b/Project/src/SimpleMap.java new file mode 100644 index 0000000..3eb01a8 --- /dev/null +++ b/Project/src/SimpleMap.java @@ -0,0 +1,51 @@ +import java.awt.*; + +public class SimpleMap extends AbstractMap{ + //цвет закрытого участка + private final Color barriedColor = Color.black; + + //цвет открытого участка + private final Color roadColor = Color.gray; + + @Override + protected void GenerateMap() { + _map = new int[100][100]; + _size_x = (float)_width / _map.length; + _size_y = (float)_height / _map[0].length; + int counter = 0; + + for(int i = 0; i < _map.length; ++i) + { + for(int j = 0; j < _map[0].length; ++j) + { + _map[i][j] = _freeRoad; + } + } + + while(counter < 50) + { + int x = _random.nextInt(0, 100); + int y = _random.nextInt(0, 100); + + if (_map[x][y] == _freeRoad) + { + _map[x][y] = _barrier; + counter++; + } + } + } + + @Override + protected void DrawRoadPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + g2d.setPaint(roadColor); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } + + @Override + protected void DrawBarrierPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + g2d.setPaint(barriedColor); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } +} diff --git a/Project/src/StarWarsMap.java b/Project/src/StarWarsMap.java new file mode 100644 index 0000000..8d184ee --- /dev/null +++ b/Project/src/StarWarsMap.java @@ -0,0 +1,55 @@ +import java.awt.*; +import java.util.Random; + +public class StarWarsMap extends AbstractMap{ + Random rnd = new Random(); + + //цвет закрытого участка + Color barriedColor; + + //цвет открытого участка + private final Color roadColor = new Color(0, 0, 139); + + @Override + protected void GenerateMap() { + _map = new int[100][100]; + _size_x = (float)_width / _map.length; + _size_y = (float)_height / _map[0].length; + int counter = 0; + + for(int i = 0; i < _map.length; ++i) + { + for(int j = 0; j < _map[0].length; ++j) + { + _map[i][j] = _freeRoad; + } + } + + while(counter < 50) + { + int x = _random.nextInt(0, 100); + int y = _random.nextInt(0, 100); + + if (_map[x][y] == _freeRoad) + { + _map[x][y] = _barrier; + counter++; + } + } + } + + @Override + protected void DrawRoadPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + g2d.setPaint(roadColor); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } + + @Override + protected void DrawBarrierPart(Graphics g, int i, int j) { + Graphics2D g2d = (Graphics2D)g; + barriedColor = new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); + g2d.setPaint(barriedColor); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + } +} From 5adccc16a3919f6b7ca32a8e2fbf880d718d737c Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Sat, 5 Nov 2022 01:24:27 +0400 Subject: [PATCH 3/8] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=BB?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5?= =?UTF-8?q?=D0=BC=D1=8B=20=D1=81=20=D0=BE=D1=82=D0=BE=D0=B1=D1=80=D0=B0?= =?UTF-8?q?=D0=B6=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC=20=D0=B2=D1=8B=D0=B1=D1=80?= =?UTF-8?q?=D0=B0=D0=BD=D0=BD=D0=BE=D0=B9=20=D0=BA=D0=B0=D1=80=D1=82=D1=8B?= =?UTF-8?q?=20=D0=BD=D0=B0=20=D1=84=D0=BE=D1=80=D0=BC=D0=B5.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/.idea/misc.xml | 2 +- Project/src/AbstractMap.java | 117 ++++++++++++++------- Project/src/Additional_Enum.java | 3 +- Project/src/DesertStormMap.java | 4 +- Project/src/DrawingAirbus.java | 2 +- Project/src/DrawingPlane.java | 12 +-- Project/src/DrawingRectAirplaneWindow.java | 1 - Project/src/EntityPlane.java | 15 ++- Project/src/FormMap.form | 6 +- Project/src/FormMap.java | 49 +++------ Project/src/IAdditionalDrawingObject.java | 3 +- Project/src/SimpleMap.java | 4 +- Project/src/StarWarsMap.java | 4 +- 13 files changed, 124 insertions(+), 98 deletions(-) diff --git a/Project/.idea/misc.xml b/Project/.idea/misc.xml index e2ca0b8..c1a8958 100644 --- a/Project/.idea/misc.xml +++ b/Project/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/Project/src/AbstractMap.java b/Project/src/AbstractMap.java index 65847c5..8b952f8 100644 --- a/Project/src/AbstractMap.java +++ b/Project/src/AbstractMap.java @@ -54,53 +54,94 @@ public abstract class AbstractMap public BufferedImage MoveObject(Direction direction) { - position = _drawingObject.GetCurrentPosition(); - - for (int i = 0; i < _map.length; ++i) + float[] cortege = _drawingObject.GetCurrentPosition(); + int leftCell = (int)(cortege[0] / _size_x); + int upCell = (int)(cortege[1] / _size_y); + int downCell = (int)(cortege[3] / _size_y); + int rightCell = (int)(cortege[2] / _size_x); + int step = (int)_drawingObject.Step(); + boolean canMove = true; + switch (direction) { - for (int j = 0; j < _map[i].length; ++j) - { - if (_map[i][j] == _barrier) + case Left: + for (int i = leftCell - (int)(step / _size_x) - 1 >= 0 ? leftCell - (int)(step / _size_x) - 1 : leftCell; i < leftCell; i++) { - switch (direction) + for (int j = upCell; j < downCell; j++) { - case Up: - if(_size_y * (j+1) >= position[0] - _drawingObject.Step() && _size_y * (j+1) < position[0] && _size_x * (i + 1) > position[3] - && _size_x * (i + 1) <= position[1]) - { - return DrawMapWithObject(); - } - break; - case Down: - if (_size_y * j <= position[2] + _drawingObject.Step() && _size_y * j > position[2] && _size_x * (i+1) > position[3] - && _size_x * (i+1) <= position[1]) - { - return DrawMapWithObject(); - } - break; - case Left: - if (_size_x * (i+1) >= position[3] - _drawingObject.Step() && _size_x * (i + 1) < position[3] && _size_y * (j + 1) < position[2] - && _size_y * (j + 1) >= position[0]) - { - return DrawMapWithObject(); - } - break; - case Right: - if (_size_x * i <= position[1] + _drawingObject.Step() && _size_x * i > position[3] && _size_y * (j + 1) < position[2] - && _size_y * (j + 1) >= position[0]) - { - return DrawMapWithObject(); - } - break; + if (_map[i][j] == _barrier) + { + canMove = false; + } } } - } + break; + case Up: + for (int i = leftCell; i <= rightCell; i++) + { + for (int j = upCell - (int)(step / _size_x) - 1 >= 0 ? upCell - (int)(step / _size_x) - 1 : downCell - (int)(step / _size_x); j < downCell - (int)(step / _size_x); j++) + { + if (_map[i][j] == _barrier) + { + canMove = false; + } + } + } + break; + case Down: + for (int i = leftCell; i <= rightCell; i++) + { + for (int j = downCell + (int)(step / _size_x) + 1 <= _map.length - 1 ? downCell + (int)(step / _size_x) + 1 : upCell; j > upCell; j--) + { + if (_map[i][j] == _barrier) + { + canMove = false; + } + } + } + break; + case Right: + for (int i = rightCell + (int)(step / _size_x) + 1 <= _map.length - 1 ? rightCell + (int)(step / _size_x) + 1 : rightCell; i > rightCell; i--) + { + for (int j = upCell; j < downCell; j++) + { + if (_map[i][j] == _barrier) + { + canMove = false; + } + } + } + break; + } + if (canMove) + { + _drawingObject.MoveObject(direction); } - - _drawingObject.MoveObject(direction); return DrawMapWithObject(); } + /* + private Direction MoveObjectBack(Direction direction) + { + switch (direction) + { + case Up: + return Direction.Up; + break; + case Down: + return Direction.Down; + break; + case Left: + return Direction.Left; + break; + case Right: + return Direction.Right; + break; + } + + return Direction.None; + } + */ + private boolean SetObjectOnMap() { if(_drawingObject == null || _map == null) diff --git a/Project/src/Additional_Enum.java b/Project/src/Additional_Enum.java index 7795957..f28a2f6 100644 --- a/Project/src/Additional_Enum.java +++ b/Project/src/Additional_Enum.java @@ -10,7 +10,8 @@ public enum Additional_Enum { this.addEnum = i; } - public int GetAddEnum(){ + public int GetAddEnum() + { return addEnum; } } diff --git a/Project/src/DesertStormMap.java b/Project/src/DesertStormMap.java index a806b60..10ce783 100644 --- a/Project/src/DesertStormMap.java +++ b/Project/src/DesertStormMap.java @@ -39,13 +39,13 @@ public class DesertStormMap extends AbstractMap{ protected void DrawRoadPart(Graphics g, int i, int j) { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); - g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override protected void DrawBarrierPart(Graphics g, int i, int j) { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(barriedColor); - g.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } } diff --git a/Project/src/DrawingAirbus.java b/Project/src/DrawingAirbus.java index 3c53628..0a46bb8 100644 --- a/Project/src/DrawingAirbus.java +++ b/Project/src/DrawingAirbus.java @@ -5,7 +5,7 @@ public class DrawingAirbus extends DrawingPlane //Инициализаци свойств public DrawingAirbus(int speed, int weight, Color corpusColor, Color addColor, boolean addCompartment, boolean addEngine) { - super(speed, weight, corpusColor, 110, 60); + super(speed, weight, corpusColor, 70, 30); Plane = new EntityAirbus(speed, weight, corpusColor, addColor, addCompartment, addEngine); } diff --git a/Project/src/DrawingPlane.java b/Project/src/DrawingPlane.java index 8c58f47..9a3a4d9 100644 --- a/Project/src/DrawingPlane.java +++ b/Project/src/DrawingPlane.java @@ -135,8 +135,9 @@ public class DrawingPlane extends JPanel Graphics2D g2d = (Graphics2D)g; - g2d.setColor(Color.WHITE); - g2d.fillRect(0, 0, _pictureWidth, _pictureHeight); + //корпус + g2d.setColor(Plane.GetColor()); + g2d.fillRect((int)_startPosX, (int)_startPosY + 10, 40, 10); //заливает фигуру g2d.setPaint(Color.BLACK); @@ -157,10 +158,6 @@ public class DrawingPlane extends JPanel g2d.fillRect((int)_startPosX + 35, (int)_startPosY + 21, 2, 2); g2d.fillRect((int)_startPosX + 35, (int)_startPosY + 23, 4, 4); - g2d.setColor(Color.BLACK); //рисует контур - //корпус - g2d.drawRect((int)_startPosX, (int)_startPosY + 10, 40, 10); - //хвостовое крыло g2d.drawLine((int)_startPosX, (int)_startPosY + 10, (int)_startPosX, (int)_startPosY); g2d.drawLine((int)_startPosX, (int)_startPosY, (int)_startPosX + 10, (int)_startPosY + 10); @@ -200,7 +197,6 @@ public class DrawingPlane extends JPanel public float[] GetCurrentPosition() { - return new float[] {_startPosX, _startPosX + _airbusWidth, - _startPosY + _airbusHeight, _startPosX}; + return new float[]{_startPosX, _startPosY, _startPosX + _airbusWidth, _startPosY + _airbusHeight}; } } diff --git a/Project/src/DrawingRectAirplaneWindow.java b/Project/src/DrawingRectAirplaneWindow.java index 9055068..eaacfb2 100644 --- a/Project/src/DrawingRectAirplaneWindow.java +++ b/Project/src/DrawingRectAirplaneWindow.java @@ -52,4 +52,3 @@ public class DrawingRectAirplaneWindow extends JComponent implements IAdditional } } } - diff --git a/Project/src/EntityPlane.java b/Project/src/EntityPlane.java index f9e4256..d8e678d 100644 --- a/Project/src/EntityPlane.java +++ b/Project/src/EntityPlane.java @@ -2,23 +2,28 @@ import java.awt.*; public class EntityPlane { - public int Speed; //скорость + //скорость + public int Speed; public int GetSpeed(){ return Speed; } - public float Weight; //вес + //вес + public float Weight; public float GetWeight(){ return Weight; } - public Color CorpusColor; //цвет корпуса - public Color GetColor(){ + //цвет корпуса + public Color CorpusColor; + public Color GetColor() + { return CorpusColor; } //шаг перемещения самолёта - public float GetStep(){ + public float GetStep() + { return Speed * 100 / Weight; } diff --git a/Project/src/FormMap.form b/Project/src/FormMap.form index 1aca1e8..0eeac40 100644 --- a/Project/src/FormMap.form +++ b/Project/src/FormMap.form @@ -93,7 +93,9 @@ - + + +
@@ -105,7 +107,7 @@ - + diff --git a/Project/src/FormMap.java b/Project/src/FormMap.java index 531d17d..294e93b 100644 --- a/Project/src/FormMap.java +++ b/Project/src/FormMap.java @@ -3,11 +3,8 @@ import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.ComponentAdapter; -import java.awt.event.ComponentEvent; import java.awt.image.BufferedImage; import java.util.Random; -import java.util.Set; public class FormMap extends JFrame { @@ -32,31 +29,11 @@ public class FormMap extends JFrame public void Draw() { - PictureBoxPlane.removeAll(); - - bufferImg = new BufferedImage(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), BufferedImage.TYPE_INT_RGB); - Graphics g = bufferImg.getGraphics(); - g.setColor(new Color(238, 238, 238)); - g.fillRect(0, 0, PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); - - if(_plane != null) - { - _plane.DrawTransport(g); - JLabel imageOfLogo = new JLabel(); - imageOfLogo.setPreferredSize(PictureBoxPlane.getSize()); - imageOfLogo.setMinimumSize(new Dimension(1, 1)); - imageOfLogo.setIcon(new ImageIcon(bufferImg)); - PictureBoxPlane.add(imageOfLogo, BorderLayout.CENTER); + if (bufferImg == null) { + return; } - validate(); - } - - @Override - public void paint(Graphics g) - { - super.paint(g); - Draw(); + PictureBoxPlane.getGraphics().drawImage(bufferImg, 0, 0, PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), null); } public void SetData(DrawingPlane _plane) @@ -68,17 +45,19 @@ public class FormMap extends JFrame LabelColor.setText("Цвет: r = " + _plane.GetPlane().GetColor().getRed() + " g = " + _plane.GetPlane().GetColor().getGreen() + " b = " + _plane.GetPlane().GetColor().getBlue()); - JLabel imageWithMapAndObject = new JLabel(); - imageWithMapAndObject.setPreferredSize(PictureBoxPlane.getSize()); - imageWithMapAndObject.setMinimumSize(new Dimension(1, 1)); - imageWithMapAndObject.setIcon(new ImageIcon(_abstractMap.CreateMap(PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight(), new DrawningObjectPlane((_plane))))); - PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); + if (_abstractMap != null) + { + bufferImg = _abstractMap.CreateMap(PictureBoxPlane.getWidth(), + PictureBoxPlane.getHeight(), new DrawningObjectPlane(_plane)); + } + PictureBoxPlane.revalidate(); } public FormMap() { _abstractMap = new SimpleMap(); + //создание строки отображения скорости, веса и цвета объекта Box LableBox = Box.createHorizontalBox(); LableBox.setMinimumSize(new Dimension(1, 20)); @@ -102,8 +81,6 @@ public class FormMap extends JFrame System.out.println(ex.getMessage()); } - _plane = new DrawingPlane(rnd.nextInt(100, 300), rnd.nextInt(1000, 2000), new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256))); - ButtonCreate.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -113,6 +90,7 @@ public class FormMap extends JFrame plane.SetPosition(rnd.nextInt(10, 100), rnd.nextInt(10, 100), PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); SetData(plane); + Draw(); } }); @@ -129,6 +107,7 @@ public class FormMap extends JFrame PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); PictureBoxPlane.revalidate(); PictureBoxPlane.repaint(); + Draw(); } }); @@ -145,6 +124,7 @@ public class FormMap extends JFrame PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); PictureBoxPlane.revalidate(); PictureBoxPlane.repaint(); + Draw(); } }); @@ -161,6 +141,7 @@ public class FormMap extends JFrame PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); PictureBoxPlane.revalidate(); PictureBoxPlane.repaint(); + Draw(); } }); @@ -177,6 +158,7 @@ public class FormMap extends JFrame PictureBoxPlane.add(imageWithMapAndObject, BorderLayout.CENTER); PictureBoxPlane.revalidate(); PictureBoxPlane.repaint(); + Draw(); } }); @@ -190,6 +172,7 @@ public class FormMap extends JFrame _plane.SetPosition(rnd.nextInt(100, 500), rnd.nextInt(10, 100), PictureBoxPlane.getWidth(), PictureBoxPlane.getHeight()); SetData(_plane); + Draw(); } }); diff --git a/Project/src/IAdditionalDrawingObject.java b/Project/src/IAdditionalDrawingObject.java index cf9f27b..2a39d53 100644 --- a/Project/src/IAdditionalDrawingObject.java +++ b/Project/src/IAdditionalDrawingObject.java @@ -1,7 +1,6 @@ import java.awt.*; -public interface IAdditionalDrawingObject -{ +public interface IAdditionalDrawingObject { void SetAddEnum(int airplaneWindow); void DrawAirplaneWindow(Color colorAirplaneWindow, Graphics g, float _startPosX, float _startPosY); } diff --git a/Project/src/SimpleMap.java b/Project/src/SimpleMap.java index 3eb01a8..7c016c8 100644 --- a/Project/src/SimpleMap.java +++ b/Project/src/SimpleMap.java @@ -39,13 +39,13 @@ public class SimpleMap extends AbstractMap{ protected void DrawRoadPart(Graphics g, int i, int j) { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); - g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override protected void DrawBarrierPart(Graphics g, int i, int j) { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(barriedColor); - g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } } diff --git a/Project/src/StarWarsMap.java b/Project/src/StarWarsMap.java index 8d184ee..01aa27d 100644 --- a/Project/src/StarWarsMap.java +++ b/Project/src/StarWarsMap.java @@ -42,7 +42,7 @@ public class StarWarsMap extends AbstractMap{ protected void DrawRoadPart(Graphics g, int i, int j) { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); - g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override @@ -50,6 +50,6 @@ public class StarWarsMap extends AbstractMap{ Graphics2D g2d = (Graphics2D)g; barriedColor = new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); g2d.setPaint(barriedColor); - g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(_size_x), (int)(_size_y)); + g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } } From 08ea99c93e6e209c7785c0354c63a4ee01a6d663 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Sat, 5 Nov 2022 13:06:59 +0400 Subject: [PATCH 4/8] =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=B2=D0=BA=D0=B8=20?= =?UTF-8?q?=D0=BF=D0=BE=20=D0=BE=D1=84=D0=BE=D1=80=D0=BC=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8E.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/AbstractMap.java | 24 ----------------------- Project/src/DesertStormMap.java | 12 ++++++++---- Project/src/DrawningObjectPlane.java | 4 +--- Project/src/EntityAirbus.java | 3 ++- Project/src/FormAirbus.java | 4 +++- Project/src/FormMap.java | 7 ++++--- Project/src/IAdditionalDrawingObject.java | 3 ++- Project/src/IDrawningObject.java | 3 ++- Project/src/Main.java | 6 ++++-- Project/src/SimpleMap.java | 12 ++++++++---- Project/src/StarWarsMap.java | 12 ++++++++---- 11 files changed, 42 insertions(+), 48 deletions(-) diff --git a/Project/src/AbstractMap.java b/Project/src/AbstractMap.java index 8b952f8..9e73523 100644 --- a/Project/src/AbstractMap.java +++ b/Project/src/AbstractMap.java @@ -10,7 +10,6 @@ public abstract class AbstractMap protected int _height; protected float _size_x; protected float _size_y; - protected float[] position; protected Random _random = new Random(); protected int _freeRoad = 0; protected int _barrier = 1; @@ -119,29 +118,6 @@ public abstract class AbstractMap return DrawMapWithObject(); } - /* - private Direction MoveObjectBack(Direction direction) - { - switch (direction) - { - case Up: - return Direction.Up; - break; - case Down: - return Direction.Down; - break; - case Left: - return Direction.Left; - break; - case Right: - return Direction.Right; - break; - } - - return Direction.None; - } - */ - private boolean SetObjectOnMap() { if(_drawingObject == null || _map == null) diff --git a/Project/src/DesertStormMap.java b/Project/src/DesertStormMap.java index 10ce783..3128582 100644 --- a/Project/src/DesertStormMap.java +++ b/Project/src/DesertStormMap.java @@ -1,6 +1,7 @@ import java.awt.*; -public class DesertStormMap extends AbstractMap{ +public class DesertStormMap extends AbstractMap +{ //цвет закрытого участка private final Color barriedColor = new Color(139, 0, 0); @@ -8,7 +9,8 @@ public class DesertStormMap extends AbstractMap{ private final Color roadColor = new Color(255, 140, 0); @Override - protected void GenerateMap() { + protected void GenerateMap() + { _map = new int[100][100]; _size_x = (float)_width / _map.length; _size_y = (float)_height / _map[0].length; @@ -36,14 +38,16 @@ public class DesertStormMap extends AbstractMap{ } @Override - protected void DrawRoadPart(Graphics g, int i, int j) { + protected void DrawRoadPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override - protected void DrawBarrierPart(Graphics g, int i, int j) { + protected void DrawBarrierPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(barriedColor); g.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); diff --git a/Project/src/DrawningObjectPlane.java b/Project/src/DrawningObjectPlane.java index 7240f70..89d6b0d 100644 --- a/Project/src/DrawningObjectPlane.java +++ b/Project/src/DrawningObjectPlane.java @@ -4,9 +4,7 @@ public class DrawningObjectPlane implements IDrawningObject { private DrawingPlane _plane = null; - public DrawningObjectPlane(DrawingPlane plane){ - _plane = plane; - } + public DrawningObjectPlane(DrawingPlane plane){ _plane = plane; } @Override public float Step() diff --git a/Project/src/EntityAirbus.java b/Project/src/EntityAirbus.java index 25c99c8..10cfcfe 100644 --- a/Project/src/EntityAirbus.java +++ b/Project/src/EntityAirbus.java @@ -1,6 +1,7 @@ import java.awt.*; -public class EntityAirbus extends EntityPlane{ +public class EntityAirbus extends EntityPlane +{ //Дополнительный цвет public Color AddColor; diff --git a/Project/src/FormAirbus.java b/Project/src/FormAirbus.java index d682a4e..84c4bce 100644 --- a/Project/src/FormAirbus.java +++ b/Project/src/FormAirbus.java @@ -43,7 +43,9 @@ public class FormAirbus ButtonDown.setIcon(new ImageIcon(img)); img = ImageIO.read(getClass().getResource("resourses/Right.png")); ButtonRight.setIcon(new ImageIcon(img)); - } catch (Exception ex){ + } + catch (Exception ex) + { System.out.println(ex.getMessage()); } diff --git a/Project/src/FormMap.java b/Project/src/FormMap.java index 294e93b..e08377f 100644 --- a/Project/src/FormMap.java +++ b/Project/src/FormMap.java @@ -29,7 +29,8 @@ public class FormMap extends JFrame public void Draw() { - if (bufferImg == null) { + if (bufferImg == null) + { return; } @@ -76,7 +77,8 @@ public class FormMap extends JFrame ButtonDown.setIcon(new ImageIcon(img)); img = ImageIO.read(getClass().getResource("resourses/Right.png")); ButtonRight.setIcon(new ImageIcon(img)); - } catch (Exception ex) + } + catch (Exception ex) { System.out.println(ex.getMessage()); } @@ -176,7 +178,6 @@ public class FormMap extends JFrame } }); - ComboBoxSelectorMap.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { diff --git a/Project/src/IAdditionalDrawingObject.java b/Project/src/IAdditionalDrawingObject.java index 2a39d53..cf9f27b 100644 --- a/Project/src/IAdditionalDrawingObject.java +++ b/Project/src/IAdditionalDrawingObject.java @@ -1,6 +1,7 @@ import java.awt.*; -public interface IAdditionalDrawingObject { +public interface IAdditionalDrawingObject +{ void SetAddEnum(int airplaneWindow); void DrawAirplaneWindow(Color colorAirplaneWindow, Graphics g, float _startPosX, float _startPosY); } diff --git a/Project/src/IDrawningObject.java b/Project/src/IDrawningObject.java index 5d5092e..fe90faa 100644 --- a/Project/src/IDrawningObject.java +++ b/Project/src/IDrawningObject.java @@ -1,6 +1,7 @@ import java.awt.*; -public interface IDrawningObject { +public interface IDrawningObject +{ //шаг перемещения объекта public float Step(); diff --git a/Project/src/Main.java b/Project/src/Main.java index 6b0c728..6387f7b 100644 --- a/Project/src/Main.java +++ b/Project/src/Main.java @@ -1,7 +1,9 @@ import javax.swing.*; -public class Main { - public static void main(String[] args) { +public class Main +{ + public static void main(String[] args) + { JFrame frame = new JFrame("Airbus"); frame.setContentPane(new FormMap().MainPanel); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); diff --git a/Project/src/SimpleMap.java b/Project/src/SimpleMap.java index 7c016c8..0072a53 100644 --- a/Project/src/SimpleMap.java +++ b/Project/src/SimpleMap.java @@ -1,6 +1,7 @@ import java.awt.*; -public class SimpleMap extends AbstractMap{ +public class SimpleMap extends AbstractMap +{ //цвет закрытого участка private final Color barriedColor = Color.black; @@ -8,7 +9,8 @@ public class SimpleMap extends AbstractMap{ private final Color roadColor = Color.gray; @Override - protected void GenerateMap() { + protected void GenerateMap() + { _map = new int[100][100]; _size_x = (float)_width / _map.length; _size_y = (float)_height / _map[0].length; @@ -36,14 +38,16 @@ public class SimpleMap extends AbstractMap{ } @Override - protected void DrawRoadPart(Graphics g, int i, int j) { + protected void DrawRoadPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override - protected void DrawBarrierPart(Graphics g, int i, int j) { + protected void DrawBarrierPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(barriedColor); g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); diff --git a/Project/src/StarWarsMap.java b/Project/src/StarWarsMap.java index 01aa27d..40918a0 100644 --- a/Project/src/StarWarsMap.java +++ b/Project/src/StarWarsMap.java @@ -1,7 +1,8 @@ import java.awt.*; import java.util.Random; -public class StarWarsMap extends AbstractMap{ +public class StarWarsMap extends AbstractMap +{ Random rnd = new Random(); //цвет закрытого участка @@ -11,7 +12,8 @@ public class StarWarsMap extends AbstractMap{ private final Color roadColor = new Color(0, 0, 139); @Override - protected void GenerateMap() { + protected void GenerateMap() + { _map = new int[100][100]; _size_x = (float)_width / _map.length; _size_y = (float)_height / _map[0].length; @@ -39,14 +41,16 @@ public class StarWarsMap extends AbstractMap{ } @Override - protected void DrawRoadPart(Graphics g, int i, int j) { + protected void DrawRoadPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; g2d.setPaint(roadColor); g2d.fillRect((int)(i * _size_x), (int)(j * _size_y), (int)(i * (_size_x + 1)), (int)(j *(_size_y + 1))); } @Override - protected void DrawBarrierPart(Graphics g, int i, int j) { + protected void DrawBarrierPart(Graphics g, int i, int j) + { Graphics2D g2d = (Graphics2D)g; barriedColor = new Color(rnd.nextInt(256), rnd.nextInt(256), rnd.nextInt(256)); g2d.setPaint(barriedColor); From 98cf530e89680ee935050c1b6f03cedf7a61e9d4 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Sat, 5 Nov 2022 20:56:34 +0400 Subject: [PATCH 5/8] =?UTF-8?q?=D0=A3=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2?= =?UTF-8?q?=D0=BA=D0=B0=20=D0=BF=D1=80=D0=B0=D0=B2=D0=B8=D0=BB=D1=8C=D0=BD?= =?UTF-8?q?=D1=8B=D1=85=20=D0=BD=D0=B0=D0=B7=D0=B2=D0=B0=D0=BD=D0=B8=D0=B9?= =?UTF-8?q?.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/{FormAirbus.form => FormPlane.form} | 2 +- Project/src/{FormAirbus.java => FormPlane.java} | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) rename Project/src/{FormAirbus.form => FormPlane.form} (99%) rename Project/src/{FormAirbus.java => FormPlane.java} (98%) diff --git a/Project/src/FormAirbus.form b/Project/src/FormPlane.form similarity index 99% rename from Project/src/FormAirbus.form rename to Project/src/FormPlane.form index 714bd1f..9f4bf18 100644 --- a/Project/src/FormAirbus.form +++ b/Project/src/FormPlane.form @@ -1,5 +1,5 @@ -
+ diff --git a/Project/src/FormAirbus.java b/Project/src/FormPlane.java similarity index 98% rename from Project/src/FormAirbus.java rename to Project/src/FormPlane.java index 84c4bce..27b4444 100644 --- a/Project/src/FormAirbus.java +++ b/Project/src/FormPlane.java @@ -7,7 +7,7 @@ import java.awt.event.ComponentAdapter; import java.awt.event.ComponentEvent; import java.util.Random; -public class FormAirbus +public class FormPlane { protected DrawingPlane plane; @@ -23,7 +23,7 @@ public class FormAirbus private JLabel LabelWeight = new JLabel(); private JLabel LabelColor = new JLabel(); - public FormAirbus() + public FormPlane() { //создание строки отображения скорости, веса и цвета объекта Box LableBox = Box.createHorizontalBox(); From 749d56c2ab374db5f9af70bebcaf92fe6293a23a Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Mon, 7 Nov 2022 10:25:01 +0400 Subject: [PATCH 6/8] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/Direction.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Project/src/Direction.java b/Project/src/Direction.java index e2d98d9..aab36d9 100644 --- a/Project/src/Direction.java +++ b/Project/src/Direction.java @@ -8,7 +8,7 @@ public enum Direction private final int DirectionCode; - private Direction(int directionCode) + Direction(int directionCode) { this.DirectionCode = directionCode; } From e4cfcc740b8230fdbada56528f127c7ce8d049a3 Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Mon, 7 Nov 2022 10:30:22 +0400 Subject: [PATCH 7/8] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=20?= =?UTF-8?q?=E2=84=962.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/Project.iml | 11 ----------- 1 file changed, 11 deletions(-) delete mode 100644 Project/src/Project.iml diff --git a/Project/src/Project.iml b/Project/src/Project.iml deleted file mode 100644 index b107a2d..0000000 --- a/Project/src/Project.iml +++ /dev/null @@ -1,11 +0,0 @@ - - - - - - - - - - - \ No newline at end of file From ff1be9c2c2ed3692b02737807049d2108bf19f5a Mon Sep 17 00:00:00 2001 From: Programmist73 Date: Mon, 7 Nov 2022 10:42:23 +0400 Subject: [PATCH 8/8] =?UTF-8?q?=D0=9C=D0=B5=D0=BB=D0=BA=D0=B8=D0=B5=20?= =?UTF-8?q?=D0=B4=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82=D0=BA=D0=B8=20?= =?UTF-8?q?=E2=84=962.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Project/src/Main.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Project/src/Main.java b/Project/src/Main.java index 6387f7b..1d80b98 100644 --- a/Project/src/Main.java +++ b/Project/src/Main.java @@ -13,3 +13,4 @@ public class Main frame.setVisible(true); } } +