diff options
Diffstat (limited to 'graphs/java/drawing')
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"); + } +} |
