From 492f45eb92c8f0dca049f38f1b0a29ef69ec6fe9 Mon Sep 17 00:00:00 2001 From: prodigygirl Date: Sun, 23 Oct 2022 17:37:23 +0400 Subject: [PATCH] =?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=B4=D0=B2=D1=83=D1=85=20=D1=80=D0=B5?= =?UTF-8?q?=D0=B0=D0=BB=D0=B8=D0=B7=D0=B0=D1=86=D0=B8=D0=B9=20=D1=81=D0=B2?= =?UTF-8?q?=D0=BE=D0=B8=D1=85=20=D0=BA=D0=B0=D1=80=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/MyMapLabyrinth.java | 65 +++++++++++++++++++++++++++++++ src/main/java/MyMapWooden.java | 46 ++++++++++++++++++++++ 2 files changed, 111 insertions(+) create mode 100644 src/main/java/MyMapLabyrinth.java create mode 100644 src/main/java/MyMapWooden.java diff --git a/src/main/java/MyMapLabyrinth.java b/src/main/java/MyMapLabyrinth.java new file mode 100644 index 0000000..a832924 --- /dev/null +++ b/src/main/java/MyMapLabyrinth.java @@ -0,0 +1,65 @@ +import java.awt.*; + +public class MyMapLabyrinth extends AbstractMap{ + private final Color barrierColor = Color.BLUE; + private final Color roadColor = Color.BLACK; + @Override + protected void GenerateMap() { + map = new int[50][50]; + 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 < 20) + { + int x = random.nextInt(0, 50); + int y = random.nextInt(0, 50); + int number = random.nextInt(1, 16); + if (counter < 5) { + if (number + x > map.length) + { + number = map.length - x - 1; + } + for (int i = x; i < x + number; ++i) + { + map[i][y] = _barrier; + } + } else + { + if (number + y > map[0].length) + { + number = map[0].length - y - 1; + } + for (int i = y; i < y + number; ++i) + { + map[x][i] = _barrier; + } + } + counter++; + + } + } + + @Override + protected void DrawRoadPart(Graphics2D g, int i, int j) { + g.setColor(roadColor); + int new_size_x = Math.round(size_x); + int new_size_y = Math.round(size_y); + g.fillRect(i * new_size_x, j * new_size_y, new_size_x, new_size_y); + } + + @Override + protected void DrawBarrierPart(Graphics2D g, int i, int j) { + g.setColor(barrierColor); + int new_size_x = Math.round(size_x); + int new_size_y = Math.round(size_y); + g.fillRect(i * new_size_x, j * new_size_y, new_size_x, new_size_y); + } +} diff --git a/src/main/java/MyMapWooden.java b/src/main/java/MyMapWooden.java new file mode 100644 index 0000000..224ad4d --- /dev/null +++ b/src/main/java/MyMapWooden.java @@ -0,0 +1,46 @@ +import java.awt.*; + +public class MyMapWooden extends AbstractMap{ + private final Color barrierColor = new Color(45, 77, 44); + private final Color roadColor = new Color(105, 70, 35); + @Override + protected void GenerateMap() { + map = new int[10][10]; + 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 < 10) + { + int x = random.nextInt(10); + int y = random.nextInt(10); + if (map[x][y] == _freeRoad) + { + map[x][y] = _barrier; + counter++; + } + } + } + + @Override + protected void DrawRoadPart(Graphics2D g, int i, int j) { + g.setColor(roadColor); + int new_size_x = Math.round(size_x); + int new_size_y = Math.round(size_y); + g.fillRect(i * new_size_x, j * new_size_y, new_size_x, new_size_y); + } + + @Override + protected void DrawBarrierPart(Graphics2D g, int i, int j) { + g.setColor(barrierColor); + int new_size_x = Math.round(size_x); + int new_size_y = Math.round(size_y); + g.fillRect(i * new_size_x, j * new_size_y, new_size_x, new_size_y); + } +}