summaryrefslogtreecommitdiff
path: root/graphs/java/drawing
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/java/drawing')
-rw-r--r--graphs/java/drawing/.gitignore38
-rw-r--r--graphs/java/drawing/pom.xml139
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Circle.java27
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Entity.java20
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/IDrawable.java5
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Rectangle.java31
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Sharp.java9
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Square.java7
-rw-r--r--graphs/java/drawing/src/main/java/fr/epita/assistants/drawing/Triangle.java33
9 files changed, 309 insertions, 0 deletions
diff --git a/graphs/java/drawing/.gitignore b/graphs/java/drawing/.gitignore
new file mode 100644
index 0000000..5ff6309
--- /dev/null
+++ b/graphs/java/drawing/.gitignore
@@ -0,0 +1,38 @@
+target/
+!.mvn/wrapper/maven-wrapper.jar
+!**/src/main/**/target/
+!**/src/test/**/target/
+
+### IntelliJ IDEA ###
+.idea/modules.xml
+.idea/jarRepositories.xml
+.idea/compiler.xml
+.idea/libraries/
+*.iws
+*.iml
+*.ipr
+
+### Eclipse ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### NetBeans ###
+/nbproject/private/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
+build/
+!**/src/main/**/build/
+!**/src/test/**/build/
+
+### VS Code ###
+.vscode/
+
+### Mac OS ###
+.DS_Store \ No newline at end of file
diff --git a/graphs/java/drawing/pom.xml b/graphs/java/drawing/pom.xml
new file mode 100644
index 0000000..24df903
--- /dev/null
+++ b/graphs/java/drawing/pom.xml
@@ -0,0 +1,139 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>fr.epita.assistants</groupId>
+ <artifactId>drawing</artifactId>
+ <version>1.0</version>
+
+ <properties>
+ <versions.java>21</versions.java>
+ <versions.junit>5.9.1</versions.junit>
+ <versions.maven-compiler-plugin>3.13.0</versions.maven-compiler-plugin>
+ <versions.maven-surefire-plugin>2.22.2</versions.maven-surefire-plugin>
+ <versions.maven-jar-plugin>3.1.1</versions.maven-jar-plugin>
+ <versions.maven-install-plugin>3.1.0</versions.maven-install-plugin>
+
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+
+ <surefire.reportsDirectory>${project.build.directory}/surefire-reports</surefire.reportsDirectory>
+ </properties>
+
+ <dependencies>
+ <dependency>
+ <groupId>org.projectlombok</groupId>
+ <artifactId>lombok</artifactId>
+ <version>1.18.30</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.jupiter</groupId>
+ <artifactId>junit-jupiter</artifactId>
+ <version>${versions.junit}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.surefire</groupId>
+ <artifactId>surefire-junit-platform</artifactId>
+ <version>${versions.maven-surefire-plugin}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-compat</artifactId>
+ <version>3.9.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-api</artifactId>
+ <version>3.9.8</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-core</artifactId>
+ <version>3.8.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-monitor</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>3.0.24</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.shared</groupId>
+ <artifactId>maven-filtering</artifactId>
+ <version>3.3.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-interpolation</artifactId>
+ <version>1.13</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-profile</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-plugin-registry</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>2.2.1</version>
+ </dependency>
+ <dependency>
+ <groupId>classworlds</groupId>
+ <artifactId>classworlds</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>org.junit.platform</groupId>
+ <artifactId>junit-platform-commons</artifactId>
+ <version>1.9.3</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <version>${versions.maven-compiler-plugin}</version>
+ <configuration>
+ <source>${versions.java}</source>
+ <target>${versions.java}</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-install-plugin</artifactId>
+ <version>${versions.maven-install-plugin}</version>
+ </plugin>
+
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>${versions.maven-surefire-plugin}</version>
+ <configuration>
+ <reportsDirectory>${surefire.reportsDirectory}</reportsDirectory>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
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");
+ }
+}