summaryrefslogtreecommitdiff
path: root/graphs/java/rockPaperScissors/src/main
diff options
context:
space:
mode:
Diffstat (limited to 'graphs/java/rockPaperScissors/src/main')
-rw-r--r--graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Bot.java18
-rw-r--r--graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/HandShape.java26
-rw-r--r--graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Match.java52
-rw-r--r--graphs/java/rockPaperScissors/src/main/java/fr/epita/assistants/rockPaperScissors/Player.java23
4 files changed, 119 insertions, 0 deletions
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);
+ }
+}