From 911e8bfdc562b76e3af45fb69ff552bbc362b664 Mon Sep 17 00:00:00 2001 From: AnnaLioness Date: Mon, 25 Sep 2023 18:40:25 +0400 Subject: [PATCH] =?UTF-8?q?=D0=BB=D0=B0=D0=B1=D0=B01?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Direction.java | 3 + DrawingContainerShip.java | 130 ++++++++++++++++++++++++++++++++++++++ DrawingDecks.java | 39 ++++++++++++ EntityContainerShip.java | 25 ++++++++ Form1.java | 121 +++++++++++++++++++++++++++++++++++ Main.java | 5 ++ NumberOfDecks.java | 3 + photo11.png | Bin 0 -> 3203 bytes photo22.png | Bin 0 -> 3395 bytes photo33.png | Bin 0 -> 3226 bytes photo44.png | Bin 0 -> 3406 bytes 11 files changed, 326 insertions(+) create mode 100644 Direction.java create mode 100644 DrawingContainerShip.java create mode 100644 DrawingDecks.java create mode 100644 EntityContainerShip.java create mode 100644 Form1.java create mode 100644 Main.java create mode 100644 NumberOfDecks.java create mode 100644 photo11.png create mode 100644 photo22.png create mode 100644 photo33.png create mode 100644 photo44.png diff --git a/Direction.java b/Direction.java new file mode 100644 index 0000000..4146335 --- /dev/null +++ b/Direction.java @@ -0,0 +1,3 @@ +public enum Direction { + Up, Down, Left, Right; +} diff --git a/DrawingContainerShip.java b/DrawingContainerShip.java new file mode 100644 index 0000000..129c290 --- /dev/null +++ b/DrawingContainerShip.java @@ -0,0 +1,130 @@ +import java.awt.*; + +public class DrawingContainerShip { + public EntityContainerShip EntityContainerShip; + private int _pictureWidth; + private int _pictureHeight; + private int _startPosX; + private int _startPosY; + private int _shipWidth = 110; + private int _shipHeight = 65; + private DrawingDecks drawingDecks; + public boolean Init(int speed, double weight, Color bodyColor, Color + additionalColor, boolean crane, boolean container, int deck, int width, int height) + { + _pictureWidth = width; + _pictureHeight = height; + if (_pictureWidth < _shipWidth || _pictureHeight < _shipHeight) + { + return false; + } + EntityContainerShip = new EntityContainerShip(); + EntityContainerShip.Init(speed, weight, bodyColor, additionalColor, + crane, container, deck); + drawingDecks = new DrawingDecks(); + drawingDecks.setNumDecks(deck); + return true; + } + public void SetPosition(int x, int y) + { + _startPosX = Math.min(x, _pictureWidth - _shipWidth); + _startPosY = Math.min(y, _pictureHeight - _shipHeight); + } + public void MoveTransport(Direction direction) + { + if (EntityContainerShip == null) + { + return; + } + switch (direction) + { + case Left: + if (_startPosX - EntityContainerShip.Step > 0) + { + _startPosX -= (int)EntityContainerShip.Step; + } + break; + + case Up: + if (_startPosY - EntityContainerShip.Step > 0) + { + _startPosY -= (int)EntityContainerShip.Step; + } + break; + + case Right: + + if (_startPosX + EntityContainerShip.Step + _shipWidth < _pictureWidth) + { + _startPosX += (int)EntityContainerShip.Step; + } + break; + + case Down: + + if (_startPosY + EntityContainerShip.Step + _shipHeight< _pictureHeight) + { + _startPosY += (int)EntityContainerShip.Step; + } + break; + } + } + public void DrawShip(Graphics2D g) + { + if (EntityContainerShip == null) + { + return; + } + //Pen pen = new Pen(Color.Black); + //Brush adbrush = new SolidBrush(EntityContainerShip.AdditionalColor); + //Brush brBlue = new SolidBrush(Color.Blue); + g.setPaint(Color.BLUE); + // заполнение борта + int x[] = {_startPosX+ 20, _startPosX+40, _startPosX+110, _startPosX+130, _startPosX+ 20}; + int y[] = {_startPosY+65,_startPosY+85, _startPosY+85, _startPosY+65, _startPosY+65}; + g.fillPolygon(x, y, 5); + + //борт корабля контур + g.setPaint(Color.BLACK); + int _x[] = {_startPosX+ 20, _startPosX+40, _startPosX+110, _startPosX+130, _startPosX+ 20}; + int _y[] = {_startPosY+65,_startPosY+85, _startPosY+85, _startPosY+65, _startPosY+65}; + g.drawPolyline(_x, _y, 5); + //рисунок на борту + g.drawLine(_startPosX + 43, _startPosY + 80, _startPosX + 47, _startPosY + 80); + g.drawLine(_startPosX + 45, _startPosY + 70, _startPosX + 45, _startPosY + 80); + g.drawLine(_startPosX + 40, _startPosY + 75, _startPosX + 50, _startPosY + 75); + + //контейнеры + if (EntityContainerShip.Conteiners) + { + g.setPaint(EntityContainerShip.AdditionalColor); + g.fillRect(_startPosX + 50, _startPosY + 55, 35, 10); + g.fillRect(_startPosX + 85, _startPosY + 55, 20, 10); + g.fillRect(_startPosX + 105, _startPosY + 50, 15, 15); + g.fillRect(_startPosX + 50, _startPosY + 45, 15, 10); + g.fillRect(_startPosX + 65, _startPosY + 45, 55, 5); + g.fillRect(_startPosX + 65, _startPosY + 50, 40, 5); + g.setPaint(Color.BLACK); + g.drawRect(_startPosX + 50, _startPosY + 55, 35, 10); + g.drawRect(_startPosX + 85, _startPosY + 55, 20, 10); + g.drawRect(_startPosX + 105, _startPosY + 50, 15, 15); + g.drawRect(_startPosX + 50, _startPosY + 45, 15, 10); + g.drawRect(_startPosX + 65, _startPosY + 45, 55, 5); + g.drawRect(_startPosX + 65, _startPosY + 50, 40, 5); + } + //кран + if (EntityContainerShip.Crane) + { + g.setPaint(EntityContainerShip.AdditionalColor); + g.fillRect(_startPosX + 43, _startPosY+20, 5, 45); + g.fillRect(_startPosX + 47, _startPosY + 30, 20, 3); + g.setPaint(Color.BLACK); + g.drawRect(_startPosX + 43, _startPosY+20, 5, 45); + g.drawRect(_startPosX + 47, _startPosY + 30, 20, 3); + g.drawLine(_startPosX + 47, _startPosY+20, _startPosX + 67, _startPosY + 30); + g.drawLine(_startPosX + 67, _startPosY + 33, _startPosX + 67, _startPosY + 45); + } + drawingDecks.DrawDeck(_startPosX, _startPosY, g); + } + +} diff --git a/DrawingDecks.java b/DrawingDecks.java new file mode 100644 index 0000000..7d33080 --- /dev/null +++ b/DrawingDecks.java @@ -0,0 +1,39 @@ +import java.awt.*; + +public class DrawingDecks { + private NumberOfDecks numDecks; + public NumberOfDecks getProperty(){ + return numDecks; + } + public void setNumDecks(int nDecks){ + switch(nDecks){ + case 1: + numDecks = NumberOfDecks.Deck_1; + break; + case 2: + numDecks = NumberOfDecks.Deck_2; + break; + case 3: + numDecks = NumberOfDecks.Deck_3; + break; + default: + numDecks = NumberOfDecks.Deck_1; + System.out.println("Что-то пошло не так, количество палуб неверное" + Integer.toString(nDecks) + "сделаем вид, будто она одна"); + break; + } + } + public void DrawDeck(int _startPosX, int _startPosY, Graphics2D g){ + if(numDecks == NumberOfDecks.Deck_1){ + + } + if(numDecks == NumberOfDecks.Deck_2){ + g.setPaint(Color.BLACK); + g.drawLine(_startPosX + 120, _startPosY + 75, _startPosX+ 55, _startPosY + 75); + } + if(numDecks == NumberOfDecks.Deck_3){ + g.setPaint(Color.BLACK); + g.drawLine(_startPosX + 120, _startPosY + 75, _startPosX+ 55, _startPosY + 75); + g.drawLine(_startPosX + 125, _startPosY + 70, _startPosX+ 50, _startPosY + 70); + } + } +} diff --git a/EntityContainerShip.java b/EntityContainerShip.java new file mode 100644 index 0000000..fb2d513 --- /dev/null +++ b/EntityContainerShip.java @@ -0,0 +1,25 @@ +import java.awt.*; + + +public class EntityContainerShip { + public int Speed; + public double Weight; + public Color BodyColor; + public Color AdditionalColor; + public boolean Crane; + public boolean Conteiners; + public int Deck; + public double Step; + public void Init(int speed, double weight, Color bodyColor, Color +additionalColor, boolean crane, boolean containers, int deck) + { + Speed = speed; + Weight = weight; + BodyColor = bodyColor; + AdditionalColor = additionalColor; + Crane = crane; + Conteiners = containers; + Deck = deck; + Step = (double)Speed * 100 / Weight; + } +} diff --git a/Form1.java b/Form1.java new file mode 100644 index 0000000..86ee3e8 --- /dev/null +++ b/Form1.java @@ -0,0 +1,121 @@ +import java.awt.*; +import java.util.*; +import javax.swing.*; +import java.awt.event.*; +public class Form1 { + private DrawingContainerShip _drawingShip; + Canvas canv; + + public void Draw(){ + canv.repaint(); + } + public Form1(){ + JFrame w=new JFrame ("ContainerShip"); + JButton buttonCreate = new JButton("создать"); + JButton up = new JButton(); + up.setBorderPainted(false); + up.setFocusPainted(false); + up.setContentAreaFilled(false); + up.setName("up"); + up.setIcon(new ImageIcon("photo11.png")); + JButton down = new JButton(); + down.setBorderPainted(false); + down.setFocusPainted(false); + down.setContentAreaFilled(false); + down.setName("down"); + down.setIcon(new ImageIcon("photo33.png")); + JButton left = new JButton(); + left.setBorderPainted(false); + left.setFocusPainted(false); + left.setContentAreaFilled(false); + left.setName("left"); + left.setIcon(new ImageIcon("photo44.png")); + JButton right = new JButton(); + right.setBorderPainted(false); + right.setFocusPainted(false); + right.setContentAreaFilled(false); + right.setName("right"); + right.setIcon(new ImageIcon("photo22.png")); + buttonCreate.addActionListener( + new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(e.getActionCommand()); + Random random = new Random(); + _drawingShip = new DrawingContainerShip(); + /*_drawingShip.Init(random.nextInt(100, 300), + random.nextInt(1000, 3000), + new Color(random.nextInt(0, 256), random.nextInt(0, 256),random.nextInt(0, 256)), + new Color(random.nextInt(0, 256), random.nextInt(0, 256),random.nextInt(0, 256)), + random.nextBoolean(0, 2),random.nextBoolean(0, 2),1000, 560);*/ + _drawingShip.Init(random.nextInt(100,300), + random.nextInt(1000,3000), + new Color(random.nextInt(0,256), random.nextInt(0,256), random.nextInt(0,256)), + new Color(random.nextInt(0,256), random.nextInt(0,256), random.nextInt(0,256)), + random.nextBoolean(), random.nextBoolean(), random.nextInt(1,4), 960, 560); + _drawingShip.SetPosition(random.nextInt(10, 100),random.nextInt(10, 100)); + canv._drawingShip = _drawingShip; + Draw(); + } + } + ); + ActionListener actioListener = new ActionListener() { + public void actionPerformed(ActionEvent e){ + System.out.println(((JButton)(e.getSource())).getName()); + if (_drawingShip == null) + { + return; + } + switch(((JButton)(e.getSource())).getName()){ + case "up": + _drawingShip.MoveTransport(Direction.Up); + break; + case "down": + _drawingShip.MoveTransport(Direction.Down); + break; + case "left": + _drawingShip.MoveTransport(Direction.Left); + break; + case "right": + _drawingShip.MoveTransport(Direction.Right); + break; + } + Draw(); + } + }; + up.addActionListener(actioListener); + down.addActionListener(actioListener); + left.addActionListener(actioListener); + right.addActionListener(actioListener); + w.setSize (1000, 600); + w.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE); + w.setLayout(null); + canv = new Canvas(); + canv.setBounds(0, 0, 1000, 600); + buttonCreate.setBounds(2, 540, 100, 20); + up.setBounds(900, 480, 45, 45); + down.setBounds(900, 520, 45, 45); + left.setBounds(860, 520, 45, 45); + right.setBounds(940, 520, 45, 45); + w.add(canv); + w.add(buttonCreate); + w.add(up); + w.add(down); + w.add(left); + w.add(right); + w.setVisible (true); + } +} +class Canvas extends JComponent{ + public DrawingContainerShip _drawingShip; + public Canvas(){ + } + public void paintComponent (Graphics g){ + if (_drawingShip == null){ + return; + } + super.paintComponents (g) ; + Graphics2D g2d = (Graphics2D)g; + _drawingShip.DrawShip(g2d); + super.repaint(); + } +} diff --git a/Main.java b/Main.java new file mode 100644 index 0000000..6402b78 --- /dev/null +++ b/Main.java @@ -0,0 +1,5 @@ +public class Main { + public static void main(String[] args){ + Form1 form1 = new Form1(); + } +} diff --git a/NumberOfDecks.java b/NumberOfDecks.java new file mode 100644 index 0000000..04cd0f3 --- /dev/null +++ b/NumberOfDecks.java @@ -0,0 +1,3 @@ +public enum NumberOfDecks { + Deck_1, Deck_2, Deck_3; +} diff --git a/photo11.png b/photo11.png new file mode 100644 index 0000000000000000000000000000000000000000..823c1fc8bfa97b7bc6b637b790f1b1cb47394d5b GIT binary patch literal 3203 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 literal 0 HcmV?d00001 diff --git a/photo22.png b/photo22.png new file mode 100644 index 0000000000000000000000000000000000000000..c57351a5945a671caa841ff3a1e36e9ff0780baa GIT binary patch literal 3395 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 Z{sZOk4K`5=e>DIA002ovPDHLkV1llQcu4>N literal 0 HcmV?d00001 diff --git a/photo33.png b/photo33.png new file mode 100644 index 0000000000000000000000000000000000000000..0de2bde91fe52efa574baa3cec9c9295c2ef129c GIT binary patch literal 3226 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 M07*qoM6N<$g2JIEzyJUM literal 0 HcmV?d00001 diff --git a/photo44.png b/photo44.png new file mode 100644 index 0000000000000000000000000000000000000000..80f70c6b5b0627a320fb2a6494ffce361f0ad92c GIT binary patch literal 3406 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 literal 0 HcmV?d00001