From f7843bddbecb3b939b24c05e0e29d7002c62a32f Mon Sep 17 00:00:00 2001 From: Sergey Kozyrev Date: Wed, 15 Nov 2023 14:18:07 +0400 Subject: [PATCH] Laba4 KozyrevSS GasolineTanker JAVA HARD --- ComboFrame.java | 47 ++++++++++++++++++++++++++++++------- ComboGenericCollection.java | 34 --------------------------- 2 files changed, 39 insertions(+), 42 deletions(-) diff --git a/ComboFrame.java b/ComboFrame.java index 9194ae1..3d056a4 100644 --- a/ComboFrame.java +++ b/ComboFrame.java @@ -10,14 +10,12 @@ class DrawRandomTanker extends JComponent { public DrawRandomTanker() { GeneratorTanker = new ComboGenericCollection<>(25, 1000, 600); - GeneratorTanker.Add(GeneratorTanker.GenerateTanker()); - GeneratorTanker.Add(GeneratorTanker.GenerateTanker()); - GeneratorTanker.Add(GeneratorTanker.GenerateTanker()); - GeneratorTanker.Add(GeneratorTanker.GenerateTanker()); - GeneratorTanker.Add(GeneratorTanker.GenerateWheel()); - GeneratorTanker.Add(GeneratorTanker.GenerateWheel()); - GeneratorTanker.Add(GeneratorTanker.GenerateWheel()); - GeneratorTanker.Add(GeneratorTanker.GenerateWheel()); + GeneratorTanker.Add(GenerateTanker()); + GeneratorTanker.Add(GenerateWheel()); + GeneratorTanker.Add(GenerateTanker()); + GeneratorTanker.Add(GenerateWheel()); + GeneratorTanker.Add(GenerateTanker()); + GeneratorTanker.Add(GenerateWheel()); } public void paintComponent(Graphics g) { @@ -27,7 +25,40 @@ class DrawRandomTanker extends JComponent { _drawTanker.DrawTransport(g); super.repaint(); } + private boolean IntToBool(int n) {return n % 2 == 0;} + public BaseTanker GenerateTanker() + { + Random random = new Random(); + int mode = random.nextInt(0, 100) % 2; + if (mode == 0) + { + return new BaseTanker(random.nextInt(100, 200), random.nextInt(2000, 4000), + new Color(random.nextInt(0, 256), random.nextInt(0, 256), random.nextInt(0, 256))); + } + else + { + return new GasolineTanker(random.nextInt(100, 200), random.nextInt(2000, 4000), + 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)), + IntToBool(random.nextInt(0, 100)),IntToBool(random.nextInt(0, 100)), IntToBool(random.nextInt(0, 100))); + } + } + public IWheelDraw GenerateWheel() + { + Random random = new Random(); + int mode = random.nextInt(0, 100) % 3; + IWheelDraw Wheels = new DrawWheelSquare(); + switch (mode) + { + case 0 -> {Wheels = new DrawWheelCircle();} + case 1 -> {Wheels = new DrawWheelClassic();} + case 2 -> {Wheels = new DrawWheelSquare();} + } + int count = random.nextInt(0, 100); + Wheels.setWheelCount(count); + return Wheels; + } protected void GenerateTanker_Click() { _drawTanker = GeneratorTanker.CreateDraw(); diff --git a/ComboGenericCollection.java b/ComboGenericCollection.java index 9a35faa..81d9e60 100644 --- a/ComboGenericCollection.java +++ b/ComboGenericCollection.java @@ -22,38 +22,6 @@ public class ComboGenericCollection {Wheels = (U) new DrawWheelCircle();} - case 1 -> {Wheels = (U) new DrawWheelClassic();} - case 2 -> {Wheels = (U) new DrawWheelSquare();} - } - int count = random.nextInt(0, 100); - Wheels.setWheelCount(count); - return Wheels; - } - public boolean Add(T tanker) { for (int i = 0; i < MaxSize(); i++) @@ -83,8 +51,6 @@ public class ComboGenericCollection