diff options
Diffstat (limited to 'graphs/java/rockPaperScissors')
6 files changed, 281 insertions, 0 deletions
diff --git a/graphs/java/rockPaperScissors/.gitignore b/graphs/java/rockPaperScissors/.gitignore new file mode 100644 index 0000000..5ff6309 --- /dev/null +++ b/graphs/java/rockPaperScissors/.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/rockPaperScissors/pom.xml b/graphs/java/rockPaperScissors/pom.xml new file mode 100644 index 0000000..747b009 --- /dev/null +++ b/graphs/java/rockPaperScissors/pom.xml @@ -0,0 +1,124 @@ +<?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>rockPaperScissors</artifactId> + <version>1.0</version> + + + <properties> + <versions.java>21</versions.java> + + <versions.junit>5.9.1</versions.junit> + + <versions.maven-compiler-plugin>3.8.1</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.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.6.3</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-api</artifactId> + <version>3.6.3</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>2.0.6</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-monitor</artifactId> + <version>2.0.6</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-filtering</artifactId> + <version>1.1</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.0.6</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>2.0.6</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-plugin-registry</artifactId> + <version>2.0.6</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>2.0.6</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/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Bot.java b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Bot.java new file mode 100644 index 0000000..5d8005b --- /dev/null +++ b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Bot.java @@ -0,0 +1,18 @@ +package fr.epita.assistants.rockPaperScissors; + +public class Bot { + final String name; + + public String getName() { + return name; + } + + public Bot(String name) { + this.name = name; + } + + public final HandShape getBotHandShape() + { + return new HandShape((int) (Math.random() * 2)); + } +} diff --git a/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/HandShape.java b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/HandShape.java new file mode 100644 index 0000000..1d95c92 --- /dev/null +++ b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/HandShape.java @@ -0,0 +1,26 @@ +package fr.epita.assistants.rockPaperScissors; + +import java.util.Arrays; +import java.util.List; + +/* + Note that this kind of class should be replaced with an Enum. + Enums will be introduced later in the workshop. + */ + +public class HandShape { + final static private List<String> shapesValues = Arrays.asList("ROCK", "PAPER", "SCISSORS"); + final private int index; + + public HandShape(final int index) { + this.index= index; + } + + public String getName(){ + return shapesValues.get(index); + } + + int getIndex() { + return index; + } +}
\ No newline at end of file diff --git a/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Match.java b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Match.java new file mode 100644 index 0000000..2116f58 --- /dev/null +++ b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Match.java @@ -0,0 +1,52 @@ +package fr.epita.assistants.rockPaperScissors; + +import java.util.Objects; + +public final class Match { + private static int matchCount; + private final int currentMatchNumber; + final String player1, player2; + final HandShape player1Choice, player2Choice; + + public Match(String player1, String player2, HandShape player1Choice, HandShape player2Choice) { + this.currentMatchNumber = ++matchCount; + this.player1 = player1; + this.player2 = player2; + this.player1Choice = player1Choice; + this.player2Choice = player2Choice; + } + + public static int getMatchCount() { + return matchCount; + } + + static void resetMatchCount() + { + matchCount = 0; + } + + public int getCurrentMatch() { + return currentMatchNumber; + } + + public void runMatch() + { + System.out.println("Let's start match number " + currentMatchNumber + "!"); + System.out.println("Rock, Paper, Scissors!"); + System.out.println(player1 + " is playing: " + player1Choice.getName()); + System.out.println(player2 + " is playing: " + player2Choice.getName()); + + if (player1Choice.getIndex() == player2Choice.getIndex()) + { + System.out.println("DRAW!"); + } + else if (player1Choice.getIndex() == (player2Choice.getIndex() + 1) % 3) + { + System.out.println("The winner is " + player1 + "!"); + } + else + { + System.out.println("The winner is " + player2 + "!"); + } + } +} diff --git a/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Player.java b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Player.java new file mode 100644 index 0000000..72e0761 --- /dev/null +++ b/graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Player.java @@ -0,0 +1,23 @@ +package fr.epita.assistants.rockPaperScissors; + +public final class Player { + final String name; + int choice; + + public void setChoice(int choice) { + this.choice = choice; + } + + public String getName() { + return name; + } + + public Player(String name) { + this.name = name; + } + + public HandShape getPlayerHandShape() + { + return new HandShape(choice); + } +} |
