From e6db65dbd42046aa0fb6575ce6627d1fd3411eb6 Mon Sep 17 00:00:00 2001 From: "github-classroom[bot]" <66690702+github-classroom[bot]@users.noreply.github.com> Date: Sat, 11 Dec 2021 13:44:46 +0000 Subject: [PATCH 01/38] Setting up GitHub Classroom Feedback From 4f2618d85920715439b8de43e4fca886047b4562 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 11 Dec 2021 15:21:36 +0100 Subject: [PATCH 02/38] Klasse Part gemaakt. Nog niet zeker wat er precies in methode equals() moest => kan fout zijn! methode hashCode() returnt voorlopig 0. --- src/main/java/be/pxl/ja/Part.java | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/be/pxl/ja/Part.java diff --git a/src/main/java/be/pxl/ja/Part.java b/src/main/java/be/pxl/ja/Part.java new file mode 100644 index 0000000..3cce533 --- /dev/null +++ b/src/main/java/be/pxl/ja/Part.java @@ -0,0 +1,25 @@ +package be.pxl.ja; + +public abstract class Part { + private final String name; + + public Part(String name){ + this.name = name; + } + + public boolean equals(Object part){ + return (this.toString().equals(part.toString())); + } + + public String getName(){ + return name; + } + + public int hashCode(){ + return 0; + } + + public String ToString(){ + return name; + } +} From 289b80588e6fcf8dd04a316a9d2e4e18ed3f0732 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 11 Dec 2021 15:37:39 +0100 Subject: [PATCH 03/38] Klasse Suspect gemaakt. Nog niet zeker of toString() juist wordt toegepast. --- src/main/java/be/pxl/ja/Suspect.java | 44 ++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100644 src/main/java/be/pxl/ja/Suspect.java diff --git a/src/main/java/be/pxl/ja/Suspect.java b/src/main/java/be/pxl/ja/Suspect.java new file mode 100644 index 0000000..2ce14bf --- /dev/null +++ b/src/main/java/be/pxl/ja/Suspect.java @@ -0,0 +1,44 @@ +package be.pxl.ja; + +public class Suspect extends Part { + private String title; + private String occupation; + private String nationality; + private int age; + + public Suspect(String name) { + super(name); + } + + public int getAge(){ + return age; + } + + public String getOccupation() { + return occupation; + } + + public String getNationality() { + return nationality; + } + + public void setTitle(String title) { + this.title = title; + } + + public void setOccupation(String occupation) { + this.occupation = occupation; + } + + public void setNationality(String nationality) { + this.nationality = nationality; + } + + public void setAge(int age) { + this.age = age; + } + + public String toString(){ + return title + ", " + this.getName(); + } +} From b59093d077bb57f7470a3874041be0e336e3138e Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 11 Dec 2021 16:09:58 +0100 Subject: [PATCH 04/38] Klasse Weapon gemaakt. --- src/main/java/be/pxl/ja/Weapon.java | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 src/main/java/be/pxl/ja/Weapon.java diff --git a/src/main/java/be/pxl/ja/Weapon.java b/src/main/java/be/pxl/ja/Weapon.java new file mode 100644 index 0000000..f0354b1 --- /dev/null +++ b/src/main/java/be/pxl/ja/Weapon.java @@ -0,0 +1,8 @@ +package be.pxl.ja; + +public class Weapon extends Part { + + public Weapon(String name) { + super(name); + } +} From 4311eaba1439b4603e55f22d14872b53e5828fb9 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Sat, 11 Dec 2021 16:11:55 +0100 Subject: [PATCH 05/38] Made Assembly Class and added all methods. Methods do not have function yet! --- .idea/.gitignore | 3 ++ .idea/compiler.xml | 16 +++++++++++ ..._org_apiguardian_apiguardian_api_1_1_2.xml | 13 +++++++++ ..._junit_jupiter_junit_jupiter_api_5_8_1.xml | 13 +++++++++ ..._platform_junit_platform_commons_1_8_1.xml | 13 +++++++++ ...Maven__org_opentest4j_opentest4j_1_2_0.xml | 13 +++++++++ .idea/misc.xml | 13 +++++++++ .idea/modules.xml | 8 ++++++ .idea/vcs.xml | 6 ++++ CluedoOpgave.iml | 18 ++++++++++++ src/main/java/be/pxl/ja/Assembly.java | 28 +++++++++++++++++++ 11 files changed, 144 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml create mode 100644 .idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml create mode 100644 .idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml create mode 100644 .idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 CluedoOpgave.iml create mode 100644 src/main/java/be/pxl/ja/Assembly.java diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..0e40fe8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ + +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..b455988 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml new file mode 100644 index 0000000..6ac1c42 --- /dev/null +++ b/.idea/libraries/Maven__org_apiguardian_apiguardian_api_1_1_2.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml new file mode 100644 index 0000000..4910ca9 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_jupiter_junit_jupiter_api_5_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml new file mode 100644 index 0000000..3417208 --- /dev/null +++ b/.idea/libraries/Maven__org_junit_platform_junit_platform_commons_1_8_1.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml new file mode 100644 index 0000000..fbc1b16 --- /dev/null +++ b/.idea/libraries/Maven__org_opentest4j_opentest4j_1_2_0.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..737689e --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,13 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..414b55c --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/CluedoOpgave.iml b/CluedoOpgave.iml new file mode 100644 index 0000000..7dd7d98 --- /dev/null +++ b/CluedoOpgave.iml @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java new file mode 100644 index 0000000..2794e66 --- /dev/null +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -0,0 +1,28 @@ +package be.pxl.ja; + +import java.util.Optional; +import java.util.TreeSet; + +public class Assembly { + private TreeSet assemblyParts; + + public int getNumberOfParts(){ + return assemblyParts.size(); + } + + public Optional getPart(String obj){ + + } + + public T getPart(int obj){ + + } + + public getParts(){ + + } + + public Assembly(TreeSet assemblyParts) { + this.assemblyParts = assemblyParts; + } +} From 040f5fed9c05feefa3d83cf64bd9adbd67d579ed Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 11 Dec 2021 16:14:26 +0100 Subject: [PATCH 06/38] Unversioned Files commit. --- .idea/.gitignore | 8 ++++++++ .idea/compiler.xml | 13 +++++++++++++ .idea/jarRepositories.xml | 20 ++++++++++++++++++++ .idea/misc.xml | 12 ++++++++++++ .idea/runConfigurations.xml | 10 ++++++++++ .idea/vcs.xml | 6 ++++++ 6 files changed, 69 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/compiler.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/runConfigurations.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..9a960a2 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,13 @@ + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..712ab9d --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..4555257 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,12 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file From c43ee2140bcc40ea8e88f9413c3a6eb54bae3a6f Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Tue, 14 Dec 2021 18:42:21 +0100 Subject: [PATCH 07/38] =?UTF-8?q?Assembly=20aangepast.=20Optional=20Method?= =?UTF-8?q?e=20ge=C3=AFmplementeerd.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Unversioned Files commit. --- .idea/modules.xml | 8 ----- CluedoOpgave.iml | 18 ---------- pom.xml | 16 +++++++-- src/main/java/be/pxl/ja/Assembly.java | 18 +++++++--- src/main/java/be/pxl/ja/Cluedo.java | 2 ++ src/main/java/be/pxl/ja/Room.java | 47 +++++++++++++++++++++++++++ 6 files changed, 76 insertions(+), 33 deletions(-) delete mode 100644 .idea/modules.xml delete mode 100644 CluedoOpgave.iml create mode 100644 src/main/java/be/pxl/ja/Room.java diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 414b55c..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ - - - - - - - - \ No newline at end of file diff --git a/CluedoOpgave.iml b/CluedoOpgave.iml deleted file mode 100644 index 7dd7d98..0000000 --- a/CluedoOpgave.iml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/pom.xml b/pom.xml index fa13be6..c4ba19b 100644 --- a/pom.xml +++ b/pom.xml @@ -7,9 +7,21 @@ be.pxl CluedoOpgave 1.0-SNAPSHOT + + + + org.apache.maven.plugins + maven-compiler-plugin + + 17 + 17 + + + + - + 17 17 diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java index 2794e66..63e218a 100644 --- a/src/main/java/be/pxl/ja/Assembly.java +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -1,21 +1,29 @@ package be.pxl.ja; +import java.lang.reflect.Array; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Optional; import java.util.TreeSet; public class Assembly { - private TreeSet assemblyParts; + private ArrayList assemblyParts; public int getNumberOfParts(){ return assemblyParts.size(); } - public Optional getPart(String obj){ - + public Optional getPart(String name){ + for (Part part : assemblyParts){ + if (part.getName().equals(name)){ + return Optional.of(part); + } + } + return Optional.empty(); } - public T getPart(int obj){ - + public T getPart(int index){ + return assemblyParts.get(index); } public getParts(){ diff --git a/src/main/java/be/pxl/ja/Cluedo.java b/src/main/java/be/pxl/ja/Cluedo.java index fc8e12d..dfd10c0 100644 --- a/src/main/java/be/pxl/ja/Cluedo.java +++ b/src/main/java/be/pxl/ja/Cluedo.java @@ -23,4 +23,6 @@ public static void main(String[] args) { System.out.println("A problem occurred."); } } + + } diff --git a/src/main/java/be/pxl/ja/Room.java b/src/main/java/be/pxl/ja/Room.java new file mode 100644 index 0000000..461e716 --- /dev/null +++ b/src/main/java/be/pxl/ja/Room.java @@ -0,0 +1,47 @@ +package be.pxl.ja; + +import java.util.Optional; + +public class Room extends Part{ + private Weapon weapon; + private Suspect suspect; + private boolean crimeScene; + private boolean locked; + + public Room(String name) { + super(name); + locked = true; + } + + public String describe(){ + return ""; + } + + public Optional getSuspect(){ + return null; + } + + public Optional getWeapon(){ + return null; + } + + public boolean isLocked(){ + return false; + } + + public void setCrimeScene(boolean crimeScene){ + + } + + public void setSuspect(Suspect suspect){ + + } + + public void setWeapon(Weapon weapon){ + + } + + public void unlock(){ + + } +} From 3d818e0a6aeea1aa6f052c189dabd3faee76cd98 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:02:53 +0100 Subject: [PATCH 08/38] Part & Assembly class are now finished. --- .idea/runConfigurations.xml | 10 ---------- src/main/java/be/pxl/ja/Assembly.java | 4 ---- src/main/java/be/pxl/ja/Part.java | 19 +++++++++++++------ 3 files changed, 13 insertions(+), 20 deletions(-) delete mode 100644 .idea/runConfigurations.xml diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml deleted file mode 100644 index 797acea..0000000 --- a/.idea/runConfigurations.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java index 63e218a..0c7e812 100644 --- a/src/main/java/be/pxl/ja/Assembly.java +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -29,8 +29,4 @@ public T getPart(int index){ public getParts(){ } - - public Assembly(TreeSet assemblyParts) { - this.assemblyParts = assemblyParts; - } } diff --git a/src/main/java/be/pxl/ja/Part.java b/src/main/java/be/pxl/ja/Part.java index 3cce533..5e85f84 100644 --- a/src/main/java/be/pxl/ja/Part.java +++ b/src/main/java/be/pxl/ja/Part.java @@ -1,5 +1,7 @@ package be.pxl.ja; +import java.util.Objects; + public abstract class Part { private final String name; @@ -7,16 +9,21 @@ public Part(String name){ this.name = name; } - public boolean equals(Object part){ - return (this.toString().equals(part.toString())); + @Override + public boolean equals(Object o) { + if (this == o) return true; + if (o == null || getClass() != o.getClass()) return false; + Part part = (Part) o; + return Objects.equals(name, part.name); } - public String getName(){ - return name; + @Override + public int hashCode() { + return Objects.hash(name); } - public int hashCode(){ - return 0; + public String getName(){ + return name; } public String ToString(){ From f24a3f2da5be9eb74cf316734fad301bdc5cf45c Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:08:40 +0100 Subject: [PATCH 09/38] Assembly class is now finished. --- src/main/java/be/pxl/ja/Assembly.java | 33 ++++++++++++++------------- 1 file changed, 17 insertions(+), 16 deletions(-) diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java index 0c7e812..8e46a53 100644 --- a/src/main/java/be/pxl/ja/Assembly.java +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -1,32 +1,33 @@ package be.pxl.ja; import java.lang.reflect.Array; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.Optional; -import java.util.TreeSet; +import java.util.*; +import java.util.stream.Collectors; public class Assembly { - private ArrayList assemblyParts; + private List assemblyParts; - public int getNumberOfParts(){ + public Assembly(List assemblyParts) { + this.assemblyParts = assemblyParts; + } + + public int getNumberOfParts() { return assemblyParts.size(); } - public Optional getPart(String name){ - for (Part part : assemblyParts){ - if (part.getName().equals(name)){ - return Optional.of(part); - } - } - return Optional.empty(); + public Optional getPart(String name) { + return assemblyParts.stream() // loop over assemblyParts + .filter(assemblyPart -> name.equals(assemblyPart.getName())) // if name = assemblyPart name + .findFirst(); // return the first that matches the if statement } - public T getPart(int index){ + public T getPart(int index) { return assemblyParts.get(index); } - public getParts(){ - + public List getParts() { + return assemblyParts.stream() + .sorted(Comparator.comparing(Part::getName)) + .collect(Collectors.toList()); } } From 632b05552293339ab20cb7fa1248933ecf80c6da Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:36:32 +0100 Subject: [PATCH 10/38] Room class has been created and programmed. RoomLockedClientException has been created, but not defined. --- src/main/java/be/pxl/ja/Assembly.java | 1 + src/main/java/be/pxl/ja/Room.java | 60 +++++++++++++------ .../be/pxl/ja/RoomLockedClientException.java | 4 ++ src/main/java/be/pxl/ja/Suspect.java | 3 +- 4 files changed, 50 insertions(+), 18 deletions(-) create mode 100644 src/main/java/be/pxl/ja/RoomLockedClientException.java diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java index 8e46a53..e1e386c 100644 --- a/src/main/java/be/pxl/ja/Assembly.java +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -31,3 +31,4 @@ public List getParts() { .collect(Collectors.toList()); } } + diff --git a/src/main/java/be/pxl/ja/Room.java b/src/main/java/be/pxl/ja/Room.java index 461e716..c92e4fb 100644 --- a/src/main/java/be/pxl/ja/Room.java +++ b/src/main/java/be/pxl/ja/Room.java @@ -2,7 +2,11 @@ import java.util.Optional; -public class Room extends Part{ +public class Room extends Part { + + // use of static final to avoid changing multiple strings in case the separator needs to be different + private static final String SEPARATOR = "\n"; + private Weapon weapon; private Suspect suspect; private boolean crimeScene; @@ -10,38 +14,60 @@ public class Room extends Part{ public Room(String name) { super(name); - locked = true; + this.locked = true; } - public String describe(){ - return ""; - } + public String describe() { + if (locked) { + throw new RoomLockedClientException(); + } - public Optional getSuspect(){ - return null; - } + StringBuilder description = new StringBuilder(); - public Optional getWeapon(){ - return null; - } + if (crimeScene) { + description.append("There's blood in this room"); + } else { + description.append("There's no blood in this room"); + } + + getWeapon().map(Part::getName) // get the name in case the weapon is not empty + .ifPresent(name -> description.append(SEPARATOR).append(name)); // if the name is present, add it to the description - public boolean isLocked(){ - return false; + getSuspect().map(Part::getName) // get the name in case the suspect is not empty + .ifPresent(name -> description.append(SEPARATOR).append(name)); // if the name is present, add it to the description + + return description.toString(); } - public void setCrimeScene(boolean crimeScene){ + public Optional getSuspect() { + return Optional.ofNullable(suspect); + } + public Optional getWeapon() { + return Optional.ofNullable(weapon); } - public void setSuspect(Suspect suspect){ + public boolean isLocked() { + return locked; + } + public void setCrimeScene(boolean crimeScene) { + this.crimeScene = crimeScene; } - public void setWeapon(Weapon weapon){ + public void setSuspect(Suspect suspect) { + this.suspect = suspect; + } + public void setWeapon(Weapon weapon) { + this.weapon = weapon; } - public void unlock(){ + public void removeSuspect() { + this.suspect = null; + } + public void unlock() { + this.locked = false; } } diff --git a/src/main/java/be/pxl/ja/RoomLockedClientException.java b/src/main/java/be/pxl/ja/RoomLockedClientException.java new file mode 100644 index 0000000..b69f3ce --- /dev/null +++ b/src/main/java/be/pxl/ja/RoomLockedClientException.java @@ -0,0 +1,4 @@ +package be.pxl.ja; + +public class RoomLockedClientException extends RuntimeException{ +} diff --git a/src/main/java/be/pxl/ja/Suspect.java b/src/main/java/be/pxl/ja/Suspect.java index 2ce14bf..a884d9f 100644 --- a/src/main/java/be/pxl/ja/Suspect.java +++ b/src/main/java/be/pxl/ja/Suspect.java @@ -38,7 +38,8 @@ public void setAge(int age) { this.age = age; } - public String toString(){ + @Override + public String toString() { return title + ", " + this.getName(); } } From 0ae538d1665c261ad9b9051392386667343778eb Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 19:51:07 +0100 Subject: [PATCH 11/38] Mansion class has been created and completed. + Also CluedoException --- .idea/uiDesigner.xml | 124 +++++++++++++++++++ src/main/java/be/pxl/ja/CluedoException.java | 7 ++ src/main/java/be/pxl/ja/Mansion.java | 34 +++++ 3 files changed, 165 insertions(+) create mode 100644 .idea/uiDesigner.xml create mode 100644 src/main/java/be/pxl/ja/CluedoException.java create mode 100644 src/main/java/be/pxl/ja/Mansion.java diff --git a/.idea/uiDesigner.xml b/.idea/uiDesigner.xml new file mode 100644 index 0000000..e96534f --- /dev/null +++ b/.idea/uiDesigner.xml @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/java/be/pxl/ja/CluedoException.java b/src/main/java/be/pxl/ja/CluedoException.java new file mode 100644 index 0000000..ef38a11 --- /dev/null +++ b/src/main/java/be/pxl/ja/CluedoException.java @@ -0,0 +1,7 @@ +package be.pxl.ja; + +public class CluedoException extends RuntimeException { + public CluedoException(String message) { + super(message); + } +} diff --git a/src/main/java/be/pxl/ja/Mansion.java b/src/main/java/be/pxl/ja/Mansion.java new file mode 100644 index 0000000..f4f0652 --- /dev/null +++ b/src/main/java/be/pxl/ja/Mansion.java @@ -0,0 +1,34 @@ +package be.pxl.ja; + +import java.util.List; +import java.util.Optional; + +public class Mansion extends Assembly { + + private static final String HALL = "hall"; + + public Mansion(List assemblyParts) { + super(assemblyParts); + } + + public Room getHall() { + return getPart(HALL) + .orElseThrow(() -> new CluedoException("Every mansion must have a hall")); + } + + public int getNumberOfRooms() { + return getNumberOfParts(); + } + + public Optional getRoom(String room) { + return getPart(room); + } + + public Room getRoom(int room) { + return getPart(room); + } + + public List getRooms() { + return getParts(); + } +} From a59aea82ff002865158fbf1407f65ae4dd90bd94 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Tue, 14 Dec 2021 19:58:52 +0100 Subject: [PATCH 12/38] Envelope base created. --- src/main/java/be/pxl/ja/Envelope.java | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 src/main/java/be/pxl/ja/Envelope.java diff --git a/src/main/java/be/pxl/ja/Envelope.java b/src/main/java/be/pxl/ja/Envelope.java new file mode 100644 index 0000000..8bd319e --- /dev/null +++ b/src/main/java/be/pxl/ja/Envelope.java @@ -0,0 +1,13 @@ +package be.pxl.ja; + +public class Envelope { + private List secrets; + + private void addSecret(){} + + private T removeSecret(){} + + private boolean isSecret(){ + return false; + } +} From 52704054bf2abc176ab0513d14a3e1192adfc016 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 20:02:03 +0100 Subject: [PATCH 13/38] Detective Class has been created and finished. --- src/main/java/be/pxl/ja/Detective.java | 28 +++++++++++++++---------- src/main/java/be/pxl/ja/GameEngine.java | 1 - 2 files changed, 17 insertions(+), 12 deletions(-) diff --git a/src/main/java/be/pxl/ja/Detective.java b/src/main/java/be/pxl/ja/Detective.java index d6eb096..3a5475e 100644 --- a/src/main/java/be/pxl/ja/Detective.java +++ b/src/main/java/be/pxl/ja/Detective.java @@ -1,19 +1,25 @@ package be.pxl.ja; +import java.util.List; + public class Detective { - private final String name; + private final String name; + private Room currentRoom; + private List collectedClues; - public Detective(String name) { - this.name = name; - } + public Detective(String name) { + this.name = name; + } - public String getCurrentRoom() { - // TODO: update this method (and change return type!) - return "Hall"; - } + public Room getCurrentRoom() { + return this.currentRoom; + } - public void moveTo() { - // TODO: add parameter and implement this method. - } + public void moveTo(Room nextRoom) { + if (nextRoom.equals(currentRoom)) { + throw new CluedoException("This move is not allowed"); + } + currentRoom = nextRoom; + } } diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 19e3ae1..00ee37a 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -2,7 +2,6 @@ import be.pxl.ja.command.HelpCommand; -import java.io.IOException; import java.util.Random; import java.util.Scanner; From 32f36f0973595672aad7e44e18d774cd08ef737d Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 20:07:03 +0100 Subject: [PATCH 14/38] Envelope Class has been finished. --- src/main/java/be/pxl/ja/Envelope.java | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/src/main/java/be/pxl/ja/Envelope.java b/src/main/java/be/pxl/ja/Envelope.java index 8bd319e..9df49cb 100644 --- a/src/main/java/be/pxl/ja/Envelope.java +++ b/src/main/java/be/pxl/ja/Envelope.java @@ -1,13 +1,20 @@ package be.pxl.ja; -public class Envelope { - private List secrets; +import java.util.ArrayList; +import java.util.List; - private void addSecret(){} +public class Envelope { + private final List secrets = new ArrayList<>(); - private T removeSecret(){} + private void addSecret(T secret) { + secrets.add(secret); + } + + private void removeSecret(T secret) { + secrets.remove(secret); + } - private boolean isSecret(){ - return false; + private boolean isSecret(T secret) { + return secrets.contains(secret); } } From 25f105d20cdc1bf4422483b386aa67144b84bc48 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 21:04:53 +0100 Subject: [PATCH 15/38] Envelope Class has been finished. GameEngine has been adjusted and needs some final bits and pieces. Mansion has been adjusted, so "Hall" now has a capital Letter "H". --- src/main/java/be/pxl/ja/Envelope.java | 6 +- src/main/java/be/pxl/ja/GameEngine.java | 166 ++++++++++++++++++------ src/main/java/be/pxl/ja/Mansion.java | 2 +- 3 files changed, 128 insertions(+), 46 deletions(-) diff --git a/src/main/java/be/pxl/ja/Envelope.java b/src/main/java/be/pxl/ja/Envelope.java index 9df49cb..0c0410b 100644 --- a/src/main/java/be/pxl/ja/Envelope.java +++ b/src/main/java/be/pxl/ja/Envelope.java @@ -6,15 +6,15 @@ public class Envelope { private final List secrets = new ArrayList<>(); - private void addSecret(T secret) { + public void addSecret(T secret) { secrets.add(secret); } - private void removeSecret(T secret) { + public void removeSecret(T secret) { secrets.remove(secret); } - private boolean isSecret(T secret) { + public boolean isSecret(T secret) { return secrets.contains(secret); } } diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 00ee37a..ab73a73 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -2,49 +2,131 @@ import be.pxl.ja.command.HelpCommand; -import java.util.Random; -import java.util.Scanner; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.*; public class GameEngine { - private static final Random RANDOM = new Random(); - private Detective detective; - private final Scanner scanner; - private boolean murderSolved; - private HelpCommand helpCommand = new HelpCommand(); - - public GameEngine(Scanner scanner) { - this.scanner = scanner; - } - - public void initialize(String playerName) { - murderSolved = false; - // read all files to initialize the game - detective = new Detective(playerName); - // randomly choose weapon, crimescene and murderer - // put all other weapons and suspects in the rooms of the mansion - } - - public void start() { - System.out.println("Who murdered Dr. Black? Where did the crime took place, and which weapon was used?"); - System.out.println("Type 'help' for information..."); - } - - - /** - * Handle the command. - * @param command a command: goto, clue, describe,... - */ - public void executeCommand(String command) { - helpCommand.execute(null); - } - - public void printLocation() { - System.out.println("You are in the " + detective.getCurrentRoom()); - } - - - public boolean isMurderSolved() { - return murderSolved; - } + private static final Random RANDOM = new Random(); + private Detective detective; + private final Scanner scanner; + private boolean murderSolved; + private HelpCommand helpCommand = new HelpCommand(); + + public GameEngine(Scanner scanner) { + this.scanner = scanner; + } + + public void initialize(String playerName) throws FileNotFoundException { + murderSolved = false; + + File file = new File("src/main/resources/cluedo.txt"); + scanner = new Scanner(file); // todo: handle exception + + List rooms = new ArrayList<>(); + List weapons = new ArrayList<>(); + List suspects = new ArrayList<>(); + + String objectType = null; + + while (scanner.hasNextLine()) { + String line = scanner.nextLine(); + + if ("#ROOMS".equals(line) || "#WEAPONS".equals(line) || "#SUSPECTS".equals(line)) { + objectType = line; + } else { + if ("#ROOMS".equals(objectType)) { + Room room = new Room(line); + if (!rooms.contains(room)) { + rooms.add(room); + } + } else if ("#WEAPONS".equals(objectType)) { + Weapon weapon = new Weapon(line); + if (!weapons.contains(weapon)) { + weapons.add(weapon); + } + } else if ("#SUSPECTS".equals(objectType)) { + String[] params = line.split(";"); + + String name = params[0].substring(params[0].indexOf(" ")); + String title = params[0].substring(0, params[0].indexOf(" ")); + + Suspect suspect = new Suspect(name); + suspect.setAge(Integer.parseInt(params[1])); + suspect.setNationality(params[2]); + suspect.setOccupation(params[2]); + suspect.setTitle(title); + + if (!suspects.contains(suspect)) { + suspects.add(suspect); + } + } + } + } + + detective = new Detective(playerName); + + Room crimeScene = rooms.stream() + .skip(RANDOM.nextInt(rooms.size())) + .findFirst() + .orElseThrow(() -> new CluedoException("No rooms found from game file")); + crimeScene.setCrimeScene(true); + + Weapon murderWeapon = weapons.stream() + .skip(RANDOM.nextInt(weapons.size())) + .findFirst() + .orElseThrow(() -> new CluedoException("No weapons found from game file")); + + Suspect murderer = suspects.stream() + .skip(RANDOM.nextInt(suspects.size())) + .findFirst() + .orElseThrow(() -> new CluedoException("No suspects found from game file")); + + Envelope envelope = new Envelope<>(); + envelope.addSecret(crimeScene); + envelope.addSecret(murderWeapon); + envelope.addSecret(murderer); + + rooms.remove(crimeScene); + weapons.remove(murderWeapon); + suspects.remove(murderer); + + for (Room room : rooms) { + Weapon weapon = weapons.get(RANDOM.nextInt(weapons.size())); + weapons.remove(weapon); + room.setWeapon(weapon); + + Suspect suspect = suspects.get(RANDOM.nextInt(suspects.size())); + suspects.remove(suspect); + room.setSuspect(suspect); + } + + Mansion mansion = new Mansion(new ArrayList<>(rooms)); + + } + + public void start() { + System.out.println("Who murdered Dr. Black? Where did the crime took place, and which weapon was used?"); + System.out.println("Type 'help' for information..."); + } + + + /** + * Handle the command. + * + * @param command a command: goto, clue, describe,... + */ + public void executeCommand(String command) { + helpCommand.execute(null); + } + + public void printLocation() { + System.out.println("You are in the " + detective.getCurrentRoom()); + } + + + public boolean isMurderSolved() { + return murderSolved; + } } diff --git a/src/main/java/be/pxl/ja/Mansion.java b/src/main/java/be/pxl/ja/Mansion.java index f4f0652..f3a3358 100644 --- a/src/main/java/be/pxl/ja/Mansion.java +++ b/src/main/java/be/pxl/ja/Mansion.java @@ -5,7 +5,7 @@ public class Mansion extends Assembly { - private static final String HALL = "hall"; + private static final String HALL = "Hall"; public Mansion(List assemblyParts) { super(assemblyParts); From 72d81a74d3065403f6d707667ced761098b04470 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Tue, 14 Dec 2021 21:23:28 +0100 Subject: [PATCH 16/38] Command classes created. --- src/main/java/be/pxl/ja/GameEngine.java | 6 +++--- src/main/java/be/pxl/ja/command/AccuseCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/ClueCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/DescribeCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/GoToCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/HelpCommand.java | 1 - src/main/java/be/pxl/ja/command/RoomsCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/SuspectsCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/UnlockCommand.java | 8 ++++++++ src/main/java/be/pxl/ja/command/WeaponsCommand.java | 8 ++++++++ 10 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/main/java/be/pxl/ja/command/AccuseCommand.java create mode 100644 src/main/java/be/pxl/ja/command/ClueCommand.java create mode 100644 src/main/java/be/pxl/ja/command/DescribeCommand.java create mode 100644 src/main/java/be/pxl/ja/command/GoToCommand.java create mode 100644 src/main/java/be/pxl/ja/command/RoomsCommand.java create mode 100644 src/main/java/be/pxl/ja/command/SuspectsCommand.java create mode 100644 src/main/java/be/pxl/ja/command/UnlockCommand.java create mode 100644 src/main/java/be/pxl/ja/command/WeaponsCommand.java diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index ab73a73..cec7fd1 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -10,7 +10,7 @@ public class GameEngine { private static final Random RANDOM = new Random(); private Detective detective; - private final Scanner scanner; + private Scanner scanner; private boolean murderSolved; private HelpCommand helpCommand = new HelpCommand(); @@ -103,7 +103,6 @@ public void initialize(String playerName) throws FileNotFoundException { } Mansion mansion = new Mansion(new ArrayList<>(rooms)); - } public void start() { @@ -117,8 +116,9 @@ public void start() { * * @param command a command: goto, clue, describe,... */ + public void executeCommand(String command) { - helpCommand.execute(null); + helpCommand.execute(command); } public void printLocation() { diff --git a/src/main/java/be/pxl/ja/command/AccuseCommand.java b/src/main/java/be/pxl/ja/command/AccuseCommand.java new file mode 100644 index 0000000..1f84645 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/AccuseCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class AccuseCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/ClueCommand.java b/src/main/java/be/pxl/ja/command/ClueCommand.java new file mode 100644 index 0000000..9177792 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/ClueCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class ClueCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/DescribeCommand.java b/src/main/java/be/pxl/ja/command/DescribeCommand.java new file mode 100644 index 0000000..b30d381 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/DescribeCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class DescribeCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/GoToCommand.java b/src/main/java/be/pxl/ja/command/GoToCommand.java new file mode 100644 index 0000000..4d84d13 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/GoToCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class GoToCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/HelpCommand.java b/src/main/java/be/pxl/ja/command/HelpCommand.java index 7bb25ce..8472c35 100644 --- a/src/main/java/be/pxl/ja/command/HelpCommand.java +++ b/src/main/java/be/pxl/ja/command/HelpCommand.java @@ -4,7 +4,6 @@ public class HelpCommand implements Command { @Override public void execute(String input) { - System.out.println("You can use following commands:"); System.out.println("SUSPECTS - gives you an overview of all possible suspects"); System.out.println("ROOMS - gives you an overview of all rooms"); System.out.println("WEAPONS - gives you an overview of all weapons"); diff --git a/src/main/java/be/pxl/ja/command/RoomsCommand.java b/src/main/java/be/pxl/ja/command/RoomsCommand.java new file mode 100644 index 0000000..61ead97 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/RoomsCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class RoomsCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java new file mode 100644 index 0000000..75fcef7 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class SuspectsCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/UnlockCommand.java b/src/main/java/be/pxl/ja/command/UnlockCommand.java new file mode 100644 index 0000000..d97d130 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/UnlockCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class UnlockCommand implements Command{ + @Override + public void execute(String input) { + + } +} diff --git a/src/main/java/be/pxl/ja/command/WeaponsCommand.java b/src/main/java/be/pxl/ja/command/WeaponsCommand.java new file mode 100644 index 0000000..ddb6cc5 --- /dev/null +++ b/src/main/java/be/pxl/ja/command/WeaponsCommand.java @@ -0,0 +1,8 @@ +package be.pxl.ja.command; + +public class WeaponsCommand implements Command{ + @Override + public void execute(String input) { + + } +} From fdf7e04a29efbedf688b9b318d8b823b3a3f8edb Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Tue, 14 Dec 2021 21:29:46 +0100 Subject: [PATCH 17/38] Acces modifier in game-engine has been changed, so it can be accessed in the command Class. --- src/main/java/be/pxl/ja/GameEngine.java | 10 +++++++--- src/main/java/be/pxl/ja/command/SuspectsCommand.java | 2 ++ 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index cec7fd1..e4b552d 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -14,6 +14,10 @@ public class GameEngine { private boolean murderSolved; private HelpCommand helpCommand = new HelpCommand(); + public List rooms; + public List weapons; + public List suspects; + public GameEngine(Scanner scanner) { this.scanner = scanner; } @@ -24,9 +28,9 @@ public void initialize(String playerName) throws FileNotFoundException { File file = new File("src/main/resources/cluedo.txt"); scanner = new Scanner(file); // todo: handle exception - List rooms = new ArrayList<>(); - List weapons = new ArrayList<>(); - List suspects = new ArrayList<>(); + rooms = new ArrayList<>(); + weapons = new ArrayList<>(); + suspects = new ArrayList<>(); String objectType = null; diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java index 75fcef7..bafb91c 100644 --- a/src/main/java/be/pxl/ja/command/SuspectsCommand.java +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -1,5 +1,7 @@ package be.pxl.ja.command; +import be.pxl.ja.Suspect; + public class SuspectsCommand implements Command{ @Override public void execute(String input) { From a3e1bdd6491f049f125e5254560f9dc9a8d2d9c9 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Tue, 14 Dec 2021 21:34:49 +0100 Subject: [PATCH 18/38] GameEngine ExecuteCommand edited. --- src/main/java/be/pxl/ja/GameEngine.java | 29 +++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index cec7fd1..bb14723 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -1,6 +1,6 @@ package be.pxl.ja; -import be.pxl.ja.command.HelpCommand; +import be.pxl.ja.command.*; import java.io.File; import java.io.FileNotFoundException; @@ -12,7 +12,16 @@ public class GameEngine { private Detective detective; private Scanner scanner; private boolean murderSolved; + private HelpCommand helpCommand = new HelpCommand(); + private SuspectsCommand suspectsCommand = new SuspectsCommand(); + private RoomsCommand roomsCommand = new RoomsCommand(); + private WeaponsCommand weaponsCommand = new WeaponsCommand(); + private ClueCommand clueCommand = new ClueCommand(); + private GoToCommand goToCommand = new GoToCommand(); + private DescribeCommand describeCommand = new DescribeCommand(); + private UnlockCommand unlockCommand = new UnlockCommand(); + private AccuseCommand accuseCommand = new AccuseCommand(); public GameEngine(Scanner scanner) { this.scanner = scanner; @@ -118,7 +127,23 @@ public void start() { */ public void executeCommand(String command) { - helpCommand.execute(command); + if ("SUSPECTS".equals(command)){ + suspectsCommand.execute(command); + } else if ("ROOMS".equals(command)){ + roomsCommand.execute(command); + } else if ("WEAPONS".equals(command)){ + weaponsCommand.execute(command); + } else if ("DESCRIBE".equals(command)){ + describeCommand.execute(command); + } else if ("UNLOCK".equals(command)){ + unlockCommand.execute(command); + } else if (command.contains("CLUE")){ //voorlopig + clueCommand.execute(command); + } else if ("HELP".equals(command)){ + helpCommand.execute(command); + } else if (command.contains("ACCUSE")){ //voorlopig + accuseCommand.execute(command); + } } public void printLocation() { From 79615c5f82393f3443ab16dec3727a50b87b6ff2 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Tue, 14 Dec 2021 21:46:05 +0100 Subject: [PATCH 19/38] GameEngine small edits. SuspectCommand small edits. --- .idea/misc.xml | 2 +- src/main/java/be/pxl/ja/GameEngine.java | 6 ++-- .../be/pxl/ja/command/SuspectsCommand.java | 1 + target/classes/anagrams.txt | 25 +++++++++++++++++ target/classes/cluedo.txt | 25 +++++++++++++++++ target/classes/crackthecode.txt | 28 +++++++++++++++++++ 6 files changed, 83 insertions(+), 4 deletions(-) create mode 100644 target/classes/anagrams.txt create mode 100644 target/classes/cluedo.txt create mode 100644 target/classes/crackthecode.txt diff --git a/.idea/misc.xml b/.idea/misc.xml index 4555257..67e1e61 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -8,5 +8,5 @@ - + \ No newline at end of file diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index abaea35..ba4fa2a 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -23,9 +23,9 @@ public class GameEngine { private UnlockCommand unlockCommand = new UnlockCommand(); private AccuseCommand accuseCommand = new AccuseCommand(); - public List rooms; - public List weapons; - public List suspects; + public static List rooms; + public static List weapons; + public static List suspects; public GameEngine(Scanner scanner) { this.scanner = scanner; diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java index bafb91c..db549e5 100644 --- a/src/main/java/be/pxl/ja/command/SuspectsCommand.java +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -1,5 +1,6 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; import be.pxl.ja.Suspect; public class SuspectsCommand implements Command{ diff --git a/target/classes/anagrams.txt b/target/classes/anagrams.txt new file mode 100644 index 0000000..3268c33 --- /dev/null +++ b/target/classes/anagrams.txt @@ -0,0 +1,25 @@ +Dave Tuner;His life isn’t boring.;adventure +Pat Hable;He knows all the letters.;alphabet +Alan Cumbe;Let’s hope you never need him.;ambulance +Nat Modbin;Great sportsman.;badminton +Fiona Clair;Lives in America.;California +Paul Simon Gachee;The best and brightest.;Champions league +Alec Cooth;Such a sweet boy!;chocolate +Trish Scam;A merry girl.;Christmas +Margot Mc Uspee;Lives in a world of her own.;computer games +Rock Fasnel;Meet him at breakfast!;cornflakes +Lou Gaide;He’s a big talker.;dialogue +Fred Finet;He’s not like you and me.;different +Danny Delis;Kids like him a lot.;Disneyland +Scot Bugidi;Your best friend’s treat.;dog biscuit +Louise Todfry;Bob the Builder’s little sister?;do-it-yourself +Ross Wantid;Not much of a climber.;downstairs +Henry Givet;He gives you all you want.;everything +Edgar Ribfie;Call him when it’s getting too hot.;fire brigade +Rolf Powet;Always there on Mother’s Day.;flowerpot +Ernie Glen;Takes you right into London.;Green Line +Marge Hurb;Not a vegetarian.;hamburger +Chet Farvor;Crossed the Channel in no time.;hovercraft +Eric Mace;Meet him on a hot summer’s day.;ice cream +Peter Mauret;Changes every day.;temperature +Igor Steplet;A spooky man.;poltergeist diff --git a/target/classes/cluedo.txt b/target/classes/cluedo.txt new file mode 100644 index 0000000..76024e2 --- /dev/null +++ b/target/classes/cluedo.txt @@ -0,0 +1,25 @@ +#ROOMS +Hall +Library +Dining +Lounge +Study +Study +Billiard +Conservatory +Ball +Kitchen +#WEAPONS +Candlestick +Revolver +Knife +Lead Pipe +Rope +Spanner +#SUSPECTS +Mrs. White;62;American;Housekeeper +Mr. Green;35;French;Reverend +Mrs. Peacock;32;Canadian;Socialite +Professor Plum;36;American;Professor +Miss Scarlet;25;Italian;Actress +Colonel Mustard;61;Irish;Colonel diff --git a/target/classes/crackthecode.txt b/target/classes/crackthecode.txt new file mode 100644 index 0000000..1212750 --- /dev/null +++ b/target/classes/crackthecode.txt @@ -0,0 +1,28 @@ +#1 +6 8 2 – One Number is correct and well placed +6 1 4 – One Number is correct but wrongly placed +2 0 6 – Two Numbers are correct but wrongly placed +7 3 8 – Nothing is correct +8 7 0 – One Number is correct but wrongly placed +ANSWER: 0 4 2 +#2 +3 4 2 - One Number is correct and well placed +2 7 3 - Nothing is correct +1 6 5 - One Number is correct but wrongly placed +8 5 3 - One Number is correct and well placed +2 6 4 - Two Numbers are correct but wrongly placed +ANSWER: 8 4 6 +#3 +2 9 1 - One Number is Correct and in the Right Place +2 4 5 - One Number is Correct but in the Wrong Place +4 6 3 - Two Numbers are Correct but in the Wrong Place +5 7 8 - Nothing is Correct +5 6 9 - One Number Is Correct But in the Wrong Place +ANSWER: 3 9 4 +#4 +4 6 0 - One number is correct and in the right place +4 9 2 - One number is correct but in the wrong place +0 8 4 - Two numbers are correct but in the wrong place +5 1 6 - Nothing is correct +5 6 8 - One number is correct but in the wrong place +ANSWER: 8 2 0 From 8c83fd6c93c32e8a05633a8067cc2a4d7239645c Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 18 Dec 2021 14:22:43 +0100 Subject: [PATCH 20/38] GameEngine initialise() doesnt fully work yet. Partially implemented list commands weapons, rooms and suspects. Attempted Accuse, GoTo and Describe commands. --- .idea/runConfigurations.xml | 10 +++++++ src/main/java/be/pxl/ja/GameEngine.java | 25 ++++++++++-------- .../be/pxl/ja/command/DescribeCommand.java | 5 +++- .../java/be/pxl/ja/command/GoToCommand.java | 9 ++++++- .../java/be/pxl/ja/command/RoomsCommand.java | 7 ++++- .../be/pxl/ja/command/SuspectsCommand.java | 4 ++- .../be/pxl/ja/command/WeaponsCommand.java | 8 +++++- target/classes/be/pxl/ja/Assembly.class | Bin 0 -> 2882 bytes target/classes/be/pxl/ja/Cluedo.class | Bin 0 -> 1439 bytes .../classes/be/pxl/ja/CluedoException.class | Bin 0 -> 364 bytes target/classes/be/pxl/ja/Detective.class | Bin 0 -> 922 bytes target/classes/be/pxl/ja/Envelope.class | Bin 0 -> 1092 bytes target/classes/be/pxl/ja/GameEngine.class | Bin 0 -> 7359 bytes target/classes/be/pxl/ja/Mansion.class | Bin 0 -> 2180 bytes target/classes/be/pxl/ja/Part.class | Bin 0 -> 985 bytes target/classes/be/pxl/ja/Room.class | Bin 0 -> 3245 bytes .../be/pxl/ja/RoomLockedClientException.class | Bin 0 -> 330 bytes target/classes/be/pxl/ja/Suspect.class | Bin 0 -> 1629 bytes target/classes/be/pxl/ja/Weapon.class | Bin 0 -> 322 bytes .../be/pxl/ja/command/AccuseCommand.class | Bin 0 -> 672 bytes .../be/pxl/ja/command/ClueCommand.class | Bin 0 -> 666 bytes .../classes/be/pxl/ja/command/Command.class | Bin 0 -> 309 bytes .../be/pxl/ja/command/DescribeCommand.class | Bin 0 -> 1012 bytes .../be/pxl/ja/command/GoToCommand.class | Bin 0 -> 1238 bytes .../be/pxl/ja/command/HelpCommand.class | Bin 0 -> 1373 bytes .../be/pxl/ja/command/RoomsCommand.class | Bin 0 -> 1180 bytes .../be/pxl/ja/command/SuspectsCommand.class | Bin 0 -> 1201 bytes .../be/pxl/ja/command/UnlockCommand.class | Bin 0 -> 672 bytes .../be/pxl/ja/command/WeaponsCommand.class | Bin 0 -> 1194 bytes 29 files changed, 52 insertions(+), 16 deletions(-) create mode 100644 .idea/runConfigurations.xml create mode 100644 target/classes/be/pxl/ja/Assembly.class create mode 100644 target/classes/be/pxl/ja/Cluedo.class create mode 100644 target/classes/be/pxl/ja/CluedoException.class create mode 100644 target/classes/be/pxl/ja/Detective.class create mode 100644 target/classes/be/pxl/ja/Envelope.class create mode 100644 target/classes/be/pxl/ja/GameEngine.class create mode 100644 target/classes/be/pxl/ja/Mansion.class create mode 100644 target/classes/be/pxl/ja/Part.class create mode 100644 target/classes/be/pxl/ja/Room.class create mode 100644 target/classes/be/pxl/ja/RoomLockedClientException.class create mode 100644 target/classes/be/pxl/ja/Suspect.class create mode 100644 target/classes/be/pxl/ja/Weapon.class create mode 100644 target/classes/be/pxl/ja/command/AccuseCommand.class create mode 100644 target/classes/be/pxl/ja/command/ClueCommand.class create mode 100644 target/classes/be/pxl/ja/command/Command.class create mode 100644 target/classes/be/pxl/ja/command/DescribeCommand.class create mode 100644 target/classes/be/pxl/ja/command/GoToCommand.class create mode 100644 target/classes/be/pxl/ja/command/HelpCommand.class create mode 100644 target/classes/be/pxl/ja/command/RoomsCommand.class create mode 100644 target/classes/be/pxl/ja/command/SuspectsCommand.class create mode 100644 target/classes/be/pxl/ja/command/UnlockCommand.class create mode 100644 target/classes/be/pxl/ja/command/WeaponsCommand.class diff --git a/.idea/runConfigurations.xml b/.idea/runConfigurations.xml new file mode 100644 index 0000000..797acea --- /dev/null +++ b/.idea/runConfigurations.xml @@ -0,0 +1,10 @@ + + + + + + \ No newline at end of file diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index ba4fa2a..056fb0f 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -9,7 +9,7 @@ public class GameEngine { private static final Random RANDOM = new Random(); - private Detective detective; + public static Detective detective; private Scanner scanner; private boolean murderSolved; @@ -105,6 +105,7 @@ public void initialize(String playerName) throws FileNotFoundException { weapons.remove(murderWeapon); suspects.remove(murderer); + /* for (Room room : rooms) { Weapon weapon = weapons.get(RANDOM.nextInt(weapons.size())); weapons.remove(weapon); @@ -114,7 +115,9 @@ public void initialize(String playerName) throws FileNotFoundException { suspects.remove(suspect); room.setSuspect(suspect); } + */ + detective.moveTo(rooms.get(0)); Mansion mansion = new Mansion(new ArrayList<>(rooms)); } @@ -124,34 +127,34 @@ public void start() { } - /** + /* * Handle the command. * * @param command a command: goto, clue, describe,... */ public void executeCommand(String command) { - if ("SUSPECTS".equals(command)){ + if ("suspects".equals(command)){ suspectsCommand.execute(command); - } else if ("ROOMS".equals(command)){ + } else if ("rooms".equals(command)){ roomsCommand.execute(command); - } else if ("WEAPONS".equals(command)){ + } else if ("weapons".equals(command)){ weaponsCommand.execute(command); - } else if ("DESCRIBE".equals(command)){ + } else if ("describe".equals(command)){ describeCommand.execute(command); - } else if ("UNLOCK".equals(command)){ + } else if ("unlock".equals(command)){ unlockCommand.execute(command); - } else if (command.contains("CLUE")){ //voorlopig + } else if (command.contains("clue")){ //voorlopig clueCommand.execute(command); - } else if ("HELP".equals(command)){ + } else if ("help".equals(command)){ helpCommand.execute(command); - } else if (command.contains("ACCUSE")){ //voorlopig + } else if (command.contains("accuse")){ //voorlopig accuseCommand.execute(command); } } public void printLocation() { - System.out.println("You are in the " + detective.getCurrentRoom()); + System.out.println("You are in the " + detective.getCurrentRoom().getName()); } diff --git a/src/main/java/be/pxl/ja/command/DescribeCommand.java b/src/main/java/be/pxl/ja/command/DescribeCommand.java index b30d381..2498e76 100644 --- a/src/main/java/be/pxl/ja/command/DescribeCommand.java +++ b/src/main/java/be/pxl/ja/command/DescribeCommand.java @@ -1,8 +1,11 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; + public class DescribeCommand implements Command{ @Override public void execute(String input) { - + // System.out.println(GameEngine.detective.getCurrentRoom().describe()); + System.out.println(GameEngine.detective.getCurrentRoom().getName()); } } diff --git a/src/main/java/be/pxl/ja/command/GoToCommand.java b/src/main/java/be/pxl/ja/command/GoToCommand.java index 4d84d13..e612c1f 100644 --- a/src/main/java/be/pxl/ja/command/GoToCommand.java +++ b/src/main/java/be/pxl/ja/command/GoToCommand.java @@ -1,8 +1,15 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; +import be.pxl.ja.Room; + public class GoToCommand implements Command{ @Override public void execute(String input) { - + for (Room room : GameEngine.rooms){ + if (room.getName().equals(input)){ + GameEngine.detective.moveTo(room); + } + } } } diff --git a/src/main/java/be/pxl/ja/command/RoomsCommand.java b/src/main/java/be/pxl/ja/command/RoomsCommand.java index 61ead97..359ba29 100644 --- a/src/main/java/be/pxl/ja/command/RoomsCommand.java +++ b/src/main/java/be/pxl/ja/command/RoomsCommand.java @@ -1,8 +1,13 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; +import be.pxl.ja.Room; + public class RoomsCommand implements Command{ @Override public void execute(String input) { - + for (Room room : GameEngine.rooms){ + System.out.println(room.getName()); + } } } diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java index db549e5..ae49e91 100644 --- a/src/main/java/be/pxl/ja/command/SuspectsCommand.java +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -6,6 +6,8 @@ public class SuspectsCommand implements Command{ @Override public void execute(String input) { - + for (Suspect suspect : GameEngine.suspects){ + System.out.println(suspect.getName()); + } } } diff --git a/src/main/java/be/pxl/ja/command/WeaponsCommand.java b/src/main/java/be/pxl/ja/command/WeaponsCommand.java index ddb6cc5..c9a21ea 100644 --- a/src/main/java/be/pxl/ja/command/WeaponsCommand.java +++ b/src/main/java/be/pxl/ja/command/WeaponsCommand.java @@ -1,8 +1,14 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; +import be.pxl.ja.Room; +import be.pxl.ja.Weapon; + public class WeaponsCommand implements Command{ @Override public void execute(String input) { - + for (Weapon weapon : GameEngine.weapons){ + System.out.println(weapon.getName()); + } } } diff --git a/target/classes/be/pxl/ja/Assembly.class b/target/classes/be/pxl/ja/Assembly.class new file mode 100644 index 0000000000000000000000000000000000000000..862cf524316a186ca33f491fe62a9fda9a258154 GIT binary patch literal 2882 zcma)8>r)$56#w1u*d{C?hDQqsSfrSMZD_S>8(M9nSTqHch>FjfWCIJE-E^}-S|9cK z-}pgiv_KRfcfBUXEc!uPo@wQZX4A_LAc-LjDIHHC&5(>PGxRpi2ZoQgDz=X37{wS7X?m`~ z>kN~btP(Pq&29RN`83Hor(+xw6vs1~B;ZOW*zK#LZKl1GR|C{qcEvLtJGbE)RkOl9 zgBU)IDGk#)X7CKd*^prbjX2dz%QIYtYZAm)c}heTFcQPZn$__v<{08N)2^@G}Pp0w<#r?=8nz1mP;6;O1}uj%cWBOW}abKmEiYgc8mI^;8f|*P|>uF zwN|}sxFue;XeM2BD%{%Qt|`WHve(-+iN;7VthM%CKnP>eBljEaW8GVz$kw)7$Kiz#bFkF1XFm1ZSq5(tof(t3{qgFN! z8Q3Z%i*}IZ3}+-)GA!NBdw4O@P17~m21!}GUas;v8DMUS;le3APx26zpsN?MxR1NI z&M%j)pPap^SQC5;h<{?!X}J|+#T4Z**v|7M(Pb3)w&Qrz2)uFE@OGVQbEqG70uCA) z?&)wrs%QO%^lR0$51f4?SM+t!30~u(FX>JisH>xYRhjZo0C0!fRm*736&+{4)yOM^ zW%8Ao$iWiTp}PIa7X!%0pH*95MlNv6+BE6Ql0uPOIY`iV^a~vZYAKLl>cbN`$!@3c zCBwX`U1mWIFQn<&vptOn8Fi>z&R*48@6@6+1{5T8MTyFyPU&M*81?FfSmKhr3{ z6%2tPA5SnBC;^^831WCtmU z&+vH!NvwrPoYu;yNTfY_3TI|JT92^^{E6HVuEywj?Fg?5^kj%0Xr7|HPE#Ids79s~ zk7p&5P^p*+@vEtX=ovy4`MV*N#upYJq3{TAiuA?&vI#_vC?ey&iL`;rXa~C#qF35y lV$VOf4~w3nxayQ34=o(}Zx8SlzQ#jZOVFur@jZUT`2TJN#?Al$ literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Cluedo.class b/target/classes/be/pxl/ja/Cluedo.class new file mode 100644 index 0000000000000000000000000000000000000000..135fce80afee079c8fad23c33e8206ab24514c30 GIT binary patch literal 1439 zcmZux+j0{}5IrNyURhpzlM&`FLL653vOq|<$k-UifQc_8A_9R;)o3+V)~t3_t6j?G zQ}_X%?FYFE3O*ozl0V=H(!COBow8IjTQk#r`t<3Z`RB{~PXO-VWf}?eXh`blMW4X% zwtOv3N4hn0y|S&WK%j5dcI{wJpvTCUG^7MZBBL;{9kXaj*HwN$(iqU7>o|tNLny`F zW}xZ<3ELGoz7l!bp1JHc!k`%VO4bW$Xc*@BBLd^bktX>PN66?H!*L?wg~Y21_Sm=G zZ(u2$Ac9M7p#0pf7y3C@*46D?8Ygi|!)YC7a8@AmjYrH?ptr$5gxnz!$v`A+w^qoP znC5vMIb0A(xoRg^v0WuFX5`zHm)`(LY1}0h0DS>P!M7&s0E(T_Fn5;#b z%WF%=eiM0K)p3nGp|=@GKVYouI)34uV-fEa&ys=dQAP%C=(ven0)uvQHT0{>FM7^v zRgGHZc?tz8`y5Gc;Es+tjy0%ulobYQ(W}>`Th(wkR*U8Jr5#H(7(9i0bg+zPx#(4?Kto)owXj}M{u4=P0;8OR zQT>&|8}_}gys+5dqki)3AL`(}-Jb-p(SwZkj5Tk)h%nP=MdJES)Oa2GOo_j+~Q zN&njS%29||_-;jsf*|*9$H$~%deW~E^~@3MsA|PPTCY}RBg#|5i^JD5>TV)Yq`P9N z`!?${&{lAU$>IX;(-XnJ1gI;}NAp8kne-L(?Y(>eu@@aL)6B;_KcZQ08{l`W(5fG+ zSfd?s7Gq?Qq`j>V(8~MhKcFh@V{|mz!uVth=T>>~L-HdM<({cx3qL;n0HZv4fXi#s zQ!PwSw{V5V&oq90i!58;Cf8~9ZDID^*MHwZj}RAHSlo+vl(B(%^nh8;VTfjWv*@28 zp5ydx>M*6or2_F0b{wV2e z6%@r?80J0Rycyp6$Lkw_YxENYSc?&Mu#SjuG?PzKl+qO9zBNu)>SmFvxzpAVqAP8* z8xrQ?(Ld%q64^aD6S%n|rU{5b@! sn~a9cdOkY8cmX|g7a-y40|V>4a*MlzPZc`YX2g2zpu6(wF$%D|1k65EA^-pY literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Detective.class b/target/classes/be/pxl/ja/Detective.class new file mode 100644 index 0000000000000000000000000000000000000000..c9b15a0768fc993894b951eff6d98ebee169a769 GIT binary patch literal 922 zcmZ8f+iu!G5IqYdfMWc-T{0x=jX@R}WYaKA?7?I>7z%5)bgT)to(e^9xeyE~mrv;^b~j`_fID-BQax5@CA!^sn?{A< zc$3s|0x|NQEp0JV(sMI7VW{-q$$4$+Ekun@*Hbm_INnDwGEl}%J&{{m^idm)0SU4_ z$DxkJNK=!J!b(P*6=IttM(-&q&nV+u=`!z#UOMQ==DMk88VT@_L1tQCjh3dp-T&y=@&~VB$N8Nwlqg~dwgSyR( zE0)oUay`ZE_s{t(DsS|>z_-Pf)B^MC%IA9PIHgS|=!qq1jr3H=O6awR=WW~pLoKvV z3BmNF>3>F^E5hkKqj?S1Y<)xeONhHm|2$zqY$@W)B8Pi)J6fS}9}nn8d0{n1Y!6Y7 zI4wFE#dexsk^4+W0-A0&bQVGya|MWK7#e7jM++KJQ7x$2(%Ii};}dc}QGQcAzDD)8 rR+!TYlObi1v;l{tp+sL9C#b|!R@W-4XwfVf9)+2#MCM~M6FC0|vkATm literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Envelope.class b/target/classes/be/pxl/ja/Envelope.class new file mode 100644 index 0000000000000000000000000000000000000000..2d9847e2a9d4244612eb3bdb01cc5893ecc48521 GIT binary patch literal 1092 zcmb_aU60a06g|@-g|@pOyP)gm`VFjZ^;M9>7=0pY0>QYxSfE);x-BV%xc|u)6U|0V z`~m(b;~54-VE4_JnLGF6oO|xvU%$Wq1n>lpOlZ&zq->l+S|C4gC$1B?;i2=YJMemm zK)UXSe$o)o%ax9SjKJ13X`J|h^E8g#C!uwWb5u(64pK%wh7!;gV8aGmGj z#0#RKCt!@cUhE|!ay1t?5~60|JPHQ3Y;2<_u(=#&18%=BP%Nvuf10dS4rJ{G8y96^ zI`)pDi6>o`Y+RPEOfL!(*AGdXZTW|xn~Y;NQ(S4G-fq_#HG$N#sLyb&>4)CS@ln@{ z+io|Yr_hXgZqRXKU%qF~RPwV_xie(RbPr|XNsdKK za;R8^F{P?XYwt|f(kZN)Vw7#2ZwPsp(G<;&CYKU^&;8*POR8p+JGOab4 VGNxq8*h1z5QYgXuaEPSg;U8U%zNG*F literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class new file mode 100644 index 0000000000000000000000000000000000000000..816eb41d3229b681b3ebee393acaf255aad26df9 GIT binary patch literal 7359 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 literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Part.class b/target/classes/be/pxl/ja/Part.class new file mode 100644 index 0000000000000000000000000000000000000000..1898c5c079e27120b3824a9acd8dd89bc7d8c597 GIT binary patch literal 985 zcma)4%Wl&^6g?B$aT46T+J;hSX?Zoa3t6K8n@W|C+JclSQp;)*ti-`hLgFA+{0*$K z0EtJ11Y*U4k3yWWt&)^3P~^$X+vsSTaW{t)G!wc718IR`Prj11K=wPe zC#{~>4h7N={JtMP640u4Gm8weCUO=o!4k-~yxQ<}Q0vLsQ#oR?-j^qyKzZ*kPa_=p z{Z3s8|anOer8i6slms0frIu1V+zi6_F+-ph#$xY?@C zz+=nxe{bw##kpeP3RY>dE5}`dO7+MXQ(RVxagpgLT!~byI5klb hsKQQYYW!C;h9Y=>4!k-8HqOA#|AE&p1iO*M_8*`_t`h(N literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Room.class b/target/classes/be/pxl/ja/Room.class new file mode 100644 index 0000000000000000000000000000000000000000..50e92504c96662f8b5b0eabb9a55ced647b9772c GIT binary patch literal 3245 zcmb7GTXz#x6#h;xnKYf!5Gc?hP@tu0A`Joxnp!9U3KH7d)KsdXC&_6$?PMm-ObU3z z``sVFFYv_&T}z6qtflWPf0E1PJ~NYa(xj*lnajyO-~RTuFK3?oz4<$Um+?acZD?1} zp`sHZhFt}bs@&C6t2{N!Er%gAt{Iv$!O$1auJU!B(z&sm$~l&1ET>2FT?nH~K}1D2 z)Q0VIrdg)#x>;NkB?h*rU>C#jEqrN^b^p!inlPLzcZ;IpXr>WC52BLKZie>wXkNh{ zhW*=}U#e<)NmvoY5S1+Usn{T=H1M@4w5+n9tK{w6Ppk@p@E1ErM zk$1WGpo(X3h=}q^MHoc%WUDxvLifF=!#KilsOG{jTY3rOsET7a&d{|ioCU!vropf; zKI*|%9ZgToxS?}B9izMqt2luXhE5`--(xt^V7gQ_ic+W4RsSI!!6*_6k}96XNrsrK zRRb(3S>_dnGk$dLpUpr!Fk(olIECk=OhuU`hV#ub)ieo$)Lmpu!>*Qv<#Iiv;w+vg zIkcr&OW2frhQXH1>f1*15lZqo73Zan5z;YNwJW0N#HfIWV`xW8rgL1SqNZvMJEm8o z40~(h1uIup%taNGxWu5?9umWz>{faD@GjrWDz4xvxiy!jtGdn$x?qS06__ck5|?x^ z^m<06uWKr<;}z2Hj-UNlz?D}KR7+XvlL*O@yD~dDH#t8uN4ab&y);9Ql*QqOljnMs zsB~n^65V>UnjxmE<$|#0J&rMIFs|phrO9`Hu|qZhLo~oZ_9EeS7`#k4;gYbaiwgAE z?LE51${u z)sRDuVYkl9g%TgCsW(LZG8QZnuOe%bHEBuXv<1j1;+`|BR#9BlWZ8AeT#d;Nrxac? zO~-aDUb!ip6|-dbhCt)fL`A{7DlAZ%k8KT3%~&_rL@Mjjq#b;T7ah~00n=R$zWo^_ z?QilNT;oPb7xqxrG}o$?baM!Sm4=P;_bMW2{@?%fTt0oT-*#?;`^Xut>p9I4=_slU zCxQ_*_Nu$dU+V3|9eE($RdG*F5rxLgG_^z&@4Fby^$>{HKNF+)aNA*7^OvXW+?P}A zV-*@!q6kIt8N*1h&T4%SjK~M3-CxMvU#eKf3WIvxFoc!Sxorzu!8Z)UO{s2`H3i=> z9Dcef4Jt3iI7%Md=t%0s0B&L$3^VlBh8y&wiRM1j6m{=({ks@5W8OV(+9^v9H#GwI9*dD)g+zrmkBqIVcfz< zAdcI99Q#R#1-wrDZxK=i?Y)2DfP$EmiB2|(M~Zct-Wc7(6u^bwkdX}9Tn5q(NV>>U zV6yR%7hRh-XpO!!THs8zz)9_h^CscEh1+zMd{T6mzB;AOKe>*i93Gi70gz6g48z-a z$KO2RCn=OT_z-m; zwZfX(j&*^sF7ALO>t13BDpyaSvlNRID3o9=cx4FdazLe8j0{UH5ZW7B!&7OB5Uw>N zL?dz(_#7_!I;)A;4JvY~+<}FysJvVa2O?74LL}0pvfEmOMq}xJpdEV}8nw(SVYguo pI^7fKK$+GYtm8fR=>vR(PwH!*`fH!l+E-*BAs%1jTYQiHe*kk3*scHo literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/RoomLockedClientException.class b/target/classes/be/pxl/ja/RoomLockedClientException.class new file mode 100644 index 0000000000000000000000000000000000000000..b2945f0b31bb1f6ba768c0300cc4f4aa886a66a1 GIT binary patch literal 330 zcma)1Jxc>Y5PfqWIX$BhOAA3nPz(15sA+;$heee1dzV2s?(K$iPx7~{1PgzFKT4bp z7B+%2@Mhi{W|;T+_5K0i3cDo|qy@4eatsLj3;m*%)$Tz}dlyX0*Q zn2?^F&I)W0j%rrRl~oI^rrx)eZ=QHQv4&mvwU5RsF}YN=TeuWIQuE|7ZW_%qYMAT>S#@0jJR!jN(dqt)cnbZmx9FIZ_aI>wZC(DrrQGUbKZpU^R>_T$o&mPpagEgjRC zVbB^v?(s8v+jutD3(Zi+w{_gX9K+NZKNV%iHn{v?%43>&lH1Z_D2DXe%L>6W#LCVQ zy?nT8+G4MDRu}F8uUoW}sX7L?4!LWpb+8$e$0ogRtlHyQiBPuRM}j(ft?Y|ta}|am zTJCo^m-ZW0F8b~;Bt0Pylr5yC=?yKd_pY6!WNE`^$Fh~&A=OH!9V^9Cb6Tz;c1;D+ zgCw_9{0t*+97lT6<;{0O9y>?gZ~_lgc!b9qo+x*pGOS#m6w^L;PDOBF+J^6PLptsS z!{<(`17REbmfJ^`@K&mhbJ}W_dj0R%xlwp<(G(%_j~)8``U#!OQfGnzqRcI;W=c^? z;u%H2HWwJRU$JfBmM!ji!qc$Lu-emI*hg!iOEdR>DTUDP5Q}t-BXmAvG}7s&Sw!6w z|4FyNf6@)3=K$#FBSGUlt#(MK>Js^lpJ3m7-2#p3TB|Wm_i~YDlWi52uuLn`V}+=6 zEwPHVfK~9jcFgFlY|5ThG88uA;m*qNz_@K2`$cs7LRrpPlguf z!YsJNc((;J^tH2nEKo)(3-aNtp>Eb3vF7`*R9K3&5zZRzW-SqGxerSPu2`G6OXJO$ zXD^|3v(|{U-iM_Qjbd&6GrLI9_=!@?6s+T T1Ns&5oK`8CmFN%UC8qxZEvzmb literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/Weapon.class b/target/classes/be/pxl/ja/Weapon.class new file mode 100644 index 0000000000000000000000000000000000000000..279c877a111b1db2bb4e378a066c6f1a1a81ef38 GIT binary patch literal 322 zcmZWl%W48q3_Y1nXWH>uq1|`a2lRe`k4>Sgp%fHdXY9pZ8SlvLDE?Mgf(t*OA0^FI zL8u9YoRj2)7WgnFjce3h#ys}FW1A?g@w${ykNA)WG)RnB&z z`lT~=(taGqxFR%9LnF=e!V<#Q;!_hEsj>QfG0U_YaFz?xN{cb)Lw3gFBN>)o=G)i) z3$;bb@@zkMww;jli-jBOH{+Enhutr}5BG@WFmEI-r%AjP)Dzb8(bMx9^dnh-M52F# au+kZ$BH7&$S5Xt>D|IyXT1`O#ZvFr}dqSuH literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/AccuseCommand.class b/target/classes/be/pxl/ja/command/AccuseCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..546213cbd2edd8b2246d00a3718d93a3ecdae4f0 GIT binary patch literal 672 zcmZuuO;5r=5Pe%dYHL+QMe!qs8)9M)#uG?FNIW%qz;NG|4K9I}l-BUKylCRVc=ksb zXWK^k@X(pg?7TN`X1>1PKLFg~%!G!Vj=Y5eiVUR@f9Cd>`$PM|9SJXDD7K_8qc%gX ze$m&lu~gKHLg^1pnAp@|S=hoh!?`Q$>3nRDxa|d#3HJwf$MfQu=%x{aF6P3EBf)S` zcm7(YY)#ds#86$Q`6bAAg8`v;9O;Yuc;brik-KBcl%2ri<310iinC-sdXh7SnzPQh zB&^9$kp48LsmtrKR>Y?JA+ZcbPY!(^#UTmkEC92Tf7)h)v=)l9;oBs_>;-Y?i94B0 zv?TFLZ3{J8xCWY^j+i4)w{|QnEEZUihNB+ zQ@K^5J||Yv$Bd|`6&!%s9g;ZAB(4afB#g$zC-hest5VB77@3rY>b&w1j_3a52N?j1 A$N&HU literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/Command.class b/target/classes/be/pxl/ja/command/Command.class new file mode 100644 index 0000000000000000000000000000000000000000..3fe9f3dddeafddea0b2e4e908896fe92c81544bf GIT binary patch literal 309 zcmZXPK}!Qc4255+?%G<#iw93$*NbzvDu_@h2!dUDpB-bFWi~6@8R>8H;1BReiP_eJ z*i-VpJYJHo?~hLaw>Zf$Ae>ih-qyj?*0{E5th|_qZOySyIIZowHNnc#JXJNjNXU83 zE=4As6_5YNlgkBRIQL7jF?H(6in83m;-a!q>VQER#t?IKVj1(uE#daBy#s^9Zxa>VNah2NPjy(raD(Oz@hSOH^gW| Ljxg5RJC1=Lao|uB literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/DescribeCommand.class b/target/classes/be/pxl/ja/command/DescribeCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..97206e040f285b536a785261adde6870bc9acff6 GIT binary patch literal 1012 zcmZ`&U31bv6g?ZDYho-&p<2JOegM@*t>4tnbf_N>Om)QJJ%k-xh9pc#I`wDS2b}T2 z@!22ccsE1?1z+~=-kfvx+q}2C=sgkA&GLx$&ZoeWKq$h2y4) zP23_MOKN7|Bh`VSN5xbZC2AdxJM)c@DG@6`aLQs-=cOOMs8OGpX~0CGR2nf*u#z;NOew<+3>R*Gi=WE z?mre93_0nI)clK!m7c19`n(#o4h_65`<@*}0a@6eAtsO|7bm6c&VZAV?2!qh?MHzl z-bhtb=~SP#)sRr3_G)0bM}I+vB0YXux9Mb2WE6AtZ(v_(qfrX+XG-D$?ae6w5Aldj zOihSZMSe$Ujbh;h`~>GFSesyDg6pY{`riN@c^I+Q`V^mN5feLj3|81D)hCJSPNJ&U dw|?UG1b0(8<$B(ho=9nUN?$ZQ!}B=4_yaFW>Sq7| literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/GoToCommand.class b/target/classes/be/pxl/ja/command/GoToCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..158e810f5e399ef19afacaf24ab0f0074eb489b1 GIT binary patch literal 1238 zcmaJ>%Tm)&82(OM2n{LJQcx5G5w+zO1-uqeE=19Vr~*|(H#C7{(bNx)EBd~nZx~f`%`RKEDbV3MPW6yz z**aX!vnqPlI`lH#=s~Z7xP~i82=ufc3v^kY=^CEn3Jj#uf!mvYoCrzuD;Usl71sn3 zEre!@fU;*C=FDSir{o=ZDI@9Wa_vaFdE!hThVHieZduxP>vImQ625 zlXTs7J@2`eUCyW&#~lTCHQYn0t&oib7SeoQGb$`gf2!du$e!MjrJc|)i7A2TuIaJ( z))CqIvn@@l%`oX^pewkq;Q?j^`Yy>KW7Rn_w;dj*0wB^@CS6c5kB15#X?Tn$0>dqY zl2ff3_O8C+Y&$EBHSL?nW~t^$K|%Sx`*cCUGl9W>LH+_nR-9el?#;4Aaa=DH=F#{(6f zk)6y=o9BZRc*@rq=FCUQF~gnCS#a){_zdxhix3t#%40b$a?~0LSi*Deg#4}?<>e2| zj&Pnmg>sIVz}D0``UFle#>Jq(1%`9eXBe40!|fBOr$}=*{qgsA$rP?L4Nwda#Sm1s zcsKhm#@_3xGmkQ72noEvGFRmBHOSRVtWd=&qZ-0L<=-PY{sW=-GWD(b`sS!FB+(}( ZFEDYL0g)H5U1sP;%4d?(=v7A44b6S@>+3}uB9FAu0!}A z{UPN6W_VzD?vLtlwbm4eFvE+EwLbTrbFZ%S?|*OJ0{9sZt0-YAz;q2WIK?n`AV#7d z3q7cJdj~Sg7)~{mR@pkk)WYI!1!YtMRBQMGwPW<~D9z-MSSF{SbDbiQGW9L1bQWe- zis4!rXBZxZJKWsHDHYyre$1USoyQv z-0E(AHsVl<#Au4S#Bi_G*=h4e6z6iCN=-9ksaB=;j2((h8O=qHdd2sY?vphxxTBVF zg<QbLOsQ0+7~0qhq>)bEBpMhUEv$Ci2maIP-XiCd7Oo;7rQ98R_e^_a)!H)+hOb3 z(~b7A1D!0C4%GQQ9(jXdd1tfJZT;@LV`6gQNJ;+U1)Vt=%XMtXhx_Pi4Dj9Yfh$h5 ziktW$z(Ng+ZYHkwWIcHv*AGNJGQ*+J{rYb*PFmyNG#&D}jPgtdxW#bsB>8{hbj$Q5 z!)!-sxtR}p(rycyMTYr~iA20Bta5w*aXQ;qDZ{nS$&3^7YYa0=C+>dCpB&AP26lY? zXkZyCp&DqB<(A}|6M>%c2~l50V}k52z&e?zhBQ!-e4<=Ea}x$v+>OF@YH0~{N$7=` zBBY0b)@9n&2^rzc(rd7P=tl{+X?1@)>I$v3F@dP7v}5j6Xm!DV6T3v%e2HNG^efCd zJm>Lij~6{&_ITCfHILT`KM3DMg%SqzCY9-FsNe#s;Pf&rkd0NG#zUOJFPJTioga&P vV`KwA;wP}VCRx1WE#C1KD@(WD;oDdE{)5!X8Y@0k33tgv3HNZnzz6REDC=GO literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/RoomsCommand.class b/target/classes/be/pxl/ja/command/RoomsCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..4644d65e3b9f50faa981845f0da6d538241876cc GIT binary patch literal 1180 zcmaJ>$!^m?82-jd>N<6|G%d7rWhqIz7$|$XP)b`Nr2!F?1Gho?!>&)DC8fBgnv4ZBHbi0O!%NT7#d=#anTR-L;w z>qX_zu1bcURpAP`&JfFF%LaO3=t!FAgUOJt*jD4HZXI%Kmpk^hTNAF$knlavX%br@ zpleA{w+f;u^L-e=ppGFE!$>gAvPdPOnstd2RJb*Q=CGh+(Zmv# z8AgIw-E_p!P~>%&^fGP1z<)@QE$g_|?J?j^;tp1H+%<7eQBQXgRz1hz?!KjxHn-Xn zQn8QhYD?NW9x#kwME?WEx4eDIGgzQIFSeYD?Z4)gI<2G%UX|C&+!tydF2?17peHd~ zxX2jQ&(kHT*P|X!2dNOWlMrr0l{e0 zn-QWA5>Y*`PndW$0uF1wPNtG2ujNaMHjel9;D2IZHZ9ZI<@c+8WkrMBJgS8g1YSDR0th vAGBZUCy@S$nW0Ux^fa`zLY6cF7`cTrSSPsszf4BRtznCfXn2P0px^lmT`CX* literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/SuspectsCommand.class b/target/classes/be/pxl/ja/command/SuspectsCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..a9ee71c8115454cf67bc91a4d14673451b9efba9 GIT binary patch literal 1201 zcmaJ>%Tg0T6g`~;h6%$f1QY}TQB1;PRD1_eM4+q+(W+Qkxa)+j(3s4mW_m3A06)Sn za4icgTv)9A4gbQj)Z3Fm5~y<1kK5;-bMEcw`TqOsHvp^HP9lc5frN!FbTbU@^LN~? zbEjs%tn7=bV(4Cxj#O(5@l3XCq6emdq=jBs4C#unn+J7!pWEBKAvT?wbOb|>ANWm5 z_KC0%G6qW4?Sk}Gz8C!%FfeFg2q}jC&ST1zN_bqk9>ZuR+m`(ziW5T`BL+q-T*76B z)EUDmgu&S3eo-8deRBOqXN+68f(eF%6Nb~L+-C_0C!@Pk7 z3yWA{7!E7zq$7@|Ca*iBmuU%xB}5e2vVmKj9z*UV?qJ!#T?_X#^~_n3RkzXL&aNF5 z>ut@3)Ads6SCU_$Ll z`Y>h-7a7l4$diZYOQL49;UgTKcS)zITc5hv35LFs;?=i1ycsEX^sDuG=d)!7vm|Q{ zSAj>C*V~99NSp9!ucFdd+Q3o&*T__|7fPgd0c5e){u6E5t*ERG4XE0!hr#^UjivR-2}C9b3g3t%y6))vG6X zO3LdL?M3XD{xhV1Vrp=mEIo@XEt91f0nFU|3G5@>{$EXI#2v#1rNrmQ1~MqI@VPf1~#zCaALdWbmp03ZaTqa!u_Fn?|Xss*h?b@)t$Lc9JvgY zhV|DnWoyYcC5GB6%`ZW|7Yqr#WeMNCi6^!j-f`QbOxX$??hSY-WSk}Q(Svwms9URy z3&L6q1>sL)n!3CyYe{Un9}>%;^~K2NQ5=$h?i?^H`KN6*NPDh08@@v#^nMVBj(aVV zi54WD%Wa`f3s*q%(-Cvz>2_qdDKg13@`dIb*bDtAD3g`XvUG>6krrSV6^fX=8CeOw zq)(B#WuTe>tLb9~l+Y^nz)D@B*v}{~s76v~&9hIauh5pM<~3*;m4aH*`2dHBKl%X> CxsG=L literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/command/WeaponsCommand.class b/target/classes/be/pxl/ja/command/WeaponsCommand.class new file mode 100644 index 0000000000000000000000000000000000000000..fe33719967de79c55a042dd379595326a1d076d0 GIT binary patch literal 1194 zcmaJ>+fEZf82)BkSX!2YrJx|lLB+NlR>gA>MFe6}s!2^vyqlIu8Eki(?NsprdR{jeC)6=63I>h?ajw|PTsIyLDC2J@ZZP1k7= zU%@AAD_OS-vZeC<7{ri?VGHMwVi=5WGxSL%Jg!`iVJwsFI{hqMCx$deO^jJMj|&W` z4#O#g4D9h%Q5=waGW}Ygn6PjWlMHdkUrwKLcSX&cxI~USkzV;J5}3iPi8%|GaV1ir z()*SY4bpJiq%<0sm9G85la4AWPw+-Qi7CumxP}b5stHx3GEviKUkEGIGUQg?vP$45cCs-6xp(g>rszBcM> Date: Sat, 18 Dec 2021 14:51:16 +0100 Subject: [PATCH 21/38] Few changes to certain classes. GoTo command fully works. --- src/main/java/be/pxl/ja/Assembly.java | 2 +- src/main/java/be/pxl/ja/GameEngine.java | 5 ++++- .../java/be/pxl/ja/command/GoToCommand.java | 4 +++- target/classes/be/pxl/ja/Assembly.class | Bin 2882 -> 2882 bytes target/classes/be/pxl/ja/GameEngine.class | Bin 7359 -> 7417 bytes .../be/pxl/ja/command/GoToCommand.class | Bin 1238 -> 1248 bytes 6 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/main/java/be/pxl/ja/Assembly.java b/src/main/java/be/pxl/ja/Assembly.java index e1e386c..da08a2f 100644 --- a/src/main/java/be/pxl/ja/Assembly.java +++ b/src/main/java/be/pxl/ja/Assembly.java @@ -5,7 +5,7 @@ import java.util.stream.Collectors; public class Assembly { - private List assemblyParts; + private final List assemblyParts; public Assembly(List assemblyParts) { this.assemblyParts = assemblyParts; diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 056fb0f..223cf4e 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -26,6 +26,7 @@ public class GameEngine { public static List rooms; public static List weapons; public static List suspects; + public static Mansion mansion; public GameEngine(Scanner scanner) { this.scanner = scanner; @@ -117,8 +118,8 @@ public void initialize(String playerName) throws FileNotFoundException { } */ + mansion = new Mansion(new ArrayList<>(rooms)); detective.moveTo(rooms.get(0)); - Mansion mansion = new Mansion(new ArrayList<>(rooms)); } public void start() { @@ -150,6 +151,8 @@ public void executeCommand(String command) { helpCommand.execute(command); } else if (command.contains("accuse")){ //voorlopig accuseCommand.execute(command); + } else if (command.contains("goto")){ + goToCommand.execute(command.substring(5)); } } diff --git a/src/main/java/be/pxl/ja/command/GoToCommand.java b/src/main/java/be/pxl/ja/command/GoToCommand.java index e612c1f..0436dfb 100644 --- a/src/main/java/be/pxl/ja/command/GoToCommand.java +++ b/src/main/java/be/pxl/ja/command/GoToCommand.java @@ -3,11 +3,13 @@ import be.pxl.ja.GameEngine; import be.pxl.ja.Room; +import java.util.Locale; + public class GoToCommand implements Command{ @Override public void execute(String input) { for (Room room : GameEngine.rooms){ - if (room.getName().equals(input)){ + if (input.equalsIgnoreCase(room.getName())){ GameEngine.detective.moveTo(room); } } diff --git a/target/classes/be/pxl/ja/Assembly.class b/target/classes/be/pxl/ja/Assembly.class index 862cf524316a186ca33f491fe62a9fda9a258154..cb3fd26b395a693cfdfbef95d206e14b446347e2 100644 GIT binary patch delta 14 VcmX>kc1UbP0SBYd=0c8(OaLfU1nU3* delta 14 VcmX>kc1UbP0S6<~=0c8(OaLeJ1ls@r diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 816eb41d3229b681b3ebee393acaf255aad26df9..d8a78bdda702f535778e8d46e63ab50c92429573 100644 GIT binary patch delta 2023 zcmZuxX-rgC6#l+9D{mg_0|Bip3bHCxR0PBgQBjK2g+)aK91#RT7_2MfR%^xmsc0Lu z{b6W~O)AtORRe9)q)ijkziry|N0a_+Vym^)s_l6*3N&$&x$m6so^#LgoqLD#9_Ojw zKEFK#ppX}Ds*6>N1HT(r)EN5%4K_S9?y7OA_wmS7{v!0$(&oAyby;1Wrk1SIrcO^m zT160Cc&y$L&O&ifBeU;Z_kRUrr#Lo7|lZ9ZmHD z<(N<$Vei`3($=t5MZO6n64r*6F4^~RvWCM;%*1`Xxz(v1LfgXR(OfX)U-h3Tk5toX051ib~ktmLhU@D!o`CcJJ=q^b^+ct zfg>8X`?aH{_O8Y@zt*GjI8Qiu(oFS~aXsQIo-x|=B8`kPqcRom9o(5Mj0@9F-bYvj|d6^cN2VbJli+h-dA21)kU?Co&hz=Ap0*e`kB}~Cm zW}}3;ST0>E{eD{kH3)@rM4r8;R=>ZrMEaFX+8*2#f($-IX3Y>*(Er2U#O8bI8FY!+lZf}WwkfpP~t zPmwLFEknsro}gP{qwHJ7V~hNoVV70rKuA&~6)&Lo)1ouTN0(m+6Tzfg@zWgwi^$zF zFJcSrjIuDDzB~inTd`!#X1}eCWJ{kn~TXXZWc1;fBs}qu_V}qx<0P z)fqF2CJGwchl4t0|E2#d0blDwtImm|V4;BVeW=RNnc(B3K%`UwllxGlbIPctDqw0K zrio?Rh~**yGx`wg6*SY2hDxSc8BQO1eVk@Cz~XN}8FZ14$tCPT6pkYvCuG`BVg^ph z;GRYa&R{jpVuMU~6V9O%=cQd2a1_0QT*PHu!bf-y{dgZkxIE^X4x0^>{>yKeE#_eO znRFp2Dl+hk5~y{Aup&QUK$OrVH`K>0A9HSV7VtmDR6heBAQB&rVJm8ct!;8G0~3&C z@^4aUlhR9Xh!EghCPd_GW4vtv?=aPT^S_D=@jy2JcxopS~`_Y-lWziWXb>cv4G z%~w0j^E*iWV?AobL*Ct2dn|ZGh)OuwIntuZ{@Tr)@OAYdiv}=cGC4MaOL+D8OYPzg n$b&RRZrob}c5^=uy^s!%NbiVrOb$5Bv*IK#F%6z)FJk`#v@K~@ delta 1945 zcmZuxX-rgC6#l-)Ff+V)z`$c%&<-k~2-Hzf5fCjZxFJ>r6vbs2M;W$37K>V$TCH{8 zUKiU$O-(9E(Vv+v?q*-3 z-?uUxZYiEzZ?&dE3jRgEs=mMeqt#?P*-HExYbs39D|?qHy+Gw6h0 z#YnoH2&(YPmm>-1=3qylJyb7Hz6qsD6J4#%;Xsp$A`^ItumzgCWWSSX8uoFV(V$Jp zk)3qeX$UsAsc@Kv6UEaX2y}IbX(`<*`Z!r*Hgk;IT6XHo8mFL5irE_Mtn{}8lM%zI z8mBSOaK@K$x=|VL&bK*TFSQk5}5;qa}b9h>V=H~eXi&Y z!}M36f{10QSj;oNNa=CS7r#7cvU-hD&!mDhG-DhWh&}>}tSu~KxqL;!5-b&Oav^FY z*F3;BR%Rkj60ht#=gCzfmk_;#jWJj8tAekvJBs_)@u>DX>S_h<$K!tdQ{=oTv1~N+ z{(u5m(hf4rb$(KXvcKy!VK)kOc>&OR;)fj5w3{k z*O-mSUChCEn2UQT#RJTv0}GgpGI~+YNm$6KSi}M>k@l8yIhJ!JR&YI5u?bb&fokrR z!90xBJc(MK!&-iZb?iqSZ(;-QVk5uDCjJCJe?fo`v6)X0RBYIyxX_@CKq#V&N28L9 zZe+;HOU0wOh>NAuD%q(pK(H^9k_LWCyTz}_Y)z;7HGoffG#$r3yu{~+wL3hhFQBB=rW68_a08>Pb% zG!aa86^q>j#E86G=A#G6h*)PKDNMI#U65O3lB|%-mXPMWUC^136Gg`dNXWj7h@KN= zVlNDx$wO$WfO;=_bfye};|28eBBXP~5I9r7QN5_rIeG{z5pYZ|=H}=e8>M$3Q`L#M{^t0e|aieuu10nq4AaCD`9cB%4h`{Vp zyz9h6p3fJ16b@=&tS+PFxi_W4XA1piwXdeCK)6E delta 85 zcmaFBd5v>JDWeQqYGG+&PB9~csD@8gVp*boPGVlVzJF3yYI4cu*^Kr~jBJx{GrO?r oZex(wo~**6Ajrue!@$L$&cMx}$H2>A$iO!_lqC(QY7dJF04#+SGynhq From b176fe061326e0477737f3b5612bdf19b395e03e Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 18 Dec 2021 15:04:32 +0100 Subject: [PATCH 22/38] Changed Describe Command. Few other changes. --- src/main/java/be/pxl/ja/Cluedo.java | 1 - src/main/java/be/pxl/ja/GameEngine.java | 2 +- src/main/java/be/pxl/ja/Room.java | 4 ++-- .../be/pxl/ja/command/DescribeCommand.java | 4 ++-- target/classes/be/pxl/ja/GameEngine.class | Bin 7417 -> 7397 bytes target/classes/be/pxl/ja/Room.class | Bin 3245 -> 3528 bytes .../be/pxl/ja/command/DescribeCommand.class | Bin 1012 -> 1083 bytes 7 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/main/java/be/pxl/ja/Cluedo.java b/src/main/java/be/pxl/ja/Cluedo.java index dfd10c0..aeafe5e 100644 --- a/src/main/java/be/pxl/ja/Cluedo.java +++ b/src/main/java/be/pxl/ja/Cluedo.java @@ -24,5 +24,4 @@ public static void main(String[] args) { } } - } diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 223cf4e..5b9ca86 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -119,7 +119,7 @@ public void initialize(String playerName) throws FileNotFoundException { */ mansion = new Mansion(new ArrayList<>(rooms)); - detective.moveTo(rooms.get(0)); + detective.moveTo(mansion.getHall()); } public void start() { diff --git a/src/main/java/be/pxl/ja/Room.java b/src/main/java/be/pxl/ja/Room.java index c92e4fb..33045d9 100644 --- a/src/main/java/be/pxl/ja/Room.java +++ b/src/main/java/be/pxl/ja/Room.java @@ -17,9 +17,9 @@ public Room(String name) { this.locked = true; } - public String describe() { + public String describe(String input) { if (locked) { - throw new RoomLockedClientException(); + return input + " is locked."; } StringBuilder description = new StringBuilder(); diff --git a/src/main/java/be/pxl/ja/command/DescribeCommand.java b/src/main/java/be/pxl/ja/command/DescribeCommand.java index 2498e76..aebba7c 100644 --- a/src/main/java/be/pxl/ja/command/DescribeCommand.java +++ b/src/main/java/be/pxl/ja/command/DescribeCommand.java @@ -5,7 +5,7 @@ public class DescribeCommand implements Command{ @Override public void execute(String input) { - // System.out.println(GameEngine.detective.getCurrentRoom().describe()); - System.out.println(GameEngine.detective.getCurrentRoom().getName()); + //System.out.println(GameEngine.detective.getCurrentRoom().getName()); + System.out.println(GameEngine.detective.getCurrentRoom().describe(GameEngine.detective.getCurrentRoom().getName())); } } diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index d8a78bdda702f535778e8d46e63ab50c92429573..64bb668a3e989095e607cbd5ab8e00dae52ae587 100644 GIT binary patch delta 645 zcmYMv%WD%+6bA6`o4jYHNzEA3q*_g_nl`mj1BF@?BnpKlAQk$+SCi?`s%cX4fbIn8 zuHa@C#f>g!(}grL3paxP5em9hL=bc%3ck)Ln!CA&-#Pd3eVcka_4uV)Q1J;rbo|6G zBD89?XDYQC5zmg6s#bnuvzEVI$(eT_q)vrC+oxr;0D~chbcPwR^ICzLZE6dV zK1M@~>Fl>(Xd{f<@3rh=LgxX@%k9>tWp>(D7!?&sCc>~(49U)eM0mw&nax{Op@K(; ziD0K*YnXRbob_Os@SC-c^xGWKvBhKdnm#-$ovd`$tlEZ(kT;lQdjM6#JyG-=vCnjhu_t14PH3KuYd+uxl{c!?fUlgB^pZ z9%cm74(=Ho?BS%~AqVRQhkAHU@Q8!OoWYFCqkkXD3LbY*G8Bp|`M+kx>3_H}~fEopbL!pC-OfJbkB*YPgG^ zI^N?K(VaRwJYBGET4vEIt(fQY1;?&Us%Q{8NySyQ0j-7M2wQbV7EXUUQ73b%dyc0VRQbH;t$lbg?Rn&%)($?+0rL3AinyvzkCm{fXrMJ&Vz z*ybWHpoK5-h)bM7m|t*}7U$8*Z&+ZSw#>3D7wKRi?ppFpXUJg8r?y2objrcqPG;|P zrF~Q%qkZHVjI>X~!=}OAP3#p+c-S!5)5HP6q=$P3CEjVz2=4K)YH)88PYUkyFqbyC z-{;`Jhf;zEJ!B0Yl61bpaG3> zG-+r?OrU*2W=c2B%#5D7s5_oO?5JTG-Z6o7JtH&voSrdtYbulT9K)K*_Kvrr1+8%; zG^~PFwf&N97rEWE^Ru!bAg-q9uwBDyBn8$N^;tP&TY25PY{k{09G`>*(gM6xaD64+XCVcB)Pv|y)(2hc6hIwif! zQZLz-Kxa>H5O&!!%*<%XGi*yYvnfy`4SUcd&`eV1ErIP-rjunWuZ%Op;Y~JyH2UJ` z*RU4@0x4g%Dp=}N)Jp;f!|42%wLmK{YQR1X`*A?Yl+Vi&%jQU}OchO{Ad4s z9K&&e7S9e!SYT~Myl7#ovOb~VB!&dyZh$1PW@M>5LU^C=X$`|TL$~(ig|cbt6Q&gC zi7GHUF+(odXy}U>Rld$?cnptIzZ+rpQxR7|MX;96vyBpzC3pJbiAyKOMlUg!wXGr0 zR_Uj4-7J$z(~w=@W%Y<*$qVJ;gmlINj;Rqlubbn#W2onFu}L+6Kr+HW^>UUtmR=-I zOF_Eqq6ywM8&;{z?5qlw{2~?DSVO9kdveQpdVco2UJAXn=8P#z_sR~@`YNfYs?DPj zA{Et-kxlv^twZ6Iaf{(HR(}$4B3va8S9(K>qkysXTs$Tm_hBKzFNJ+f9>GufGhSDRgEut1sYYg;GxY-dKZ&<}jM}1) zBrH51B=PRDgG0sNIJ5J<8rdIcn8i#Iu_Qhg*b{B0O0!2J3W2%%Q?>gu4F+bI_;Z#e zogq_qUFpX0rNFM5RM#uhIKCFxc7Ib&<)EgqgB}}rifP6sT)-&5#25M0fD!&UzWsZC zGW;tK8~&BYB3?Dx@_fbrC-`)R_6lcJy6+xDy6GMlKx9Shh6%%it|0U333kc)>G@JMAb>o4}tz;D$z~CyYLiORTy0X!NoAH^NmumlZsryRR(a4RtYq=|A`H8bSS;} zJ?FYo?Es$yuPqE^@MoM-TpD~X$`0uBeJG`A6Z&}Cx4F(Wp0DcQoUMbCSrO+M;yjDz z_^Gy6w;gdp>= zMag376zeibW9!bcnGi zfnsS^;@U^y T+9zE5oVya-@dduZH`w?$LcKLY literal 3245 zcmb7GTXz#x6#h;xnKYf!5Gc?hP@tu0A`Joxnp!9U3KH7d)KsdXC&_6$?PMm-ObU3z z``sVFFYv_&T}z6qtflWPf0E1PJ~NYa(xj*lnajyO-~RTuFK3?oz4<$Um+?acZD?1} zp`sHZhFt}bs@&C6t2{N!Er%gAt{Iv$!O$1auJU!B(z&sm$~l&1ET>2FT?nH~K}1D2 z)Q0VIrdg)#x>;NkB?h*rU>C#jEqrN^b^p!inlPLzcZ;IpXr>WC52BLKZie>wXkNh{ zhW*=}U#e<)NmvoY5S1+Usn{T=H1M@4w5+n9tK{w6Ppk@p@E1ErM zk$1WGpo(X3h=}q^MHoc%WUDxvLifF=!#KilsOG{jTY3rOsET7a&d{|ioCU!vropf; zKI*|%9ZgToxS?}B9izMqt2luXhE5`--(xt^V7gQ_ic+W4RsSI!!6*_6k}96XNrsrK zRRb(3S>_dnGk$dLpUpr!Fk(olIECk=OhuU`hV#ub)ieo$)Lmpu!>*Qv<#Iiv;w+vg zIkcr&OW2frhQXH1>f1*15lZqo73Zan5z;YNwJW0N#HfIWV`xW8rgL1SqNZvMJEm8o z40~(h1uIup%taNGxWu5?9umWz>{faD@GjrWDz4xvxiy!jtGdn$x?qS06__ck5|?x^ z^m<06uWKr<;}z2Hj-UNlz?D}KR7+XvlL*O@yD~dDH#t8uN4ab&y);9Ql*QqOljnMs zsB~n^65V>UnjxmE<$|#0J&rMIFs|phrO9`Hu|qZhLo~oZ_9EeS7`#k4;gYbaiwgAE z?LE51${u z)sRDuVYkl9g%TgCsW(LZG8QZnuOe%bHEBuXv<1j1;+`|BR#9BlWZ8AeT#d;Nrxac? zO~-aDUb!ip6|-dbhCt)fL`A{7DlAZ%k8KT3%~&_rL@Mjjq#b;T7ah~00n=R$zWo^_ z?QilNT;oPb7xqxrG}o$?baM!Sm4=P;_bMW2{@?%fTt0oT-*#?;`^Xut>p9I4=_slU zCxQ_*_Nu$dU+V3|9eE($RdG*F5rxLgG_^z&@4Fby^$>{HKNF+)aNA*7^OvXW+?P}A zV-*@!q6kIt8N*1h&T4%SjK~M3-CxMvU#eKf3WIvxFoc!Sxorzu!8Z)UO{s2`H3i=> z9Dcef4Jt3iI7%Md=t%0s0B&L$3^VlBh8y&wiRM1j6m{=({ks@5W8OV(+9^v9H#GwI9*dD)g+zrmkBqIVcfz< zAdcI99Q#R#1-wrDZxK=i?Y)2DfP$EmiB2|(M~Zct-Wc7(6u^bwkdX}9Tn5q(NV>>U zV6yR%7hRh-XpO!!THs8zz)9_h^CscEh1+zMd{T6mzB;AOKe>*i93Gi70gz6g48z-a z$KO2RCn=OT_z-m; zwZfX(j&*^sF7ALO>t13BDpyaSvlNRID3o9=cx4FdazLe8j0{UH5ZW7B!&7OB5Uw>N zL?dz(_#7_!I;)A;4JvY~+<}FysJvVa2O?74LL}0pvfEmOMq}xJpdEV}8nw(SVYguo pI^7fKK$+GYtm8fR=>vR(PwH!*`fH!l+E-*BAs%1jTYQiHe*kk3*scHo diff --git a/target/classes/be/pxl/ja/command/DescribeCommand.class b/target/classes/be/pxl/ja/command/DescribeCommand.class index 97206e040f285b536a785261adde6870bc9acff6..3bd533fa9a61fc21ad8aa6d426f934842659b7e8 100644 GIT binary patch delta 378 zcmZvW%}N4c6o#KOVdG2_1W{z0ek{{b8_Rw*iV1j~Z z-BolEt)nx};HEb3d(QdJ`<(CFd`sG&KdE@ZN& zE&tBe!P9ql9}tA^n-g&FFp0p@_ofaypB zQUMDA=@IZAd$?&ar&UOujgmxEWw6U0GIgx{{g_|Yose(2`44gd`4R7*4_YzGprR3j JDhETa{Q@3uGyVVo delta 323 zcmY+8%Syvw5QV?_rN;b53CbMeFuG#R*0Y=u6-AG zuEmoyP~6O!nKS2O-e-OS|MmO!0i4qv`U{&~r5>;r(O~`g$-4DTBfiZZvh*(N_tNY8 z!A-yCX|f%VM6`7EZEf3qS#}M3Y~nC>gqxDqm{#4>luAunOJ1>|8mASdttD;s(fELU z4m4RoRxQF;x^~idL@;75XCY@PXJx|ir5`ew$Ct3haiD@JN{2%%z7+PT!geZbn6y6G Y$l03kinss&6;>$6u^h( Date: Sat, 18 Dec 2021 16:02:20 +0100 Subject: [PATCH 23/38] Improve Clue command. Not yet finished. Still some issues with Rooms, Weapons and Suspects Commands. --- src/main/java/be/pxl/ja/Detective.java | 3 ++- src/main/java/be/pxl/ja/GameEngine.java | 8 +++++++- .../java/be/pxl/ja/command/ClueCommand.java | 8 +++++++- .../java/be/pxl/ja/command/RoomsCommand.java | 11 ++++++++++- .../be/pxl/ja/command/SuspectsCommand.java | 6 ++++++ .../be/pxl/ja/command/WeaponsCommand.java | 6 ++++++ target/classes/be/pxl/ja/Detective.class | Bin 922 -> 990 bytes target/classes/be/pxl/ja/GameEngine.class | Bin 7397 -> 7531 bytes .../be/pxl/ja/command/ClueCommand.class | Bin 666 -> 1280 bytes .../be/pxl/ja/command/RoomsCommand.class | Bin 1180 -> 2003 bytes .../be/pxl/ja/command/SuspectsCommand.class | Bin 1201 -> 1949 bytes .../be/pxl/ja/command/WeaponsCommand.class | Bin 1194 -> 1942 bytes 12 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/main/java/be/pxl/ja/Detective.java b/src/main/java/be/pxl/ja/Detective.java index 3a5475e..1262b8e 100644 --- a/src/main/java/be/pxl/ja/Detective.java +++ b/src/main/java/be/pxl/ja/Detective.java @@ -1,12 +1,13 @@ package be.pxl.ja; +import java.util.ArrayList; import java.util.List; public class Detective { private final String name; private Room currentRoom; - private List collectedClues; + public List collectedClues = new ArrayList<>(1); public Detective(String name) { this.name = name; diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 5b9ca86..2dadcfa 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -27,6 +27,7 @@ public class GameEngine { public static List weapons; public static List suspects; public static Mansion mansion; + public static List parts; public GameEngine(Scanner scanner) { this.scanner = scanner; @@ -41,6 +42,7 @@ public void initialize(String playerName) throws FileNotFoundException { rooms = new ArrayList<>(); weapons = new ArrayList<>(); suspects = new ArrayList<>(); + parts = new ArrayList<>(); String objectType = null; @@ -54,11 +56,13 @@ public void initialize(String playerName) throws FileNotFoundException { Room room = new Room(line); if (!rooms.contains(room)) { rooms.add(room); + parts.add(room); } } else if ("#WEAPONS".equals(objectType)) { Weapon weapon = new Weapon(line); if (!weapons.contains(weapon)) { weapons.add(weapon); + parts.add(weapon); } } else if ("#SUSPECTS".equals(objectType)) { String[] params = line.split(";"); @@ -74,6 +78,7 @@ public void initialize(String playerName) throws FileNotFoundException { if (!suspects.contains(suspect)) { suspects.add(suspect); + parts.add(suspect); } } } @@ -118,6 +123,7 @@ public void initialize(String playerName) throws FileNotFoundException { } */ + mansion = new Mansion(new ArrayList<>(rooms)); detective.moveTo(mansion.getHall()); } @@ -146,7 +152,7 @@ public void executeCommand(String command) { } else if ("unlock".equals(command)){ unlockCommand.execute(command); } else if (command.contains("clue")){ //voorlopig - clueCommand.execute(command); + clueCommand.execute(command.substring(5)); } else if ("help".equals(command)){ helpCommand.execute(command); } else if (command.contains("accuse")){ //voorlopig diff --git a/src/main/java/be/pxl/ja/command/ClueCommand.java b/src/main/java/be/pxl/ja/command/ClueCommand.java index 9177792..07406e0 100644 --- a/src/main/java/be/pxl/ja/command/ClueCommand.java +++ b/src/main/java/be/pxl/ja/command/ClueCommand.java @@ -1,8 +1,14 @@ package be.pxl.ja.command; +import be.pxl.ja.*; + public class ClueCommand implements Command{ @Override public void execute(String input) { - + for (Part part : GameEngine.parts){ + if (input.equalsIgnoreCase(part.getName())){ + GameEngine.detective.collectedClues.add(part); + } + } } } diff --git a/src/main/java/be/pxl/ja/command/RoomsCommand.java b/src/main/java/be/pxl/ja/command/RoomsCommand.java index 359ba29..5a7c0d8 100644 --- a/src/main/java/be/pxl/ja/command/RoomsCommand.java +++ b/src/main/java/be/pxl/ja/command/RoomsCommand.java @@ -1,13 +1,22 @@ package be.pxl.ja.command; import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; import be.pxl.ja.Room; public class RoomsCommand implements Command{ @Override public void execute(String input) { + boolean clueNotAdded = true; for (Room room : GameEngine.rooms){ - System.out.println(room.getName()); + String roomName = room.getName(); + for (Part part : GameEngine.detective.collectedClues){ + if (room.getName().equals(part.getName()) && clueNotAdded){ + roomName += " 0"; + clueNotAdded = false; + } + } + System.out.println(roomName); } } } diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java index ae49e91..b1844fb 100644 --- a/src/main/java/be/pxl/ja/command/SuspectsCommand.java +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -1,12 +1,18 @@ package be.pxl.ja.command; import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; import be.pxl.ja.Suspect; public class SuspectsCommand implements Command{ @Override public void execute(String input) { for (Suspect suspect : GameEngine.suspects){ + for (Part part : GameEngine.detective.collectedClues){ + if (suspect.getName().equals(part.getName())){ + System.out.println(suspect.getName() + " 0"); + } + } System.out.println(suspect.getName()); } } diff --git a/src/main/java/be/pxl/ja/command/WeaponsCommand.java b/src/main/java/be/pxl/ja/command/WeaponsCommand.java index c9a21ea..ddfae4d 100644 --- a/src/main/java/be/pxl/ja/command/WeaponsCommand.java +++ b/src/main/java/be/pxl/ja/command/WeaponsCommand.java @@ -1,6 +1,7 @@ package be.pxl.ja.command; import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; import be.pxl.ja.Room; import be.pxl.ja.Weapon; @@ -8,6 +9,11 @@ public class WeaponsCommand implements Command{ @Override public void execute(String input) { for (Weapon weapon : GameEngine.weapons){ + for (Part part : GameEngine.detective.collectedClues){ + if (weapon.getName().equals(part.getName())){ + System.out.println(weapon.getName() + " 0"); + } + } System.out.println(weapon.getName()); } } diff --git a/target/classes/be/pxl/ja/Detective.class b/target/classes/be/pxl/ja/Detective.class index c9b15a0768fc993894b951eff6d98ebee169a769..3d994c3e4a49ee91c06cc31d13649d641356714b 100644 GIT binary patch delta 568 zcmYLFT`vPs5IwhATiacJ9 znvn4BNBAk2yOqc$GqdN;Idf+2r7ubT{C<50u!5z!Y;8-3G9*vznr)r?j%%$}tM*mi zIrC*mkQGD_V+d!qvV}INXqV8Tpc8T89CE92=~^eYwa$HB^qm^NU1g)P=u0Z-f>z%j zh^pvT(1YIk%}6YbJ_-E_1~6EESU4DB==~R2bI*Cn+qf+9itl*kC`K51c8{GiXeU`vxQsEey&x7Xww!Xgd3_t!U<(2 zR-iZ$U>WLQLW^RSkOIO1Pd6K2<{PBFa06}6P|Vyj5|07Lq?n*SK%pp;o=Owikt0NJ zvN3s$Df$(F7|-aNhV?f@WJYfh^9lL`6(I=C)&PtLI!dzvlYtDw3}y)t4ol=%Y?jUm z_6t&XP~TweC59Uq{SY>FVRN%3&}{nD5F;ZRT_8m_`1hIq(%}0}3W7EXMR&DE7qGoXrq^pygli(6iic*7!xE43pkg5I(1+}1{ zyFbCfpQ7IPTEykubMHIn+{67+?^NUC`{fNl7jb69mJSWN3d2MhW_ICqifM9wLa_JG zlItYyCuuJ}xVk(|d%J>KF)@v5_Sr7mm{n0T;h>&tv`t>#r6&3L5j8Xy^Cn7Yc>i(+e>nq0d=0{el#;`6 Ilc9pGU-^kHQvd(} diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 64bb668a3e989095e607cbd5ab8e00dae52ae587..6f33df98b8fb69fc80b44b80eb71aa4befa56325 100644 GIT binary patch delta 3272 zcmZuz30xHC75~54V|HhU!(9+oEy^KsXf~q3xKtxWq9_6p5s7##u;9Y7i|lfEE-`4l zqZuzWiJ?hDlh{NdS%Rc#qG{8T9!c7?sZ9@U(>5_zYn$dy-z><|U)|qtXWsjN?|t*$ z`@iqaygm1-T^jo8{PO_j(f#M74BaFnOsJR9fGUEn$7lW$937c+X#l_^8DPA;-XRm0t91nX<2DWe%^{w z5qA+HtDLr`cDJqGVO#F?HcIF~nF*cPDPot5dw7>feS*Ccdt~gz7J|l6QzK$OAv)|> z?sPPHJreez%z%3dl%vLRSjK%&lv@4lsH2QcQL*DPPM}M9OrK(C!zmf};{oLjeQHV@ zPOHj8gz;$w1?h$Lj#h`w?eNsuO8w0)PhF0PZ!43<@zLEVlkgopDxycmcX_LPF)^nb zkIQ%hXSfVLr$4vONzkShq_33FjVEP1g_WEquM|1_F0aSocKJ7{OXpaUd69v{046-vN2tMNyhK+mXc%4F#Q346!9k+mvKdDGFBKm@D~|xG%wfJ3bTcOM6&q-gY7U&BZU*apJ zUrI7uBgjM~D3_%~Ly)vG=}50grbLs0j3P-gnMhW$O|vLcsW+7yqiLK-W|=I?kST>? zl@Cp6tKwy{suYRNc4u{q-)VqDLL9{#z-cA$ohCDXHBMi3v#W}sSt^voS+#iF-s%Pk zb`_Y)TvWSTc)g9Laeq^q;+2yEypqW)8=USY38HFv6MH(Ut6O|*nyUgcdA-i-_ez*f z@!SP8Tc%q`;LfUZ`tw?vo1Gs2$O)o3GTjOv$I44Zjz*^$8nVljL*HbA8yyYKJg=wP z;V*ajH?ZXME71`)ny)N~NT3DEx`?Uzd3=&6PuUxhLix&55lJ+pydKf1T#1;ZDRDIS zl|+6_)Y!KuT2GN%CE7;YMGDB&L3j179;YR`TUl?Okh4>QiFV1YctlEC;uc)* zVBS9L*=g094+e3_uCwYiS?b?>B#2`{oV4pzO*001&@K+5yTYpP$HR7m)nL_W16j}F zksuyZ6Ojnf-XS4+EU+0KQM?#fu^F zhs0CyCp!o53k?SF2H`w@3x`$$=pe3Ds9nN_{rGo3 zKIy~fy=tDH2k~`~H0QX_w50ar2gu>;RPL{7h(a1BB7?O|*f1S)F#~xl%xvB?9l^NTA7eVE7ZjQRXFxQ(a$0$f2Z-e>nuv5*AZPBBJ%ZKrBq}M0HS`?T(Gb?tn+Q1Q z3V%ktiyHa_PC<`aAsTf;JX}H|>V-5k2sXHdYaM5~l@WIX(W>FPm8qVPYRrBMt9QZ-1Q6I-4uO}z1ft~{|r&_Axhiu^R zWY7rWVx*pt2{3+%d=Vug+5%tTX1?jNg>2z7>=CGe4YWKj-2C@Iug)As^7-+^cS|pc z7K#W`R7i+nL8V^^(H{v7%bh%2cEXHZq2lnh?!YAye0Fc;Y|a;MGKA33=NP- z9y^xIAjS3Itc50oK^AFZ4^CNVQW#8R@EbkYWub&Hn9bmn9&EG_FRMdI-E$s;$vvpd zv`|WrQoCSgFfG%-Ln08Q^d96{C?jkxvHA2K+{ETHLgwlo3mLTaz{=pwAux(TTWF6U zWvNBbgo;oE3(JRiW*-&Y*2GogThcnKi%Gk7gZ|9#$;k*+ZhvR6VDVNl~3Ik#&%FA-7_NX9+md7 Ubdddz@XS$5OLUyN=oGB~1^*h*K>z>% delta 3187 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 M?^)96K{^80H@EG+IRF3v diff --git a/target/classes/be/pxl/ja/command/ClueCommand.class b/target/classes/be/pxl/ja/command/ClueCommand.class index 8420dd9141b90dd6221e6f0ce01ec5848c91517c..c771d1a31ae6cfc84a4de12b60613d2cf5543617 100644 GIT binary patch literal 1280 zcmaJ>+foxj5IvIwmV^Of2nY&-ikgJWs;Hm=6vIU{M5|)OD&8i^R9M_>;%1lPQ{)SL zma?$$!Q$C>f5x)Zo@8SZMPH_Sd%91bzRZ64@#!;wWo(DwgI_~{qYK>(;XSc0bW>O* z{ds;*7957|CBrhD6$XDSo(rM}K@A~}UT}tJUh35YQ{NN%rYOsGt7KS`p{puvr$%V$ zI-Khmrk*xxPO=yM7|;;rIEM&Bf9EwrkKssLI2D^=I2Lb<-tz2(5XF#&VUF_{VTiO4 znl235uBc_?0dXhFJ1XJ=$3=`W1gyF_+Qe=vG^ybdF=`d`f@%n19FrWEafMJz(#cSf zRCPyq*0Bw%lnh}C*EC$`xPe$lBO4B6l5bpL*0xGk#g-{iBc!2NqsBT94=BE)nw;R6 z#tcKSC>kE$l+2TozVQS8%C@PA!rLvfw)ZDlDgAnPKz{kS0JN zRVh;RK$_MlM70VmvcFdyI)=Ts=hi2=Nb? zojt*AA6~ut`Bmlf*YgciF3=8-AxMuQL~F*0a$i0FB>9YC1SzbMM%mC{qO^5v5SLA| xa`?Zi|4cOT4ZiRyv3%mOoF|q(@(3oTPce0jd;cpl=z;sNMIk;s#k0Ch{{qIED8B#z delta 314 zcmZ8bJr4m<5S+K?oO=%E+u=G3|~>kM(^2O-C(*IJrqbUp$U zP~=YNFB!GD%SC$jZ?xXV(r2lS6IN+&31tYk&l#0(Mu$Z@!)~>2uuic5vwn}Tzef-} Lwh*eQy}AAZ`0yRt diff --git a/target/classes/be/pxl/ja/command/RoomsCommand.class b/target/classes/be/pxl/ja/command/RoomsCommand.class index 4644d65e3b9f50faa981845f0da6d538241876cc..160740dbc209b1621bdff1475948a116327958e2 100644 GIT binary patch literal 2003 zcmaJ?YgZFj6x|mRCWPT(0Bu?j+9Cof!PdSKpv5Rk8zMCnTkPwST$6#xOq!Wc_$TrU z{9KlcF8$Eu=k^bEb**amJdjCYxw3Mf`<%P?Ip^N_^X2nD04%^xq63{8VmjjJ5*XN) zyE0=+tD3pDwXMpoK-aus8SbJ$=hXB@HxlU9kkruwU0`TSWg2^CW?N?N$hx|1RSioC z#GAHVcj&F)yKA|InJE~Ko9jUz`ZWybIER!#U;DN|!f;hnx^`3G{M2;BdL>+^han7W zIIrUZ-V#WicsPa#Xf^2+)gHN%@}_6;wvKl&A`r9u<)LHW5urH^7s=>E(0yu1Vie;# z-o<OF0^@wGmvCO*e_F7*Apj*EM{g<3rqN%VEHcIaI&2q{)m7PX$4Z z3ZLFgu@*ko@d-W^xKNinDsNk5={_*r8b^*REtj^FQQJ^;m?Pia>p*0|V9x6-FIG*Y zqDuRYtLn^(-C}Nr115%@Sz`cQS}R%4CGiE8G~CpY$1MiN&u=@1sc3i>ru9EP$DB5j zSjHU36-iwv zm6qOqyQQa%mT|*scyZRtES{q6E>$Y3A|N&edP}Y>@2tv3Nc7CA*kB!(jH)HwR+9>s zBBuvWLoUMhSXUUS`3N|qx=2dNlHF>S)w1D*>|8VlvtFJl!`iiXR3#;M%XTg+pl1&?`{9_6&mp2T&ZO1zun@8%xKIFqVxU;{B(%?8CBM z>8=oX-5dGHt69xQrnMu?9wBpp)W`w)((&i`2*}1e7oNQO>kyx%<45@X$*ad6-ATQ1_eT)_7d=A5&`Vs_FsfmW;~W2=<8LGfmgxUs5Gp>) x9sB{^Ggn?Ap=aF*m~8zwBI{{z_5^(p`W delta 478 zcmZ`!yG{Z@6g@L5PIg%$0UC)2h$1ZDs;h`1Dn1*f@e8&f1fvv&Xi4Q4Y(-*Ey%ZQM z47HYif~{X*eBD7Rjm0Wt`tvO-k+Idpq!NA|O&WF-&Ax5PL9ASfI`%X2c%j4$P&3W1Ubw zOWYvTe*`FElR74I38ndl)MLa(7oraz!%4P}AVV8rDkd2Qh*Y|0MRPsO^^op-y~qe< z7!ep+RZKxc5?-V!NXEtJUCv6_qKcM}f@QUh9f~f~)C>L&RUq_+sJ~1%?T&7;=q64A b)yNEB_ORr_`u|tzXgS9oc{uiQFyzB;_oPT4 diff --git a/target/classes/be/pxl/ja/command/SuspectsCommand.class b/target/classes/be/pxl/ja/command/SuspectsCommand.class index a9ee71c8115454cf67bc91a4d14673451b9efba9..15a4b68bde568c330b434dc754c46e5f2ef499e1 100644 GIT binary patch literal 1949 zcmaJ?TUQ%Z7~KaFhNMHGDYQj_-e~30c2K+$Y^7;w(U77+s#L3oi8 z`RKDO7q0ff)n}JK##de5_FQNt1^Y1P@}2Ltzi*#2zy9;|7Xa_W$)XG022v){=n)v$ zl8>b2NVjI)+t^YSEzmP>ySBbA&^MHIF5b;113%&Cvd#;n6|c7O{u-6z^RGJg!NJ^r-wld z88~I)G|mX*+8z#61dL7Tm(&i^XV&Y1#VaOW#fU)44aI{8z7tsU2F3(Vv@w+<7y;;W zCeGu6K&GlRk=c(3bEw!>y>%eYXE2US1}>X;Ehy2+BXkJ6;yDiesA|D!Dc`^(Wo^wB z+0<0gm6JO}gv77W}pQNS(MFl=#WKo+GDgm>H*@Emwu z%VH6C4BR!b6gWBGE^o!F*QHyv;{N)DXit}FM^#!{8Td$G_^`oq#ZZ*~+;Aw#6}^gd)@0KT_OURfH*JEynBdF*q>v{;8*F}XaoXVnI`G7ZuN4cDIE+E? zJZ-y;ph3ArcjIaZ^p&-&Y%j}3oYRpUSR=v9cFmQ#)g+jOgrn#=$R`3HK!}SnpHPmY zUT0F-ve#->)S?|!XYhrJUke&btT#PR`?@I`%Svy0RlmOnUuE$%q=AiqQx$>nkOLt} zZ1<73t*j_WM6*R%;ghi|@LiH%v0~)(E<5fhf4t~<+pR|aaJC6ahvDjOLmi?1AfX=@ zC&}d4ML{}FnNM227sTH!&dmszORlS$1xNaRaP>C@E*%1QRL%yr1jb&j%3B@*pHfFIL@t3Ra(DjkxYpdIssgf?wO<-#BYvl#AIv(e($+fd!)fEJi;| x^j*}>Oie$-%sy_vtbCa`Pzs;ZqzmhK5YAsPVGxGELw;3!!(EoE8fg7u@W{NW=ys;if3dO~ea|hGy{uNVERy6MmRa#0 zRnB%P8k8K$RJ;eRp&P7v?4>m9 zz!);EI4cc_D{h$=kx-0Co)74!$^lCOh5Mh6FhU$ike!)3-`x9s_uiTO{?C)&0DK5LjUM!BNa#qS zk70O^?{mZEPR+Pi*%PK@=v%QIOI~N_&CZom=toLJTE`ja45JlcG!JZJj~jP*L)><1 zmLnLn9|Ui@j!*syfy0)xY@=ZLGIs`p7}7AT<18`^gPq$9{gxCSm#)WfE;|=Hy&l=g z!zjiyoYQe07Z@^a4<`^Ju*?0TI3V^!dPkjjMaQd{U`RNDdGy40OlnTU6ftf~+747G z$r@V0oxCQGK^n%pjP&r<8in2@^`X`hL;OLqo2>dq#WUfr5@bkz*B(-&ST6{Ecu zDxlq@%s_QgdMiVO?oU28GelSRs;;4-lbyO!k;a;ZoSpaohBQzbR66|Y>F=M`!Rf! zn|KpPF7n*AOZ1rK`a$x0+4LfVzV0}}%iG-d)ve!UxO7TfH_jUN7^Yqhr4|VV(o3~Q zk2=H0bSHahq=%ip1zH(2G8&Wfzk>ZjlOAl)S8an{xgve_5P*Bwq!m+_hra6Yb3*sg z=o~?Ni~)v?D~~b4@DLAZGS2W6lf@%ke1zA7?d8OHA_6R`S%AncC$Ao3emr@MYsWAi zB6Eayl;sI>z%g$8{O_~K5-fgFEPDf%GsF<|w=+Q;Z(xAf4&rMJQ?s1K9x`ZPBv3Gq z1np1ZQ+!6!C&*U97Wp9Nkt#L&9A(nAP1XxY{-yrYM*qe|4U;rk`V&2WKp$Qu^jNp;PkIBDhiaqmvp2DJGdW=UlC!IXod&$tKvIarD;}!g*wLn1JLL2 AKmY&$ delta 424 zcmZ{gy-or_6otQ;6*nwPBx<990D>rgu82SQFaB2A_ykl$Vi_&&6wmfVDK z<+hEtCP^u36pNB-2nQGxtjNg`R>FbY6RIUbvn=S9!DL0y{xh)3nw*q3U(jp57WaT~ zu8r9xtT-%m8ByFaE@Dj4BX-oL883F2?2x_tdG{g=KVsN#wTKcTBOzJBeq2K8Q7rkL z4N)?@AMB}3wj{bLw;}WwL6gx>;*qNCwB6sSEIVm21atWwPKQ#9^8c?2_J?bBq(`&M Hp3nQgmiac* From 91f98ca881acc1b27aab4b04bac6786ce1072191 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 18 Dec 2021 18:55:40 +0100 Subject: [PATCH 24/38] Clue, Rooms, Suspects and Weapons commands finished. --- .../java/be/pxl/ja/command/ClueCommand.java | 16 ++++++++++++++-- .../java/be/pxl/ja/command/GoToCommand.java | 1 + .../java/be/pxl/ja/command/HelpCommand.java | 3 +++ .../java/be/pxl/ja/command/RoomsCommand.java | 16 ++++++++++------ .../be/pxl/ja/command/SuspectsCommand.java | 13 +++++++++---- .../be/pxl/ja/command/WeaponsCommand.java | 8 ++++++-- .../be/pxl/ja/command/ClueCommand.class | Bin 1280 -> 1569 bytes .../be/pxl/ja/command/GoToCommand.class | Bin 1248 -> 1248 bytes .../be/pxl/ja/command/HelpCommand.class | Bin 1373 -> 1260 bytes .../be/pxl/ja/command/RoomsCommand.class | Bin 2003 -> 1988 bytes 10 files changed, 43 insertions(+), 14 deletions(-) diff --git a/src/main/java/be/pxl/ja/command/ClueCommand.java b/src/main/java/be/pxl/ja/command/ClueCommand.java index 07406e0..643d451 100644 --- a/src/main/java/be/pxl/ja/command/ClueCommand.java +++ b/src/main/java/be/pxl/ja/command/ClueCommand.java @@ -5,9 +5,21 @@ public class ClueCommand implements Command{ @Override public void execute(String input) { - for (Part part : GameEngine.parts){ + boolean containsClue = false; + + // controle op dubbele ingave + for (Part part : GameEngine.detective.collectedClues){ if (input.equalsIgnoreCase(part.getName())){ - GameEngine.detective.collectedClues.add(part); + System.out.println("Deze clue heb je al doorgegeven."); + containsClue = true; + } + } + + if (!containsClue){ + for (Part part : GameEngine.parts){ + if (input.equalsIgnoreCase(part.getName())){ + GameEngine.detective.collectedClues.add(part); + } } } } diff --git a/src/main/java/be/pxl/ja/command/GoToCommand.java b/src/main/java/be/pxl/ja/command/GoToCommand.java index 0436dfb..a52bac2 100644 --- a/src/main/java/be/pxl/ja/command/GoToCommand.java +++ b/src/main/java/be/pxl/ja/command/GoToCommand.java @@ -1,6 +1,7 @@ package be.pxl.ja.command; import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; import be.pxl.ja.Room; import java.util.Locale; diff --git a/src/main/java/be/pxl/ja/command/HelpCommand.java b/src/main/java/be/pxl/ja/command/HelpCommand.java index 8472c35..7ba0631 100644 --- a/src/main/java/be/pxl/ja/command/HelpCommand.java +++ b/src/main/java/be/pxl/ja/command/HelpCommand.java @@ -1,5 +1,8 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; + public class HelpCommand implements Command { @Override diff --git a/src/main/java/be/pxl/ja/command/RoomsCommand.java b/src/main/java/be/pxl/ja/command/RoomsCommand.java index 5a7c0d8..dbbb5cd 100644 --- a/src/main/java/be/pxl/ja/command/RoomsCommand.java +++ b/src/main/java/be/pxl/ja/command/RoomsCommand.java @@ -4,19 +4,23 @@ import be.pxl.ja.Part; import be.pxl.ja.Room; +import java.util.ArrayList; +import java.util.List; + public class RoomsCommand implements Command{ @Override public void execute(String input) { - boolean clueNotAdded = true; for (Room room : GameEngine.rooms){ - String roomName = room.getName(); + boolean isClue = false; for (Part part : GameEngine.detective.collectedClues){ - if (room.getName().equals(part.getName()) && clueNotAdded){ - roomName += " 0"; - clueNotAdded = false; + if (room.getName().equalsIgnoreCase(part.getName())){ + System.out.println(room.getName() + " 0"); + isClue = true; } } - System.out.println(roomName); + if (!isClue){ + System.out.println(room.getName()); + } } } } diff --git a/src/main/java/be/pxl/ja/command/SuspectsCommand.java b/src/main/java/be/pxl/ja/command/SuspectsCommand.java index b1844fb..8868159 100644 --- a/src/main/java/be/pxl/ja/command/SuspectsCommand.java +++ b/src/main/java/be/pxl/ja/command/SuspectsCommand.java @@ -2,18 +2,23 @@ import be.pxl.ja.GameEngine; import be.pxl.ja.Part; +import be.pxl.ja.Room; import be.pxl.ja.Suspect; public class SuspectsCommand implements Command{ @Override public void execute(String input) { - for (Suspect suspect : GameEngine.suspects){ - for (Part part : GameEngine.detective.collectedClues){ - if (suspect.getName().equals(part.getName())){ + for (Suspect suspect : GameEngine.suspects) { + boolean isClue = false; + for (Part part : GameEngine.detective.collectedClues) { + if (suspect.getName().equalsIgnoreCase(part.getName())) { System.out.println(suspect.getName() + " 0"); + isClue = true; } } - System.out.println(suspect.getName()); + if (!isClue) { + System.out.println(suspect.getName()); + } } } } diff --git a/src/main/java/be/pxl/ja/command/WeaponsCommand.java b/src/main/java/be/pxl/ja/command/WeaponsCommand.java index ddfae4d..a4c6e01 100644 --- a/src/main/java/be/pxl/ja/command/WeaponsCommand.java +++ b/src/main/java/be/pxl/ja/command/WeaponsCommand.java @@ -9,12 +9,16 @@ public class WeaponsCommand implements Command{ @Override public void execute(String input) { for (Weapon weapon : GameEngine.weapons){ + boolean isClue = false; for (Part part : GameEngine.detective.collectedClues){ - if (weapon.getName().equals(part.getName())){ + if (weapon.getName().equalsIgnoreCase(part.getName())){ System.out.println(weapon.getName() + " 0"); + isClue = true; } } - System.out.println(weapon.getName()); + if (!isClue){ + System.out.println(weapon.getName()); + } } } } diff --git a/target/classes/be/pxl/ja/command/ClueCommand.class b/target/classes/be/pxl/ja/command/ClueCommand.class index c771d1a31ae6cfc84a4de12b60613d2cf5543617..9bd78854dc51f025dd832c5ad0a3c0faf0de5df1 100644 GIT binary patch delta 848 zcmaJrS< z5)*Xgio~77)ZoIfGjU_$!o)w~!l-zs#i$!M_n!B0?>*GUInAU$qs3vSc^T7}kB>60Son z&I+7^pTV_6BJ#EeNrCeivfNztj^KiVivpMIj;+>5-s+erxmkFP^4lOpxZ9mTXQ5fp}a=@78)5wyS5NySVx4w0fud~4-}oTptFoaWpu8i zeiNGiWEuU=#Kz9&@H0?#;@{HPpVGf88>(Z1&MgdbOm6IavMD<%lzWIM$Vd(k+6Z@} z9)0lAYxoc^!cX=#Vw!xNM*z$8w^k9X=<6j7ZD_(6Zoo-5Lc54`p{m(NH!)7CIaY8B z6O?b$ux8Z!fR`xy&K4wZ1+ J#Z)EV`vtPTn4$mx delta 570 zcmaKoPft@(5XFD@KFe!gFIc5O(V|7LEw9w4A{MPEh~mGZZj6bEi-!rzbhBbS(CVmZL)On?AH*?O+otbmyelV{cXZO#y@4!4OP3J*2vgtps zZz&R$s{hjWUeq^gUS(seUXC-sL7Rl(5Qm$4rFfDdn_x?r|@h}8_r;w zZ*#Mu@{HjevkJ>!TT=|>_ubX}XHUI*tJU=<_43pshZ1u(7Yr9E2S2nMG<2%ZW?nHG z{M3WNxb-gBwOWl58pS0!+7gV=C-Jgmo}dzpxL;A9g=nrw44gY^>+^C9Vk*IrgoD>^jS0=7v-a)^B1qN%t2zu_!ig_H53e dm&7T=+`Em5gm+R@WLfk%%KvtSg~mnPKdF z@V~&&nq8uD1~N24*?OfQoY%Zyk|&n2i`>j}N4jU<8B+U_CL+-`T^G=&>4~b;cXxDJ z)b2~rO_#K)ZnI zsV&&=_zH=NK5t4GAz;W4bo1Zmev(I8MHInyQaT@eIg@( zr?k4)?)r>Yy%B&_Jf{YL0g)H5U1sP;%4d?(=v7A44b6S@>+3}uB9FAu0!}A z{UPN6W_VzD?vLtlwbm4eFvE+EwLbTrbFZ%S?|*OJ0{9sZt0-YAz;q2WIK?n`AV#7d z3q7cJdj~Sg7)~{mR@pkk)WYI!1!YtMRBQMGwPW<~D9z-MSSF{SbDbiQGW9L1bQWe- zis4!rXBZxZJKWsHDHYyre$1USoyQv z-0E(AHsVl<#Au4S#Bi_G*=h4e6z6iCN=-9ksaB=;j2((h8O=qHdd2sY?vphxxTBVF zg<QbLOsQ0+7~0qhq>)bEBpMhUEv$Ci2maIP-XiCd7Oo;7rQ98R_e^_a)!H)+hOb3 z(~b7A1D!0C4%GQQ9(jXdd1tfJZT;@LV`6gQNJ;+U1)Vt=%XMtXhx_Pi4Dj9Yfh$h5 ziktW$z(Ng+ZYHkwWIcHv*AGNJGQ*+J{rYb*PFmyNG#&D}jPgtdxW#bsB>8{hbj$Q5 z!)!-sxtR}p(rycyMTYr~iA20Bta5w*aXQ;qDZ{nS$&3^7YYa0=C+>dCpB&AP26lY? zXkZyCp&DqB<(A}|6M>%c2~l50V}k52z&e?zhBQ!-e4<=Ea}x$v+>OF@YH0~{N$7=` zBBY0b)@9n&2^rzc(rd7P=tl{+X?1@)>I$v3F@dP7v}5j6Xm!DV6T3v%e2HNG^efCd zJm>Lij~6{&_ITCfHILT`KM3DMg%SqzCY9-FsNe#s;Pf&rkd0NG#zUOJFPJTioga&P vV`KwA;wP}VCRx1WE#C1KD@(WD;oDdE{)5!X8Y@0k33tgv3HNZnzz6REDC=GO diff --git a/target/classes/be/pxl/ja/command/RoomsCommand.class b/target/classes/be/pxl/ja/command/RoomsCommand.class index 160740dbc209b1621bdff1475948a116327958e2..66c9138a9c6196fa3b4fa21c98fba3bf8869bd31 100644 GIT binary patch delta 644 zcmZXQ%}!HM6otRj-rh?urLBdEO{5j1*jk`5YSrRTpd%7N6o0EI7c8Y%s`6uC#0xkv z#|gXuLj#&7Ffa}npaUm9f={6laJT7vb{8M z#z!YzdP4PhyNO%$_&BHEtJF|Z;h!p`->j6=b5459Sy-~^AmyW%K7~~*ER8zz1w~sT zd3(-z=cLO{rI;RHS}0YD12zd#`lss31PgDMo$}&vvGRJMkaHGA5l$QzB=cS}T(P+7 z;~H6Aa$T@Pa_V)TTzgYTT)EF1uApi*ON+VkvY4p6-gkGmhK^h51NSGtV>89H#mkz$ zpm&WuRn%*qc4JNv*D+7KJ}~^IMOhJTl$QSO8C158o3XVpE-YEUx{b9%i(;gAhgQWp zB>@q|H#$b$8DpE+7tYohSx>~%;9RVsIw_Gg`>LFem{t0#q}K^=bGg>pWdN$&GBU>I z(f6>iK}%yI&CRu=k6W_c&4|Q)nkBYy8b2`t3=!lmCzvF}G;Pcf<`pMd<`gSL7!~#< zJi_Y~-aSlFJ!G8w7~=7S2U59(v&tRDB-hX*9;0N2FwB2My%ueUbXjyLL7Bg}{@|Aw r9Auchp0yJ4Q6H>u-&2vec*aCMKj($yCb627H^Zz{wxE(6I8Wq1$1{V^ delta 635 zcmXYs%TE(g6vltIo$1hFXpu+AB(w$8@}^*X7Qql!BvMfE0X_#hfTgrbdAQ?WFu5Dq zo8Zm>rU@*JCag4ZR7 zFW0<$NzvGGGv}>)sk~QMNKMS<{JGV^&Y3!iyzFp=tJ({U)`UqjXmQ<-lEspKZFU*Uin#u1#PttzL|Hl>N^Hgm$X{W@7}~|!r$&+K z-KSo$g)hccd?J=MT%$}PZSHdR1ML+o9dbjb;J}HikUeRuLb_I&zA~vT>YBHRxaI+u zAZ-SRwvWH=a?Lf%+}J*Tv$-SLLB^%_Q7zS$eX2>|kfeq&B0MI_Jhd!R#}f6FXkeX2 zGC~g%5+=bdZez)daqcjMDV-_qat}k84JMcrJ#qJ?uOwlO2TY63B&FSq`HyO4(Qrh& zMa-gK{KdZn{$SURNWeoqZFP)Vl}JYhK=^d1!6Uf^WXUHLeabV@Dq%c13p|&bEiOl% G0`7lR(sro; From a9bdb7aba6fb7a8e3205da3e1db59b9f3aa4fba0 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sat, 18 Dec 2021 19:46:14 +0100 Subject: [PATCH 25/38] Few changes. Accuse implemented. => suspects control doesnt work yet --- src/main/java/be/pxl/ja/Cluedo.java | 1 - src/main/java/be/pxl/ja/GameEngine.java | 14 ++++-- .../java/be/pxl/ja/command/AccuseCommand.java | 47 ++++++++++++++++++ target/classes/be/pxl/ja/GameEngine.class | Bin 7531 -> 7449 bytes .../be/pxl/ja/command/AccuseCommand.class | Bin 672 -> 2481 bytes .../be/pxl/ja/command/HelpCommand.class | Bin 1260 -> 1373 bytes .../be/pxl/ja/command/SuspectsCommand.class | Bin 1949 -> 2009 bytes .../be/pxl/ja/command/WeaponsCommand.class | Bin 1942 -> 2002 bytes 8 files changed, 57 insertions(+), 5 deletions(-) diff --git a/src/main/java/be/pxl/ja/Cluedo.java b/src/main/java/be/pxl/ja/Cluedo.java index aeafe5e..fc8e12d 100644 --- a/src/main/java/be/pxl/ja/Cluedo.java +++ b/src/main/java/be/pxl/ja/Cluedo.java @@ -23,5 +23,4 @@ public static void main(String[] args) { System.out.println("A problem occurred."); } } - } diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 2dadcfa..1078f89 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -12,6 +12,7 @@ public class GameEngine { public static Detective detective; private Scanner scanner; private boolean murderSolved; + public static Envelope envelope; private HelpCommand helpCommand = new HelpCommand(); private SuspectsCommand suspectsCommand = new SuspectsCommand(); @@ -102,16 +103,19 @@ public void initialize(String playerName) throws FileNotFoundException { .findFirst() .orElseThrow(() -> new CluedoException("No suspects found from game file")); - Envelope envelope = new Envelope<>(); + envelope = new Envelope<>(); envelope.addSecret(crimeScene); envelope.addSecret(murderWeapon); envelope.addSecret(murderer); + /* rooms.remove(crimeScene); weapons.remove(murderWeapon); suspects.remove(murderer); - /* + */ + +/* for (Room room : rooms) { Weapon weapon = weapons.get(RANDOM.nextInt(weapons.size())); weapons.remove(weapon); @@ -121,7 +125,9 @@ public void initialize(String playerName) throws FileNotFoundException { suspects.remove(suspect); room.setSuspect(suspect); } - */ + + */ + mansion = new Mansion(new ArrayList<>(rooms)); @@ -156,7 +162,7 @@ public void executeCommand(String command) { } else if ("help".equals(command)){ helpCommand.execute(command); } else if (command.contains("accuse")){ //voorlopig - accuseCommand.execute(command); + accuseCommand.execute(command.substring(7)); } else if (command.contains("goto")){ goToCommand.execute(command.substring(5)); } diff --git a/src/main/java/be/pxl/ja/command/AccuseCommand.java b/src/main/java/be/pxl/ja/command/AccuseCommand.java index 1f84645..94e289c 100644 --- a/src/main/java/be/pxl/ja/command/AccuseCommand.java +++ b/src/main/java/be/pxl/ja/command/AccuseCommand.java @@ -1,8 +1,55 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; +import be.pxl.ja.Room; +import be.pxl.ja.Suspect; +import be.pxl.ja.Weapon; + public class AccuseCommand implements Command{ @Override public void execute(String input) { + String[] inputParts = input.split(", "); + boolean corrrectRoom = false; + boolean correctWeapon = false; + boolean correctSuspect = false; + + if (!GameEngine.envelope.isSecret(GameEngine.detective.getCurrentRoom())){ + System.out.println("It was not in the " + GameEngine.detective.getCurrentRoom().getName() + "."); + } else { + corrrectRoom = true; + } + + for (Weapon weapon : GameEngine.weapons){ + if (inputParts[1].equalsIgnoreCase(weapon.getName())){ + if (GameEngine.envelope.isSecret(weapon)){ + System.out.println("It was not with a " + weapon.getName()); + } else { + System.out.println(weapon.getName() + " is inderdaad het moordwapen."); + correctWeapon = true; + } + } + } + + /* + System.out.println(inputParts[0]); + for (Suspect suspect : GameEngine.suspects){ + if (inputParts[0].equalsIgnoreCase(suspect.getName())){ + System.out.println(suspect.getName()); + if (!GameEngine.envelope.isSecret(suspect)){ + System.out.println(suspect.getName() + " is not the killer."); + } else { + System.out.println(suspect.getName() + " is inderdaad de moordenaar."); + correctSuspect = true; + } + } + } + + */ + + + if (correctWeapon && corrrectRoom){ + System.out.println("Correct you won!"); + } } } diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 6f33df98b8fb69fc80b44b80eb71aa4befa56325..d429c0217dbc48dddcc6a1e92176caddf0e050a5 100644 GIT binary patch delta 2160 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 delta 319 zcmdleynvPK)W2Q(7#J9A8DuAN>8r6ba4<3mWF?j*>gOcprRxWm6lLb6b1`r+aI-V; z@G$T)@G&yTPtIVG=VWAHPpwEzE-jfnk6D5xjGaMXvM@{eKPP)nwS_E z8Tf&wGXrT>1~wom2;}JlX+|K;stECvE!L$qj&L|&S diff --git a/target/classes/be/pxl/ja/command/HelpCommand.class b/target/classes/be/pxl/ja/command/HelpCommand.class index 0b8821aca055ddbff227529c4cfbbeba16dc6f41..5a404f4f03876c27a4f7c4cf12e03b7849651c5b 100644 GIT binary patch literal 1373 zcmah}U2_vR6g_eh{DC3Hl+P9rv`v!`Vp_f@ZU$rAmZ=+OvPt?ZuN6mOE$wJ`9m4`3VuJUJ*2w!r3sM7tMJjp`V^Ie!(D|PC1Im7+uouIw- z;#ud|fle1n2kQJDkG#dOva`|cwSRTpF%h|Nq&R#1n$DbzWjZqC!+mr$7V*vTfy+;{ zf(3k6#9|doZYHkvWg~tSH4a20G^3HwgT^m1irbUlG#&Dl46{@gahu`FN%DWh*|r%- zhWW12aw8k{rQH@ZiwyOy2}QIkta5w*aW>so3B!%<$&6F-YYcNr$L@aAPmbpQ26l4& zXkZ!2ff{O&W|rhzQ-PlH2~l50bBgRQz&e?z1T;{g{7JcbYEuSR-HpOcYH0y%vuixX_k5VUVEc;Xi+$R$SJix;oAN>nC^Em5gm+R@WLfk%%KvtSg~mnPKdF z@V~&&nq8uD1~N24*?OfQoY%Zyk|&n2i`>j}N4jU<8B+U_CL+-`T^G=&>4~b;cXxDJ z)b2~rO_#K)ZnI zsV&&=_zH=NK5t4GAz;W4bo1Zmev(I8MHInyQaT@eIg@( zr?k4)?)r>Yy%B&_Jf{8h*PtSt zE0x@xY%%Y7u4nVv-#7b=q9WxVm?{6#98&?m!%FR`BpSBd->qVw5m8J$KBG->L_vh3 z_(|uao-wMVPw8n8Bc@|EnW4IBK)oYYe~muJsxeUG$q~sa&+46Xo1CQfa*BLnD9WljMLfi}F@kmntZ#ARpeu`44JTU5Nky delta 455 zcmYk2%P#{_6vltIW(=dWUSX0VA(BQ=iP#VkVI!g5Z_1Q|DwG-Ql@?d}5 z-m^mqJGmMfjK*V2JLdtL8-!)Q7bU1O$dE)uAH9P8!r$?bD>0eExTH`q(0ECy;*f|COL0q8I7Q6`b?$Y$ zW@*`mmJD+{g6(=!ng&Zx)0`%BNJ)yeOyz2y4oK5=`umtIxykXFJek9QU@duqCIJfQ z5}{!Vna3v%{lqC|lM>fL1Df1dGt7t>2}o^}G1(!~v$is9oCz^DDb-5!FY+yevTte( zs)V$D;`zYq?-u`4PSObW{QsT&>>7<}8TT;5tQ+S<4kA(!k+aN-WTvoH*4e=N13Xw% Ap#T5? diff --git a/target/classes/be/pxl/ja/command/WeaponsCommand.class b/target/classes/be/pxl/ja/command/WeaponsCommand.class index 8b611cddc6463a2bc576f8753eac32902492bc0f..1728105130219d6329b1bd0a56491486707aa876 100644 GIT binary patch delta 473 zcmXYrOHWf_5Qd+xJr_C9OQfY~LT!X-2nt;&U0{SjS54$1S4Ghtv8}~YLQ9QZ@goi) zfh`LXR#He4SQr*;bgBP>zz={BVA^!?&Ac=7%=^uj@1M{5dwcR5cunEJI#*Bq>9w+* zFD0{u)nYnfm(q%0&zoiYhaJn?g=}nky_hRx5B;uPW#vkVd|3ds;QVr5cx{U>ESY?5 z6SuUpubru^v#N)*WyKT6r-z(N&1;zC6_1*w>HODI8!CtkQ;w)qF^};m#-1P3uGl6g zBCI$iGVYFRRia09H;6$!tT&k#b=81+293TNyL>KO{ za8nqvHODkFXyWmnS*hH@RG45=a$U{y4ka^$Fm9r>m;`R=GKnZr@oQXHcqRHrNV4EO hGl%*<2<+k`i;et=&ypXANlIRZZ&F#Ja&p=V;d{LiUd{jj delta 425 zcmXYsOD{uF6otRj-rGx+dM2(^D@>$8B_ffEh!{y|z2C2k>rvH&V%i^Z6Nw2C17jsk z7zl}x82J~BOo`WSV{o#+we~t^@AKk6@_V0tZts8|l9%2$74X=*2UaqzsA(QdScg_5 zX{9zI@s)(Vx_?#YI#ebmpB~x*r=wB2YRDTmPs2Aw?#Pxx% pypI8 Date: Sat, 18 Dec 2021 20:17:00 +0100 Subject: [PATCH 26/38] Accuse fully works. Game is now playable with random guesses. --- src/main/java/be/pxl/ja/GameEngine.java | 2 +- .../java/be/pxl/ja/command/AccuseCommand.java | 15 ++++++--------- .../be/pxl/ja/command/AccuseCommand.class | Bin 2481 -> 2822 bytes 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 1078f89..99b29ed 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -115,7 +115,7 @@ public void initialize(String playerName) throws FileNotFoundException { */ -/* + /* for (Room room : rooms) { Weapon weapon = weapons.get(RANDOM.nextInt(weapons.size())); weapons.remove(weapon); diff --git a/src/main/java/be/pxl/ja/command/AccuseCommand.java b/src/main/java/be/pxl/ja/command/AccuseCommand.java index 94e289c..84cf5e7 100644 --- a/src/main/java/be/pxl/ja/command/AccuseCommand.java +++ b/src/main/java/be/pxl/ja/command/AccuseCommand.java @@ -24,31 +24,28 @@ public void execute(String input) { if (GameEngine.envelope.isSecret(weapon)){ System.out.println("It was not with a " + weapon.getName()); } else { - System.out.println(weapon.getName() + " is inderdaad het moordwapen."); + System.out.println(weapon.getName() + " is the murder weapon yes."); correctWeapon = true; } } } - /* - System.out.println(inputParts[0]); for (Suspect suspect : GameEngine.suspects){ - if (inputParts[0].equalsIgnoreCase(suspect.getName())){ - System.out.println(suspect.getName()); + if (inputParts[0].equalsIgnoreCase(suspect.getName().strip())){ if (!GameEngine.envelope.isSecret(suspect)){ - System.out.println(suspect.getName() + " is not the killer."); + System.out.println(suspect.getName().strip() + " is not the killer."); } else { - System.out.println(suspect.getName() + " is inderdaad de moordenaar."); + System.out.println(suspect.getName().strip() + " is the killer indeed."); correctSuspect = true; } } } - */ - if (correctWeapon && corrrectRoom){ + + if (correctWeapon && corrrectRoom && correctSuspect){ System.out.println("Correct you won!"); } } diff --git a/target/classes/be/pxl/ja/command/AccuseCommand.class b/target/classes/be/pxl/ja/command/AccuseCommand.class index c04daeea2d8b414c4c9b25e7e1464d03cec88414..8cf56696cdc2df99913166d978bbc3671ba11477 100644 GIT binary patch delta 959 zcmaKq&2JND5XOIFd;QvrA+D2@2837&DJX47NtGUg_!6QJfm8_&K*E=kY>2_w#%nhT zw3zSj(!v6*;ewD5=j31%gb)W#+&S?l@E=47nB9aTai~^$X5QzWnfIBQoov4Nwf*Y- z)91iC?oZlJqO~Mx_NM4(y^!##UdbJ*c!qt#SA%X>X*}O`B-^!XmbV$8)5hjtibMP; zSYD-^D`kk%ogqedf?*-OxmYf16=$MYb;gQ?Wi}%mHjJjo(JL(dTz9DGS7Occ1>=sp zL)D6FIO;dY?kq8LN`&SepTp;5_>W?jWZdtx9xS+MbBW7_D=B{Bs{h7%DcAi6@wVCx z&Frf&SyQ(^^CUe@osuSUuVsH%!3W}-O0E(3KB*7pRH94|MqZ3Lk_Me%0 zZHhh9Y!G_mZSiTg2zB}cZ@ch(NO;&-}qi)ZEYFTe9J4A^O_aB z3uBCH_erfW z!3ljeB~6@EFGiE3_+34VKWbWdE%QFmL)Y0ZgnhO?nP$9c7ms=J_duZ8$$ Vh<}B6Gen;|8f9z5UH(NE^bvYU#C!k% delta 600 zcmaKp%}*0i6vcn9o$2e0m5&xAEF`mGAtpjZTxg7GObD!W=SQV7(vg;rY3&s27Zw#! zbot_77Z9S}4y?^2=bZcAyXU_1X6sld=l=Th?K^OR*By5^ znM`xt^jm{Yft#AS3`H|;O{jS@Z@qQwN?2QKD6%GR517;TqFOfVYRGi#?VblN4|$|{ zoMDo6Gn4wMTIQ%8zVcL&n{9YaKk~w=aHUc9d{3o$t{72XCGsj^DX5oxzvPvJhPPU+ z)=N#l7KEo1nb|N5>X%mhC<-FYmSWU=Ne!7dsh*VPl{m!ZZ=EX^NT9eSQIf(oDM4SV zabYEFkL{v5A`;vd>~2Gv1;Nb00ZIf?DTMExLy{Eviu z;EbL8fxE+v|Gk29ctwjyS`su^i}@Z+;Q_hceX)HK<3^0n*pwYtR$pMhWSilCC`)T6 From 589499bf741dbd058f596d90387568462591eb6b Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 14:37:46 +0100 Subject: [PATCH 27/38] Few changes to Accuse. --- .../java/be/pxl/ja/command/AccuseCommand.java | 6 ------ .../be/pxl/ja/command/AccuseCommand.class | Bin 2822 -> 2822 bytes 2 files changed, 6 deletions(-) diff --git a/src/main/java/be/pxl/ja/command/AccuseCommand.java b/src/main/java/be/pxl/ja/command/AccuseCommand.java index 84cf5e7..0fb5442 100644 --- a/src/main/java/be/pxl/ja/command/AccuseCommand.java +++ b/src/main/java/be/pxl/ja/command/AccuseCommand.java @@ -24,7 +24,6 @@ public void execute(String input) { if (GameEngine.envelope.isSecret(weapon)){ System.out.println("It was not with a " + weapon.getName()); } else { - System.out.println(weapon.getName() + " is the murder weapon yes."); correctWeapon = true; } } @@ -35,16 +34,11 @@ public void execute(String input) { if (!GameEngine.envelope.isSecret(suspect)){ System.out.println(suspect.getName().strip() + " is not the killer."); } else { - System.out.println(suspect.getName().strip() + " is the killer indeed."); correctSuspect = true; } } } - - - - if (correctWeapon && corrrectRoom && correctSuspect){ System.out.println("Correct you won!"); } diff --git a/target/classes/be/pxl/ja/command/AccuseCommand.class b/target/classes/be/pxl/ja/command/AccuseCommand.class index 8cf56696cdc2df99913166d978bbc3671ba11477..dd17adccc8a98eefb51e8380fcd2acea93376b51 100644 GIT binary patch delta 22 dcmZn@YZKdWo0C(AQHVj8QHnu-^Ak=bMgT+g1y29~ delta 22 dcmZn@YZKdWo0HRkQHa5iQHsHM^Ak=bMgT-@1zP|B From 8e95f4f72e7771fc14f04eefb4f32d3855678421 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 15:21:10 +0100 Subject: [PATCH 28/38] GameEngine now fully works. Remaining suspects and weapons get divided equally over the rooms. --- src/main/java/be/pxl/ja/GameEngine.java | 48 +++++++++--------- .../java/be/pxl/ja/command/UnlockCommand.java | 4 +- target/classes/be/pxl/ja/GameEngine.class | Bin 7449 -> 8317 bytes .../be/pxl/ja/command/AccuseCommand.class | Bin 2822 -> 2695 bytes .../be/pxl/ja/command/UnlockCommand.class | Bin 672 -> 869 bytes 5 files changed, 27 insertions(+), 25 deletions(-) diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 99b29ed..5b783d7 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -68,7 +68,7 @@ public void initialize(String playerName) throws FileNotFoundException { } else if ("#SUSPECTS".equals(objectType)) { String[] params = line.split(";"); - String name = params[0].substring(params[0].indexOf(" ")); + String name = params[0].substring(params[0].indexOf(" ")).strip(); String title = params[0].substring(0, params[0].indexOf(" ")); Suspect suspect = new Suspect(name); @@ -108,28 +108,35 @@ public void initialize(String playerName) throws FileNotFoundException { envelope.addSecret(murderWeapon); envelope.addSecret(murderer); - /* - rooms.remove(crimeScene); - weapons.remove(murderWeapon); - suspects.remove(murderer); + // overige wapens en suspects verdelen over de kamers + List roomWeapons = new ArrayList<>(); + for (Weapon weapon : weapons){ + if (!weapon.equals(murderWeapon)){ + roomWeapons.add(weapon); + } + } - */ + List roomSuspects = new ArrayList<>(); + for (Suspect suspect : suspects){ + if (!suspect.equals(murderer)){ + roomSuspects.add(suspect); + } + } - /* for (Room room : rooms) { - Weapon weapon = weapons.get(RANDOM.nextInt(weapons.size())); - weapons.remove(weapon); - room.setWeapon(weapon); + if (roomWeapons.size() != 0){ + Weapon weapon = roomWeapons.get(RANDOM.nextInt(roomWeapons.size())); + roomWeapons.remove(weapon); + room.setWeapon(weapon); + } - Suspect suspect = suspects.get(RANDOM.nextInt(suspects.size())); - suspects.remove(suspect); - room.setSuspect(suspect); + if (roomSuspects.size() != 0){ + Suspect suspect = roomSuspects.get(RANDOM.nextInt(roomSuspects.size())); + roomSuspects.remove(suspect); + room.setSuspect(suspect); + } } - */ - - - mansion = new Mansion(new ArrayList<>(rooms)); detective.moveTo(mansion.getHall()); } @@ -139,13 +146,6 @@ public void start() { System.out.println("Type 'help' for information..."); } - - /* - * Handle the command. - * - * @param command a command: goto, clue, describe,... - */ - public void executeCommand(String command) { if ("suspects".equals(command)){ suspectsCommand.execute(command); diff --git a/src/main/java/be/pxl/ja/command/UnlockCommand.java b/src/main/java/be/pxl/ja/command/UnlockCommand.java index d97d130..e434dac 100644 --- a/src/main/java/be/pxl/ja/command/UnlockCommand.java +++ b/src/main/java/be/pxl/ja/command/UnlockCommand.java @@ -1,8 +1,10 @@ package be.pxl.ja.command; +import be.pxl.ja.GameEngine; + public class UnlockCommand implements Command{ @Override public void execute(String input) { - + GameEngine.detective.getCurrentRoom().unlock(); } } diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index d429c0217dbc48dddcc6a1e92176caddf0e050a5..7527bb125227da4d0ea5aedf2a1d947efc736271 100644 GIT binary patch delta 3540 zcmZuz33yc175>kAnRzpB-h?ERg^>yp2+bnKuvrHX5n~ewK@AB;AUYWz$-pF&W+ow^ zFe##_p-O#jq11vz#s!rmFkun}+EPntscp5k)lzF)YZsSpc0mx&eKT43O1>|1&;8GG z&vwtd-JWyTswY1iJOW@oz1*wXl#<;D5iFr_tG`9XdOW3J7xoge^UKQ%D%N`2y~P1< zb3<_z3p6*(Rq(V?qGYG`pjyQr_vkt2b;YCe|Upn9n^40u$;_V=JU0+m~6or&~R9AY|L5i4+nGwgT`rP zyfcn!I~;gL!x0=cBwN1q+Zw)u?;2Oyimcz$@G8D{E*!U`8TpRa(+R% zic|Qpg4Z?w#d4uHpm8BACBv_&fe#6sc2fAK+gaKEc0@73$Q816%Q54gbR# zPJ}VvVk( z5<_!Lw#8|tMzd(PG21aow$W9_qmF7`uQo2x@^6`^(R|V5ir%67+QPaGUKKes&jwE1 zL|$nT7yb@Cngc=KIu#xPlyeDvfi~u^rzIM;QH8Nn%dKY4GUhbu z0lwRc5WJZ+y?o0;EV@tt)y!`QhJz|Dr+F&kbc;r{RKi!4Gqb;;n0)|t(I}>^bz|@*s5}xZ)XbVe%D!6Nk+FGt4DH?6W*p6Sm&Nd; z$LhAoGi33T@kk7h#jwYt456piZ5_ZqkIij!TT*5mMl^=~g0{?v;lMD_&x8^~%(yfs zFLGiC@!FyR4E5vXKHL_^G2)?q+$2vBV))TLar{h19KR$C;@4p4x5v=wNpYv7#PG*H z_(pY@yokxxGQQS_a;H9@wPw&A;A3~>3u|~3^L2{u{ znt-)Z9@a_I5s+r1Nt%zabOYL?HE5Swus$Mf#0F^-?v(DuUD7^mk`7?AG>A^=6>O1C z<8JAFY?Xm~WEJ9}8>fCuDR=#sC&cDWP}%4OIgSK(o~0frpHBP6ch8_2>AOrbVv z=U7iNwVpcos!IGR+dvzc%E21ClkP&q%F$QRCMFfmK^bkP2y7f{9(6L7!hU9&%64`x z)8wk`PP&OX*pYM-bFiz8=5eaH(ZlzisjspX!Z=x{Ep#_eg;KegwlXGDoQCM02z!`9 zAJR6uS9mB*;DNo3U9d_w&=qtaj~j(E^AX+8l#L$X*m$%gc(iVqM*-$_G4D3G&Y@Jn zjSAME#g+VPnIp}S&S1NA9QScH57euk!Mc0mk zlNnqXMVE`N8wKYuczqP@E-Foc5n*&bqhF4~TjZj$7%lEb27~!UwitHCXlWE>E~*^0 zp|bRiQOsoNn@njJOJ84<#>17xtD;E(qZK?!2Kn~0)iJeG%~HgX ziNQqO%(7*Tl+8de*$TzX5v^e1&@1*cktjZQ3e!i%C|gYB2+~yXbx&$fF?$4X3{hRJ zi*6sF`U9*-X4(=q8d-rK2NzfHT|~jh3jDmdxI#p~h{kHZPEU;FXo?xT@Cm1C2dJSR z$3-c}`sCokcAK&8q;K##jqmg>#`aPVMU&JsBh>Ruy~z3pDF!FRD}n~ZG=TeaaWXd8 delta 2728 zcmZuz3tUsz8UKGbAvd|X1WX7abj8ZU2Czo4(+bmSDXS>r13~fG5U&sj1W7>ZR^z(b zm$vIX&KBo7X|>F)bp`6Bi0j(5T^;SV?%B>g+}zsDu3PtTTi0o~?|55e#;=C)9@KSrsP@jg>WPLb0$W zV@SL&XQk?>wZV>4Dn@WxWLSNc=T&?YFNj;L#g=cWcnL3ys5SSxZ>x9}XE=>$XeVc5 z@)cGp7{zNcURUv5d{3OTPItV4AISKjiXY*}1dmu{_3XF#tZ(3_D&E9fVwSDYa#qF9 z@e8rVR%HJb&dK<-ir?V8IAGgQ{W}$JS^lKr&v;)fQ1Y!8@K+Uo!{0?n$v4UPhnT5)Wc*7-3O*23 z>a{hvh!2g`e+VvLvSyvJP}pA;ipI(c>x^)hReXg166DrETa<5`Evv?NU!DZZ6kH@y zNg|UttxmJ*l%kS_Wbw8-HPuEoQe?8LY>+C3?Xyi*N)vKwtzDrh-h^7VL~^Rs26Rl#n$Nu~LSa;~hZ4zy}cn5aypPtXG9Kx?2yE044V z1F^NCSQAUpm zK>M0NLzsD>RCEWmc7yOynOX*4nqncxPK7>2pO)!Pm3C2l@J*+g>OMor@J(#M6%EbY zXk}>@`m6#w-K|oLI?}0wfqM<$K9!=0)dR+AuS(k!s|OW&h(0IN!^UAgFS0XUCLzvc zo-2eua~G`?Co<>FUd5J~+!a78t)?2DS;A5*V{4){ zsN?-t0A>?&+{Vdl5SgB8nk_WX3?i}LGoM}+uY2Yz4?1_y z5})6X`RpxC8Njx2YZhOL|Nj<$7&GrJwT$3G{Sf{*i1!BYo|m`#i!rB+%@&?VaIt;_ z8|yjWA^dX){~pAp0plc>bdF5se!g!Lt>p1MZsKt|-?I;CD8w}=Mghd}?A7rMETQYM zluEFS7NUx7!*X`1rnOi}Td|5FSWP>*-S5OYx)1B=AU4oZY@`#|L^?LpY1~eu2+&(- zpz{dQyU^$ZY?CZ#l+w{8WuaNhMT=B~uvCIpsT6ypYTP5O=ay%J#PJXuco=z9OLd&z zC`)T;9kWS7H`UX6mNKx7Hqb^`IMEu~#FEVEE}_k|1y)Wgmu_dwY%u5w&sYjDMo5#Y zsDXma!U`#qwlZeow2zU-yO}xJ_;%W6Y{z+)QzHkoP!nHOHf)zsA!DVC9hWeR$CSC! zTp_WCe^aJ(LQHfcdGFT{8}5Gx)JS9C6XL&v5N|Hy1oZa27Sd=9fx!(>cbKj6_3YI z*!qS(%wg-932PTy-&&l`oyF#}`ru{F?1UzbHU6t-l2RygjC^0CUfxnSHrI^C$#yi-)ltvIoEN}?1`Ap=h* zHcOVxeYI@uh!|xPi>7AAjhV8Fu6ndBo4tid+=9ea*v8hJT}2fomZ)xmpG}B6GrQY=(a(;XcTT@PIhji wF2*F3){>ae)1FfQ|WUL0_Ops0ZHv0hI$;2mk;8 diff --git a/target/classes/be/pxl/ja/command/AccuseCommand.class b/target/classes/be/pxl/ja/command/AccuseCommand.class index dd17adccc8a98eefb51e8380fcd2acea93376b51..3aa27da8529d865219c28c7bc2dae444c0555368 100644 GIT binary patch delta 842 zcmaKqNl#Nz7>1wI-uAYa%3MfI#5xcSNQxLtgeW0K5m^v15k)}?R0gqBS_TKK1A>V2 z)kXaS#DxoLtf3}`g>L){CMGUTNQ^6uLGkNFbZ73(`;F&4-*BdiroG1dU+Fi%UY^Vw zNqdu_rih{NK}U}ir0A0_?IImG1qZ|mh*TmSWv@{4qS!bqmw)2THzEI9L zDy*5bNZ+k8ydfg!a-y2^42veS_%o-B79}Q=()r2=qcSVEaEvi7_j*|3f@m5!eCDEP zjyRX(cr95g!Y1qM(J^!`Do}5`~#c(Yn}$3wpEWew_bKLvAP?1N;dhx zT~@w`k)r#5%XLf9b(!sIToJSp=c*;Iab0AgRD45tXDpnx@GkcyVu<$vk9dslH+dAM As{jB1 delta 956 zcmZ{i%Wo4`6vltY9((LzM1mDVOo%eHKv7Bvgoi{>K?oHZx~KpNC@BwzOo+kQ#^aEL zM-8+jX$>31CJR;=$tYP=ELgGUui!t35b2qTVS$83`p&uEJ?FdkerIl^uP?S< zzn}RJ_=ZQ%ta`MXB0^u1R(`ZO%r+t6jd>;aM8z}tNmw-G_Le5{y{EFh`{#L!L3%7K zj@cY%oe=XXp6vD#mN<%%Bbte+62G* zoo4&!J)uLKoEOq(#>&HP*%^1UrDDOEbUiJ*uL5B~&>r-j&gJuNS$F;tmV9iTXH|dL zb%)mq_CTTFmUrf}p69A1|M>+a(&fj84u{vt1M@l zFL=$DykP}zS;c$45}{iR)<}vTS*m^omh97KA7ndcDPwBacX(7ZQ!AP_1=$$q)F@Nh z7-vGQN~*>r=kilT*SB&Tf$?mUTVl{9-H{1Qepp(s88(h{^gezPP<1hTG f(b3CYQ{CGk-VO1O5dRF(=WngDwBiB(qNDmB%|pI; diff --git a/target/classes/be/pxl/ja/command/UnlockCommand.class b/target/classes/be/pxl/ja/command/UnlockCommand.class index 3b31e42db2d67e28645c5de15080202a98ddad27..8eae4f03fdbe7df2152a1e173c6872eae3f67fd6 100644 GIT binary patch literal 869 zcmZuvOK;Oa5dPMA7#ov@^a15n!ZS&sK5$H_RKnvDfz&|m8)s!U*z3xytNtxG1c?LU z%#T9M#s;S(iZrt`neX#Ak6*vP{{ZkD2QDmBY*aneP-ke)_!;*ju0sFaWF`X5P(PGP z>LZ3qr#p6V362fd!)163TNB}*o=5(S`)_zGUa3$j!Qf1VCagT8_x7-?dHFZpchSIx zji!gIXfbTAsbOe@LJzVu6-u8ZNzBmdbeGsnj)=CfZDYs7HKV^#66KJ3rlKVHWMlV2 zb0eKf6}q^ITQ+WcxPv{0y%HQGam>}!|FA$0@`%9}=OW0oX{$3VN0qbnyJH(|hTT<~ ze+1P*G9~oJkmmF@izgy|&nFROTEisZ(U_;w#6_~IKg!Px?WLyI3hOh}q&m%LTdh@D z|B21_N@8hGBN-~Lvy=oJF9C~^HJ>dSIb13(nm-~D?kLI9K)jZVjxNmZz)TBm8n^|9 zyL5aN@^o`#?@{EFXXI3%8r6ba4<3mWF?j*>gOcprRxWm6lLb6b1`r+aI-V; z@G$T)@G&yTPu{>NKiP~?g;8L0G^0GDC>H}010w@J&=_VQ&C0+ABn2n;Gl|s;0mVQ( zkc=>po;8AKRFfjmZ#c_6hwwkZ%Zfy6d~83>K+V2xrBNvKAURxt)~21Wr#pb-*K oBaDG+Kt^zCX&+!<-^ReX(FDybWJhp9&0=DZ1gnx_kOtE-0C;~H0ssI2 From 49d327c629557833053bd10babcd6af26429fa71 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 16:41:55 +0100 Subject: [PATCH 29/38] GoToCommandTests implemented. Few other changes. --- pom.xml | 14 ++- src/main/java/be/pxl/ja/Anagram.java | 5 ++ src/main/java/be/pxl/ja/GameEngine.java | 3 +- .../java/be/pxl/ja/command/AccuseCommand.java | 1 + .../java/CluedoTests/GoToCommandTests.java | 81 ++++++++++++++++++ target/classes/be/pxl/ja/Anagram.class | Bin 0 -> 266 bytes target/classes/be/pxl/ja/GameEngine.class | Bin 8317 -> 8300 bytes .../be/pxl/ja/command/AccuseCommand.class | Bin 2695 -> 2728 bytes .../CluedoTests/GoToCommandTests.class | Bin 0 -> 3701 bytes 9 files changed, 101 insertions(+), 3 deletions(-) create mode 100644 src/main/java/be/pxl/ja/Anagram.java create mode 100644 src/test/java/CluedoTests/GoToCommandTests.java create mode 100644 target/classes/be/pxl/ja/Anagram.class create mode 100644 target/test-classes/CluedoTests/GoToCommandTests.class diff --git a/pom.xml b/pom.xml index c4ba19b..29d9b63 100644 --- a/pom.xml +++ b/pom.xml @@ -34,6 +34,18 @@ 5.8.1 test - + + junit + junit + 4.13 + test + + + junit + junit + 4.13 + test + + diff --git a/src/main/java/be/pxl/ja/Anagram.java b/src/main/java/be/pxl/ja/Anagram.java new file mode 100644 index 0000000..bdc7274 --- /dev/null +++ b/src/main/java/be/pxl/ja/Anagram.java @@ -0,0 +1,5 @@ +package be.pxl.ja; + +public class Anagram { + +} diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 5b783d7..8836323 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -11,7 +11,7 @@ public class GameEngine { private static final Random RANDOM = new Random(); public static Detective detective; private Scanner scanner; - private boolean murderSolved; + public static boolean murderSolved; public static Envelope envelope; private HelpCommand helpCommand = new HelpCommand(); @@ -172,7 +172,6 @@ public void printLocation() { System.out.println("You are in the " + detective.getCurrentRoom().getName()); } - public boolean isMurderSolved() { return murderSolved; } diff --git a/src/main/java/be/pxl/ja/command/AccuseCommand.java b/src/main/java/be/pxl/ja/command/AccuseCommand.java index 0fb5442..8d492bd 100644 --- a/src/main/java/be/pxl/ja/command/AccuseCommand.java +++ b/src/main/java/be/pxl/ja/command/AccuseCommand.java @@ -41,6 +41,7 @@ public void execute(String input) { if (correctWeapon && corrrectRoom && correctSuspect){ System.out.println("Correct you won!"); + GameEngine.murderSolved = true; } } } diff --git a/src/test/java/CluedoTests/GoToCommandTests.java b/src/test/java/CluedoTests/GoToCommandTests.java new file mode 100644 index 0000000..9dc7abc --- /dev/null +++ b/src/test/java/CluedoTests/GoToCommandTests.java @@ -0,0 +1,81 @@ +package CluedoTests; + +import be.pxl.ja.CluedoException; +import be.pxl.ja.GameEngine; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.FileNotFoundException; +import java.util.Scanner; + +import static org.junit.Assert.assertThrows; + +public class GoToCommandTests { + Scanner keyboard = new Scanner(System.in); + GameEngine gameEngine = new GameEngine(keyboard); + + @BeforeEach + public void setUp() throws FileNotFoundException { + gameEngine.initialize("Stef"); + } + + @Test + public void shouldStartInHall() { + Assertions.assertEquals("Hall", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToDining(){ + gameEngine.executeCommand("goto dining"); + Assertions.assertEquals("Dining", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToBall(){ + gameEngine.executeCommand("goto ball"); + Assertions.assertEquals("Ball", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToConservatory(){ + gameEngine.executeCommand("goto conservatory"); + Assertions.assertEquals("Conservatory", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToKitchen(){ + gameEngine.executeCommand("goto kitchen"); + Assertions.assertEquals("Kitchen", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToLibrary(){ + gameEngine.executeCommand("goto library"); + Assertions.assertEquals("Library", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToLounge(){ + gameEngine.executeCommand("goto lounge"); + Assertions.assertEquals("Lounge", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToStudy(){ + gameEngine.executeCommand("goto study"); + Assertions.assertEquals("Study", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void shouldGoToBilliard(){ + gameEngine.executeCommand("goto billiard"); + Assertions.assertEquals("Billiard", GameEngine.detective.getCurrentRoom().getName()); + } + + @Test + public void goToHallShouldThrowCluedoExceptionWithCorrectMessage(){ + CluedoException cluedoException = assertThrows(CluedoException.class, () -> gameEngine.executeCommand("goto hall")); + Assertions.assertEquals("This move is not allowed", cluedoException.getMessage()); + } +} diff --git a/target/classes/be/pxl/ja/Anagram.class b/target/classes/be/pxl/ja/Anagram.class new file mode 100644 index 0000000000000000000000000000000000000000..7cf4f831ce8ffb1faa32c2a64223f74d7fb5540e GIT binary patch literal 266 zcmZWjOK!qY3>@b}N}BTP3AzIoyaUiyLX}uWumG`l(kFOPNU9L3UaPB0EI0s%LiLN- zVM}ArShnYKJ)Hr(p%=n|8^DX;qebXt{LL!oVyl)(rqi0xdNqZq-wEz;v_2~9tVvXSif%vsSlHypfElf2W@W+3kUlAOHf_4nJcodA9-k16$jL;Eu(ESH( Cwlwho literal 0 HcmV?d00001 diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 7527bb125227da4d0ea5aedf2a1d947efc736271..89941193cac6c906d27c2bda5bfdc977f0e1a87c 100644 GIT binary patch delta 1456 zcmY*Y?Nd~B6n>uHUD@5c7gBdYB?JYug+)+667U6eNz|1T-(QlJZ3PrvWOo4-T{PcP ztI^wwnw4d`(~M2H)T-(DwQ=fW(}$*+rs?Gqe?ZgZ)VYfd_2u4kpXZ$4ea<=0?@7~G z)5vX?W@oNhX-vtVk2@hsu?2KEN~gH`cZcTZKII~r>&+v0?aGYuB9 z$h>3}J3O3iu$U$0L!%^Xj={Nn&iu_N%677h<#zfER&btq-?cz+TS!#)4K7 zS@8osk!a z@STxZL`Mbdb=>D>gIica)3`?X>L9DU;_`LjYG1O z1h(-UcJMNG@)mY+1TXO(cJmQl=C=s)2XydPggAyU|HK~UK&P6DE|rhHsucTF1$tDX z7W>s=^r~hYRAKa~2%_o`;%W#3>J$dmO&n66T{Yn^yQ!~)+TS0+%xIQwP%k0l!5pqQCBlHeg8mM{-{ zctpC&lFm2ss6=+@zlF!7O9!@c4u=J^i9}DP*eSw18CDl5Q!KWnnVs6K9C1B&T-$r9D9U2FI+p^PvAGdDHtmAx>=d#{1hcvD1l`wW!Xxsq{;Il zoVbLkFwNeX<%#EgY4l$~PWcyb`_f#L#FuV1PJsCWE>7aQn@c9Z*#a(2;=G&7CcruY zmnYHh=86eWis(-w=yS6<%~e-0Ret34InubA=9(lDEpD!zNY^EOT@p2t-kM2wOS<1T z*`CQ?pTrDdHe{G*gsFOZ&_=6AEz@Hw+!DV79q)=2E~5xnP>!pp#d~rQu30fq3W_) z;5Iz?EaN~!mJZ}TH3DfO0x}|4r7#v}OCfMu-s4Nj%3ve^skM#QPS*Jr-?nOR94+EM D`5!1P delta 1487 zcmY*YT~JhI7=E7b0J|IxARZ7D1%)u!RTkwZe?UN4MM3;Q4b9YbTYdyxV|T$nT*AK; zr!kLB(M&Tnm1||Gpz9!&cQw^`*Gv~pH_bHNWcN)v(|Z;h>gIg!d7k(EzUO_v=li4K zX~XTCY3ZrV;T#8Z4d!vKb=6o_sAHJ<2InJ0IJyGiHs9fZ&H@%XxX|DtYjJv!=3udP zD=jaj#6U6^TaVHTN{d)(|CAACY3m{1fX@>N_w;#MdqUyWWxG<5Mz_HwTxyv{k+X;% zgB4t6)fvSpl?JO=ZFL%jnv*YB-xxb(U1_zXmv+<|tivwR5jYm`N5TOod^&Pj>qJ0D zfvj9dI9~~b{QW%#1*){6^+ZbKNMF$3t7DZ7Y$THWeG%aY*<#=VTdg0`i&}))B20In z@2C!kow!{peSUu=B&m%yuv7T1U^u8_32SvsvcuqRE+aBzFzX`y{edIl?ZM#TiPnq? z2bDFH^QLC^m^J5#k&9#)fEIRX_a^dky;^jf*>jWPoEPVUDHiRX!rtBE*ngkT-RJWY zbdBT7ak}Cxk8}AQ07*Owum+nYUM!oHA`@lEhZ`kW0uPpACCaf574Tv?wxALnsKx+l za0)AMPS`70h4-);H&BZSMAzUU>hV1q@Dm#GE7syMn(!CARM@~=G}DDmtVRnP(aKHO z%yzVK54N%k+t`oo9FofzMh8c+hhun&G3@0Xyv#}L<3k+aBl!3;4)Qnn`4|EIjZT${ zE@h%yMM+> zUvNhKjmz|urWRsu^Csoja=bo=hv&ydKlqt~Lc4Uwq@IKnef@M<2O6-?tKr+7{jCh;*Z z@VqTh<%`iSh=dfip5=TU2jP&({K<9 z$Tzvh`fmP_vTTzz;yKN{sTr&gC6RDv+1W=Dd_6vp#xqg{57TB64` zm=b>o9UqA?K1Ly~!-W{C!?+&le(uFED~zxQyE}nmhOa+fShNxAT0zz1_kp7V{^%( fy!EC8)3=h60KfiEaq@KWES=Z*mK0C)7Lxw}roJx( diff --git a/target/classes/be/pxl/ja/command/AccuseCommand.class b/target/classes/be/pxl/ja/command/AccuseCommand.class index 3aa27da8529d865219c28c7bc2dae444c0555368..f8921fe060b2946909ab28c8e74c3188c52957d2 100644 GIT binary patch delta 557 zcmaKo%}Z2a6vlt&dhfh*ZY zPl`fFkv<_D9<3IN)hm^uv0_1xo`4elhJlbl&Iv8{quXLT-B5JrD6zkWJjeypi^m2}2irSTKT5A|-);jVMN?%5D~<~eM$e)sGtc4&*8yR^DnBaBeP@PQ6S z8B?W>``zkloC)n`_|0u5wWH53rsz}Gke^Jea%p6nJE}ZpwE8>;{;FBRP%;FDSrHva zcJU3D?GOLxOg42%=eWB!hkmQ03;f*4O@a+>{O=?D{b(-tw8Y^)4`P1EBjvQldaSk! TF)qcp%uBrq^whG#8?yfZ-RWS2 delta 553 zcmaKoOKVe66otQ?-kXzq8}*`%(xOcq2og~Tr4AGaod|*;I09IzQbZ+rZDxV-&N%w6s|mhud6 z-&eAq?1A6wdix$3yG}Ptv(-jvsxBUHj+Lq<%kjjYbqDRaZ@Y5fjebAp`X`L+nR<@eaCM21OWCk#0*3iF!@Tw+Q$>ntNwvHezdPH(^b zk=)l}&%PCsLbyWrTMq23t})p0>q`BG+3k--mBquU<2hAT)Vj_zjyDW)nJZFq+Un9# z4VvoX_(_Wyb&B}GENwaF`Oa0TfE|3}npDV~s!!1US7uqqs3Ue30)V7{;F|&`IM!OB5`t1wq=PMgav4h%^)^1W;0{xKEPXWZKExI7^|p@B6;* z>p!4Ji$~A#_}Sy%hVJ-bMM^u{oVV#%S`|L``6zA9KiQ!bYYo}J(q@#KE+?Hp?`3}B|{TExDr?CSYu!< zuGX+IZwI0x$A#y6*`sn?=4HKZI+bujLuy*gmZa%cG+Y@uOzt+PW1WVpN+R31U}vYy z>`}8WMxCnVh&1}KLG5LuhPClt=9xx2*=*n%3}{GKTb5j3Sjb~8g{>Nv7kx3QoNqI* z9oNxPiE5d)bx}~4m=x+xRV=5P8=6RAkcP)h+wP&^uz{VpUPDhs_>7A+qwEsI!_8^x zc_XqqZZdE)c2R)#u3Bp}tf~q>AGoe?{4-KAK$*dzgf}%uM|*IKj#~}v#Xg#}9YrQO zeVn2I)RM;S%!yBs#_gcg`wiw9(`P`s)$CNjWAoaueBoxzhLt_!dBXKA>3A9pGaQUQ z8kjbRJCd?Q>6lAk;u$5>of@vFN?#6CD63OdLXQ~8E1_433!)tOB2JJLMw!xw!(}NP zrJkW(i7KZsM!iSEyA#av@Ijdy6Yh-ZOLsPfliXu|-ppyvgbSxFzg!be3U_PJPc#R` z=40C`xu$Y)mX8a~!9C4=+cI#fB879@Tp_-{U*(rNl;;N(T0W>@MKQX4Si{O_-lzA8a8*9kAd@qf3`t#D+r#BCp2toHpC;AElx@Q z2xDJqtzi%;u5Z=FgymVJ9&&ghGp?4c39XV9H6kXZD@M(7EypbOYBI1ZMc;J&F-J8M zHqS*2Rr91tUu2@XYE&mIqV|-k5B9qDM6w=QJY^gg!MwRR^XEaLe5d4XpJAF)^7c$K zwKeRi(ziNDF+5oq|H~5m9?P%gC7WBh8D@Gfhi{C8wi^=t?lK2d;ec({OBHk5|DkQW zNyl64yzQ3Q%2K94Q3h^VsDQJBE1{C_t{asNT4wIB!UI@ zwTA8g5^16H>iCvL+<9r(nUy%$LSh$tsQTmA2(M6|1H7&TOC8<31{{rJIq!h2!2N-^&0 z#JHJ^U1aQDlJVjqj5CTc-ifi7jD2L>wj|@FMHmx`ac?Ka0W$6&0z Date: Sun, 19 Dec 2021 18:56:25 +0100 Subject: [PATCH 30/38] Made classes for Anagrams & CrackTheCode. Code is implemented in the GameEngine Class to initialize the txt files. --- src/main/java/be/pxl/ja/Anagram.java | 30 ++++++++++ src/main/java/be/pxl/ja/CrackTheCode.java | 50 ++++++++++++++++ src/main/java/be/pxl/ja/GameEngine.java | 71 ++++++++++++++++++++++- src/main/java/be/pxl/ja/Predicate.java | 5 ++ src/main/java/be/pxl/ja/Riddle.java | 5 ++ 5 files changed, 160 insertions(+), 1 deletion(-) create mode 100644 src/main/java/be/pxl/ja/Anagram.java create mode 100644 src/main/java/be/pxl/ja/CrackTheCode.java create mode 100644 src/main/java/be/pxl/ja/Predicate.java create mode 100644 src/main/java/be/pxl/ja/Riddle.java diff --git a/src/main/java/be/pxl/ja/Anagram.java b/src/main/java/be/pxl/ja/Anagram.java new file mode 100644 index 0000000..faa4208 --- /dev/null +++ b/src/main/java/be/pxl/ja/Anagram.java @@ -0,0 +1,30 @@ +package be.pxl.ja; + + +public class Anagram extends Riddle{ + public String word; + public String description; + public String answer; + + public Anagram(String word, String description, String answer) { + this.word = word; + this.description = description; + this.answer = answer; + } + + public String getWord() { + return word; + } + + + public String getDescription() { + return description; + } + + + public String getAnswer() { + return answer; + } + + +} diff --git a/src/main/java/be/pxl/ja/CrackTheCode.java b/src/main/java/be/pxl/ja/CrackTheCode.java new file mode 100644 index 0000000..37b88b0 --- /dev/null +++ b/src/main/java/be/pxl/ja/CrackTheCode.java @@ -0,0 +1,50 @@ +package be.pxl.ja; + +public class CrackTheCode extends Riddle{ + public String index; + public String questionOne; + public String questionTwo; + public String questionThree; + public String questionFour; + public String questionFive; + public String answer; + + public CrackTheCode(String index, String questionOne, String questionTwo, + String questionThree, String questionFour, String questionFive, String answer) { + this.index = index; + this.questionOne = questionOne; + this.questionTwo = questionTwo; + this.questionThree = questionThree; + this.questionFour = questionFour; + this.questionFive = questionFive; + this.answer = answer; + } + + public String getIndex() { + return index; + } + + public String getQuestionOne() { + return questionOne; + } + + public String getQuestionTwo() { + return questionTwo; + } + + public String getQuestionThree() { + return questionThree; + } + + public String getQuestionFour() { + return questionFour; + } + + public String getQuestionFive() { + return questionFive; + } + + public String getAnswer() { + return answer; + } +} diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 5b783d7..f440c68 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -29,6 +29,8 @@ public class GameEngine { public static List suspects; public static Mansion mansion; public static List parts; + public static List anagrams; + public static List crackTheCodes; public GameEngine(Scanner scanner) { this.scanner = scanner; @@ -38,7 +40,10 @@ public void initialize(String playerName) throws FileNotFoundException { murderSolved = false; File file = new File("src/main/resources/cluedo.txt"); - scanner = new Scanner(file); // todo: handle exception + File anagram = new File("src/main/resources/anagrams.txt"); + File crackTheCode = new File("src/main/resources/crackthecode.txt"); + scanner = new Scanner(file); + rooms = new ArrayList<>(); weapons = new ArrayList<>(); @@ -139,6 +144,70 @@ public void initialize(String playerName) throws FileNotFoundException { mansion = new Mansion(new ArrayList<>(rooms)); detective.moveTo(mansion.getHall()); + + anagrams = new ArrayList<>(); + scanner = new Scanner(anagram); + + while(scanner.hasNextLine()){ + String line = scanner.nextLine(); + String[] anagramPieces = line.split(";"); + Anagram anagramConstruct = new Anagram(anagramPieces[0], anagramPieces[1], anagramPieces[2]); + anagrams.add(anagramConstruct); + } + + crackTheCodes = new ArrayList<>(); + + scanner = new Scanner(crackTheCode); + while(scanner.hasNextLine()){ + String line = scanner.nextLine(); + int counter = 1; + + String indexCode = ""; + String questionOne = ""; + String questionTwo = ""; + String questionThree = ""; + String questionFour = ""; + String questionFive = ""; + String answer = ""; + + if ("#".equals(line.substring(0))){ + indexCode = line; + } + /* + else if("ANSWER".equals(line.substring(0,5))){ + String[] crackTheCodePieces = line.split(":"); + answer = crackTheCodePieces[1].strip(); + } + + else{ + switch(counter){ + case 1: + questionOne = line; + break; + case 2: + questionTwo = line; + break; + case 3: + questionThree = line; + break; + case 4: + questionFour = line; + case 5: + questionFive = line; + counter = 0; + break; + } + counter++; + + } + + */ + CrackTheCode crackTheCodeConstruct = new CrackTheCode(indexCode, questionOne, questionTwo, questionThree, + questionFour, questionFive, answer); + } + + //--------------------------------------------------- + scanner.close(); // einde van init, alle code voor deze lijn } public void start() { diff --git a/src/main/java/be/pxl/ja/Predicate.java b/src/main/java/be/pxl/ja/Predicate.java new file mode 100644 index 0000000..8edb9bc --- /dev/null +++ b/src/main/java/be/pxl/ja/Predicate.java @@ -0,0 +1,5 @@ +package be.pxl.ja; + +public interface Predicate { + //to be made +} diff --git a/src/main/java/be/pxl/ja/Riddle.java b/src/main/java/be/pxl/ja/Riddle.java new file mode 100644 index 0000000..720c6ce --- /dev/null +++ b/src/main/java/be/pxl/ja/Riddle.java @@ -0,0 +1,5 @@ +package be.pxl.ja; + +public class Riddle { + +} From 56a2db99ef830e0ca3b590832b8863790af326c3 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 19:00:51 +0100 Subject: [PATCH 31/38] DescribeCommandTests implemented. --- .../CluedoTests/DescribeCommandTests.java | 45 ++++++++++++++++++ .../CluedoTests/DescribeCommandTests.class | Bin 0 -> 1983 bytes .../CluedoTests/GoToCommandTests.class | Bin 3701 -> 3701 bytes 3 files changed, 45 insertions(+) create mode 100644 src/test/java/CluedoTests/DescribeCommandTests.java create mode 100644 target/test-classes/CluedoTests/DescribeCommandTests.class diff --git a/src/test/java/CluedoTests/DescribeCommandTests.java b/src/test/java/CluedoTests/DescribeCommandTests.java new file mode 100644 index 0000000..ba5e393 --- /dev/null +++ b/src/test/java/CluedoTests/DescribeCommandTests.java @@ -0,0 +1,45 @@ +package CluedoTests; + +import be.pxl.ja.GameEngine; +import be.pxl.ja.Part; +import be.pxl.ja.Weapon; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.io.ByteArrayOutputStream; +import java.io.FileNotFoundException; +import java.io.PrintStream; +import java.util.Scanner; + +public class DescribeCommandTests { + Scanner keyboard = new Scanner(System.in); + GameEngine gameEngine = new GameEngine(keyboard); + ByteArrayOutputStream outContent = new ByteArrayOutputStream(); + + @BeforeEach + public void setUp() throws FileNotFoundException { + gameEngine.initialize("Stef"); + } + + @Test + public void shouldShowLockedWhenRoomIsLocked() { + gameEngine.executeCommand("goto ball"); + + System.setOut(new PrintStream(outContent)); + gameEngine.executeCommand("describe"); + + Assertions.assertEquals("Ball is locked.", outContent.toString().strip()); + } + + @Test + public void shouldGiveRightDescription(){ + gameEngine.executeCommand("goto kitchen"); + GameEngine.detective.getCurrentRoom().unlock(); + + System.setOut(new PrintStream(outContent)); + gameEngine.executeCommand("describe"); + + Assertions.assertEquals("There's no blood in this room", outContent.toString().strip()); + } +} diff --git a/target/test-classes/CluedoTests/DescribeCommandTests.class b/target/test-classes/CluedoTests/DescribeCommandTests.class new file mode 100644 index 0000000000000000000000000000000000000000..28be1740f73abfd9b870d1404fc8199f589023e3 GIT binary patch literal 1983 zcmah~i&EQ06g}c4a8({Ap@f9Qp-Fh8LA2=u>Le|gM`>M1F(IXI*Rh&BmUtv^V`~q;e_{P9>dyiD4ao#K8E>g-2%h1~7^%Cazi-!+Qo&87~q=xhp~y z+N&Zg1a4krWToQx#n@<||45wVr4tkljMhOr8K+HLGjJs@?CP;+A3FAiQxR)^$@N77 za&G-tj!`{h@`AwD+Jm7KKPPWi|0Jm2Bqll>UtZCh!oSYP~))aIIax z&g2*VD_Cq4wjW;@7+N8}lpCfzSvV5Kc`ewog%xCY zQptKoEa}W_U8~MK6IjE#i46;1>Ej(;-gN5?sYo?}uknqEtc7o}#V(UU$v%uIBA-=P ziNJQMuDu+FB2cdMLj#r*FVqM6r^xjQN_Ws{ShVa<=^M*_|1FFQ53$%YyG7P$l&7ndhnyuYm`1XE5g8!rXt2fin!9BFWYG{@kBPo?+q? zlU&~3Kg0W{xbp`cyXXoe=?)C>In3`7hEJkMi$!>XLg0XJ10@FRjsq^zQ|~2+Jei!S zVXlp)e_}N40TOScBpN7X?rHKaj`*b$@c1@R;dfVzeaILZdm+Z2uVLXW9_keCoZ*u< zSd7h&Xih%S#u~n?Vf76*+YH7i4RD8eqQl#2i4dp8A;Ewq7#zMJaTv-_-3;w&cQ5ZOvD(~5FQB_SFm?Cj z8=v2^{4+OmKQCs7@>HZUmE_HPqe4to`EhJC$f2f$X2fk+hicT7uho;(RNRLQAVV!{ zOYsOYhD@|PAydc9(NvtX^ delta 201 zcmW;Gy$-=(7{&2NqQlc_i^NB?2^}!d0Rw##M3DFxT9ct&?e687C03i;Z~@)jfvLNb zcl`g(atgoj-%nGvzL6LROHqmJehL*+KSNLR;|>a)O-YZf6{mO9{2< OBDsAn#dzt-!3qCYr7BSX From 1a3c69c720d490039f3e2247713716365ef26827 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 19:05:03 +0100 Subject: [PATCH 32/38] Few changes. --- src/main/java/be/pxl/ja/Anagram.java | 5 ----- target/classes/be/pxl/ja/Anagram.class | Bin 266 -> 0 bytes 2 files changed, 5 deletions(-) delete mode 100644 src/main/java/be/pxl/ja/Anagram.java delete mode 100644 target/classes/be/pxl/ja/Anagram.class diff --git a/src/main/java/be/pxl/ja/Anagram.java b/src/main/java/be/pxl/ja/Anagram.java deleted file mode 100644 index bdc7274..0000000 --- a/src/main/java/be/pxl/ja/Anagram.java +++ /dev/null @@ -1,5 +0,0 @@ -package be.pxl.ja; - -public class Anagram { - -} diff --git a/target/classes/be/pxl/ja/Anagram.class b/target/classes/be/pxl/ja/Anagram.class deleted file mode 100644 index 7cf4f831ce8ffb1faa32c2a64223f74d7fb5540e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 266 zcmZWjOK!qY3>@b}N}BTP3AzIoyaUiyLX}uWumG`l(kFOPNU9L3UaPB0EI0s%LiLN- zVM}ArShnYKJ)Hr(p%=n|8^DX;qebXt{LL!oVyl)(rqi0xdNqZq-wEz;v_2~9tVvXSif%vsSlHypfElf2W@W+3kUlAOHf_4nJcodA9-k16$jL;Eu(ESH( Cwlwho From 216efdd9d69256874b0241656662872ff1a9b34e Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 19:33:56 +0100 Subject: [PATCH 33/38] CrackTheCode object gets made properly. --- src/main/java/be/pxl/ja/CrackTheCode.java | 41 +++-------------- src/main/java/be/pxl/ja/GameEngine.java | 52 +++++----------------- target/classes/be/pxl/ja/GameEngine.class | Bin 8300 -> 9557 bytes 3 files changed, 17 insertions(+), 76 deletions(-) diff --git a/src/main/java/be/pxl/ja/CrackTheCode.java b/src/main/java/be/pxl/ja/CrackTheCode.java index 37b88b0..330ada7 100644 --- a/src/main/java/be/pxl/ja/CrackTheCode.java +++ b/src/main/java/be/pxl/ja/CrackTheCode.java @@ -1,47 +1,16 @@ package be.pxl.ja; public class CrackTheCode extends Riddle{ - public String index; - public String questionOne; - public String questionTwo; - public String questionThree; - public String questionFour; - public String questionFive; + public String[] questions; public String answer; - public CrackTheCode(String index, String questionOne, String questionTwo, - String questionThree, String questionFour, String questionFive, String answer) { - this.index = index; - this.questionOne = questionOne; - this.questionTwo = questionTwo; - this.questionThree = questionThree; - this.questionFour = questionFour; - this.questionFive = questionFive; + public CrackTheCode(String[] questions, String answer) { + this.questions = questions; this.answer = answer; } - public String getIndex() { - return index; - } - - public String getQuestionOne() { - return questionOne; - } - - public String getQuestionTwo() { - return questionTwo; - } - - public String getQuestionThree() { - return questionThree; - } - - public String getQuestionFour() { - return questionFour; - } - - public String getQuestionFive() { - return questionFive; + public String[] getQuestions() { + return questions; } public String getAnswer() { diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 14bce7a..049f74b 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -158,52 +158,24 @@ public void initialize(String playerName) throws FileNotFoundException { crackTheCodes = new ArrayList<>(); scanner = new Scanner(crackTheCode); + int counter = 0; + while(scanner.hasNextLine()){ String line = scanner.nextLine(); - int counter = 1; - - String indexCode = ""; - String questionOne = ""; - String questionTwo = ""; - String questionThree = ""; - String questionFour = ""; - String questionFive = ""; - String answer = ""; - - if ("#".equals(line.substring(0))){ - indexCode = line; - } - /* - else if("ANSWER".equals(line.substring(0,5))){ + + String[] questions = new String[5]; + String answer; + + if ("#".equals(line.substring(0, 1))){ + counter = 0; + } else if (line.contains("ANSWER")){ String[] crackTheCodePieces = line.split(":"); answer = crackTheCodePieces[1].strip(); - } - - else{ - switch(counter){ - case 1: - questionOne = line; - break; - case 2: - questionTwo = line; - break; - case 3: - questionThree = line; - break; - case 4: - questionFour = line; - case 5: - questionFive = line; - counter = 0; - break; - } + CrackTheCode crackTheCodeConstruct = new CrackTheCode(questions, answer); + } else { + questions[counter] = line; counter++; - } - - */ - CrackTheCode crackTheCodeConstruct = new CrackTheCode(indexCode, questionOne, questionTwo, questionThree, - questionFour, questionFive, answer); } //--------------------------------------------------- diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 89941193cac6c906d27c2bda5bfdc977f0e1a87c..42e0d9fa8c3d4109356e21a891f5517b947bf2a0 100644 GIT binary patch literal 9557 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 X9})VP^qP-^2fRk|Y05 delta 4129 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 From bc2560c30fad3b73d53b562eda4c20124c6c3f31 Mon Sep 17 00:00:00 2001 From: StefBrackez <11800716@student.pxl.be> Date: Sun, 19 Dec 2021 20:30:41 +0100 Subject: [PATCH 34/38] Few changes --- src/main/java/be/pxl/ja/Anagram.java | 3 --- src/main/java/be/pxl/ja/GameEngine.java | 1 + src/main/java/be/pxl/ja/Riddle.java | 2 +- .../java/be/pxl/ja/command/UnlockCommand.java | 19 ++++++++++++++++++ target/classes/be/pxl/ja/GameEngine.class | Bin 9557 -> 9477 bytes .../be/pxl/ja/command/UnlockCommand.class | Bin 869 -> 869 bytes 6 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/main/java/be/pxl/ja/Anagram.java b/src/main/java/be/pxl/ja/Anagram.java index faa4208..6514a2b 100644 --- a/src/main/java/be/pxl/ja/Anagram.java +++ b/src/main/java/be/pxl/ja/Anagram.java @@ -1,6 +1,5 @@ package be.pxl.ja; - public class Anagram extends Riddle{ public String word; public String description; @@ -25,6 +24,4 @@ public String getDescription() { public String getAnswer() { return answer; } - - } diff --git a/src/main/java/be/pxl/ja/GameEngine.java b/src/main/java/be/pxl/ja/GameEngine.java index 049f74b..d383d00 100644 --- a/src/main/java/be/pxl/ja/GameEngine.java +++ b/src/main/java/be/pxl/ja/GameEngine.java @@ -172,6 +172,7 @@ public void initialize(String playerName) throws FileNotFoundException { String[] crackTheCodePieces = line.split(":"); answer = crackTheCodePieces[1].strip(); CrackTheCode crackTheCodeConstruct = new CrackTheCode(questions, answer); + crackTheCodes.add(crackTheCodeConstruct); } else { questions[counter] = line; counter++; diff --git a/src/main/java/be/pxl/ja/Riddle.java b/src/main/java/be/pxl/ja/Riddle.java index 720c6ce..8d1265b 100644 --- a/src/main/java/be/pxl/ja/Riddle.java +++ b/src/main/java/be/pxl/ja/Riddle.java @@ -1,5 +1,5 @@ package be.pxl.ja; -public class Riddle { +public abstract class Riddle implements Predicate{ } diff --git a/src/main/java/be/pxl/ja/command/UnlockCommand.java b/src/main/java/be/pxl/ja/command/UnlockCommand.java index e434dac..f16a312 100644 --- a/src/main/java/be/pxl/ja/command/UnlockCommand.java +++ b/src/main/java/be/pxl/ja/command/UnlockCommand.java @@ -2,9 +2,28 @@ import be.pxl.ja.GameEngine; +import java.io.ByteArrayOutputStream; +import java.io.PrintStream; +import java.util.Random; +import java.util.Scanner; + public class UnlockCommand implements Command{ @Override public void execute(String input) { + /* + Scanner keyboard = new Scanner(System.in); + // keyboard.nextLine() + + System.out.println(GameEngine.crackTheCodes.get(0).getAnswer()); + + if (keyboard.nextLine().equals(GameEngine.crackTheCodes.get(0).getAnswer())){ + GameEngine.detective.getCurrentRoom().unlock(); + } else { + System.out.println("Wrong answer!"); + } + + */ + GameEngine.detective.getCurrentRoom().unlock(); } } diff --git a/target/classes/be/pxl/ja/GameEngine.class b/target/classes/be/pxl/ja/GameEngine.class index 42e0d9fa8c3d4109356e21a891f5517b947bf2a0..d972f4e48253d60f8d4104b888f3e0e6ff10f22d 100644 GIT binary patch delta 2233 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 delta 29 jcmaFL_LObIdL~BJ$s3p)SveRu88|0@WAXy>9hp@Ch%pDb From 4886e3c6c6de9f34e48d327e0e0c366154e67503 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Sun, 19 Dec 2021 23:39:27 +0100 Subject: [PATCH 35/38] Team Goud Java PE - Cluedo [LINK NAAR YOUTUBE] https://youtu.be/rh4ztUi6-1E --- VIDEO YouTube | 1 + 1 file changed, 1 insertion(+) create mode 100644 VIDEO YouTube diff --git a/VIDEO YouTube b/VIDEO YouTube new file mode 100644 index 0000000..912255e --- /dev/null +++ b/VIDEO YouTube @@ -0,0 +1 @@ +https://youtu.be/rh4ztUi6-1E From 5212cf1fdfd93bc2d8c917c7b9dad19bbdc478b8 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Sun, 19 Dec 2021 23:43:55 +0100 Subject: [PATCH 36/38] Team Goud Java PE - Cluedo https://youtu.be/ZUSgK_amCQw --- Video Youtube definitief | 1 + 1 file changed, 1 insertion(+) create mode 100644 Video Youtube definitief diff --git a/Video Youtube definitief b/Video Youtube definitief new file mode 100644 index 0000000..2e459b3 --- /dev/null +++ b/Video Youtube definitief @@ -0,0 +1 @@ +https://youtu.be/ZUSgK_amCQw From e5fc44d33c096b00e045a8f4c00d3396aac04b59 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Sun, 19 Dec 2021 23:49:43 +0100 Subject: [PATCH 37/38] Delete VIDEO YouTube --- VIDEO YouTube | 1 - 1 file changed, 1 deletion(-) delete mode 100644 VIDEO YouTube diff --git a/VIDEO YouTube b/VIDEO YouTube deleted file mode 100644 index 912255e..0000000 --- a/VIDEO YouTube +++ /dev/null @@ -1 +0,0 @@ -https://youtu.be/rh4ztUi6-1E From 991df25495abc88d9f447a757bfce2a241d34195 Mon Sep 17 00:00:00 2001 From: nielsvanderstappen <43780194+nielsvanderstappen@users.noreply.github.com> Date: Sun, 19 Dec 2021 23:57:22 +0100 Subject: [PATCH 38/38] Update Video Youtube definitief --- Video Youtube definitief | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/Video Youtube definitief b/Video Youtube definitief index 2e459b3..87d61cb 100644 --- a/Video Youtube definitief +++ b/Video Youtube definitief @@ -1 +1,14 @@ https://youtu.be/ZUSgK_amCQw + +00:00 - 00:45 = Part +00:49 - 03:06 = Assembly +03:10 - 03:38 = Suspect +03:39 - 03:50 = Weapon +03:51 - 05:55 = Room +05:57 - 07:16 = Mansion +07:19 - 08:35 = Detective +08:36 - 09:30 = Envelope +09:30 - 21:01 = Game Engine +21:02 - 28:03 = Commands +28:04 - 31:00 = Tests +31:01 - einde = Spelverloop