diff options
Diffstat (limited to 'graphs/java/drawing/src')
7 files changed, 132 insertions, 0 deletions
diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Circle.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Circle.java new file mode 100644 index 0000000..306d870 --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Circle.java @@ -0,0 +1,27 @@ +package fr.epita.assistants.drawing; + +public class Circle extends Entity { + private int radius; + + public Circle(int radius) { + super(); + this.radius = radius; + } + + @Override + public void draw() { + for (int y = -radius; y < radius + 1; y++) { + for (int x = -radius; x < radius + 1; x++) { + if (Math.abs((radius * radius) - ((x * x) + (y * y))) < radius) { + System.out.print('#'); + } + else + System.out.print(' '); + if (x < radius) + System.out.print(' '); + } + if (y < radius) + System.out.print("\n"); + } + } +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Entity.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Entity.java new file mode 100644 index 0000000..a91aa0f --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Entity.java @@ -0,0 +1,20 @@ +package fr.epita.assistants.drawing; + +import lombok.Getter; + +public abstract class Entity implements IDrawable { + @Getter + private long id; + private static long SEQUENCE = 0; + + public Entity() { + this.id = SEQUENCE; + SEQUENCE++; + } + + @Override + public void draw() { + System.out.println("This shouldn't happen"); + } + +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/IDrawable.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/IDrawable.java new file mode 100644 index 0000000..2af2df1 --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/IDrawable.java @@ -0,0 +1,5 @@ +package fr.epita.assistants.drawing; + +public interface IDrawable { + public void draw(); +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Rectangle.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Rectangle.java new file mode 100644 index 0000000..944a75b --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Rectangle.java @@ -0,0 +1,31 @@ +package fr.epita.assistants.drawing; + +public class Rectangle extends Sharp { + private int width; + + public Rectangle(int width, int length) { + super(length); + this.width = width; + } + + @Override + public void draw() { + for (int i = 0; i < width; i++) { + System.out.print("# "); + } + System.out.print("\n"); + for (int i = 0; i < length - 2; i++) { + System.out.print("# "); + for (int j = 0; j < width - 2; j++) { + System.out.print(" "); + } + System.out.println("# "); + } + if (length < 2) + return; + for (int i = 0; i < width; i++) { + System.out.print("# "); + } + System.out.print("\n"); + } +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Sharp.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Sharp.java new file mode 100644 index 0000000..604f255 --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Sharp.java @@ -0,0 +1,9 @@ +package fr.epita.assistants.drawing; + +public abstract class Sharp extends Entity { + protected int length; + public Sharp(int length) { + super(); + this.length = length; + } +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Square.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Square.java new file mode 100644 index 0000000..d807bcc --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Square.java @@ -0,0 +1,7 @@ +package fr.epita.assistants.drawing; + +public class Square extends Rectangle { + public Square(int length) { + super(length, length); + } +} diff --git a/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Triangle.java b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Triangle.java new file mode 100644 index 0000000..a43248c --- /dev/null +++ b/graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Triangle.java @@ -0,0 +1,33 @@ +package fr.epita.assistants.drawing; + +public class Triangle extends Sharp { + public Triangle(int length) { + super(length); + } + + @Override + public void draw() { + if (length == 0) + return; + if (length == 2) + { + System.out.println("#\n# #"); + return; + } + System.out.println('#'); + for (int y = 2; y < length; y++) { + System.out.print("# "); + for (int x = 0; x < y - 2; x++) { + System.out.print(" "); + } + System.out.println("#"); + } + if (length > 2) + { + for (int i = 0; i < length; i++) { + System.out.print("# "); + } + } + System.out.print("\n"); + } +} |
