From 15c5576ed03bd576b02447d49a65f8317d465b7c Mon Sep 17 00:00:00 2001 From: jachera Date: Sun, 4 Feb 2024 10:23:59 +0100 Subject: [PATCH 1/6] Function randomizes the word from list from the file --- .../pl/edu/agh/hangman/DisplayResult.java | 7 ++++ src/main/java/pl/edu/agh/hangman/Hangman.java | 6 ++++ .../java/pl/edu/agh/hangman/RandomWord.java | 35 +++++++++++++++++++ 3 files changed, 48 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/DisplayResult.java create mode 100644 src/main/java/pl/edu/agh/hangman/RandomWord.java diff --git a/src/main/java/pl/edu/agh/hangman/DisplayResult.java b/src/main/java/pl/edu/agh/hangman/DisplayResult.java new file mode 100644 index 00000000..bdfba1bd --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/DisplayResult.java @@ -0,0 +1,7 @@ +package pl.edu.agh.hangman; + +public class DisplayResult { + + + +} diff --git a/src/main/java/pl/edu/agh/hangman/Hangman.java b/src/main/java/pl/edu/agh/hangman/Hangman.java index c402ace7..4916a4e6 100644 --- a/src/main/java/pl/edu/agh/hangman/Hangman.java +++ b/src/main/java/pl/edu/agh/hangman/Hangman.java @@ -1,5 +1,7 @@ package pl.edu.agh.hangman; +import java.io.IOException; + public class Hangman { public static final String[] HANGMANPICS = new String[]{ @@ -55,5 +57,9 @@ public class Hangman { }; public static void main(String[] args) { + + RandomWord random = new RandomWord(); + System.out.println(random.getRandomWord()); + } } diff --git a/src/main/java/pl/edu/agh/hangman/RandomWord.java b/src/main/java/pl/edu/agh/hangman/RandomWord.java new file mode 100644 index 00000000..dee414ae --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/RandomWord.java @@ -0,0 +1,35 @@ +package pl.edu.agh.hangman; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Random; + +public class RandomWord { + + private ArrayList getWordsFromFile(){ + + File file = new File("src/main/resources/slowa.txt"); + ArrayList allWords = new ArrayList<>(); + String line = null; + + try { + BufferedReader bufferedReader = Files.newBufferedReader(file.toPath()); + while((line = bufferedReader.readLine()) != null){ + allWords.add(line); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + return allWords; + } + + public String getRandomWord() { + Random random = new Random(); + ArrayList randomWord = getWordsFromFile(); + return randomWord.get(random.nextInt(randomWord.size())); + } +} From 314685854ef71dc596be333974dd108147a520f9 Mon Sep 17 00:00:00 2001 From: fira Date: Sun, 4 Feb 2024 10:32:00 +0100 Subject: [PATCH 2/6] first logic --- src/main/java/pl/edu/agh/hangman/Logic.java | 28 +++++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/Logic.java diff --git a/src/main/java/pl/edu/agh/hangman/Logic.java b/src/main/java/pl/edu/agh/hangman/Logic.java new file mode 100644 index 00000000..08248151 --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/Logic.java @@ -0,0 +1,28 @@ +package pl.edu.agh.hangman; + +public class Logic { + int level = 0; + String wordToFind; + StringBuilder currentWord; + + public Logic(String wordToFind) { + this.wordToFind = wordToFind.toUpperCase(); + currentWord = new StringBuilder().insert(wordToFind.length(), "_"); + } + + public void checkLetter(char letter) { + char letterUpper = Character.toUpperCase(letter); + if (wordToFind.indexOf(letterUpper) < 0) { + level++; + } else { + + for (int i = 0; i < wordToFind.length(); i++) { + if (wordToFind.charAt(i) == letterUpper) { + currentWord.replace(i, i, String.valueOf(letterUpper)); + } + } + } + + //printResult(level, currentWord) + } +} From b5a56059a31bbfcd2ebb8cff224bfe1352d5caab Mon Sep 17 00:00:00 2001 From: pkawalec Date: Sun, 4 Feb 2024 10:37:18 +0100 Subject: [PATCH 3/6] =?UTF-8?q?Dodana=20metoda=20PrintResult=20i=20wywo?= =?UTF-8?q?=C5=82anie=20metody=20w=20Hangman.java?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/pl/edu/agh/hangman/Hangman.java | 7 ++++ .../java/pl/edu/agh/hangman/PrintResult.java | 32 +++++++++++++++++++ 2 files changed, 39 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/PrintResult.java diff --git a/src/main/java/pl/edu/agh/hangman/Hangman.java b/src/main/java/pl/edu/agh/hangman/Hangman.java index c402ace7..b09da39c 100644 --- a/src/main/java/pl/edu/agh/hangman/Hangman.java +++ b/src/main/java/pl/edu/agh/hangman/Hangman.java @@ -54,6 +54,13 @@ public class Hangman { "========" }; + public static final String GAMELOSE = "°՞(ᗒᗣᗕ)՞°"; + + public static final String GAMEWIN = "(ノ◕ヮ◕)ノ*:・゚✧"; + public static void main(String[] args) { + + PrintResult.printResult(6, "jola"); + } } diff --git a/src/main/java/pl/edu/agh/hangman/PrintResult.java b/src/main/java/pl/edu/agh/hangman/PrintResult.java new file mode 100644 index 00000000..9c36b83f --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/PrintResult.java @@ -0,0 +1,32 @@ +package pl.edu.agh.hangman; + +import static pl.edu.agh.hangman.Hangman.*; + +public class PrintResult { + + public static void printResult(int level, String word) { + + StringBuilder stringBuilder = new StringBuilder(HANGMANPICS[level]); + stringBuilder.insert(31, "\t" + word); + + /*if(level != 6 && word != "prawnik") { + System.out.println(HANGMANPICS[level]); + System.out.println("guess>"); + } + + if (level == 6) { + System.out.println(HANGMANPICS[level]); + System.out.println(GAMELOSE); + + } + + if (level !=6 && word == "prawnik") { + System.out.println(HANGMANPICS[level]); + System.out.println(GAMEWIN); + + }*/ + + System.out.println(stringBuilder); + + } +} \ No newline at end of file From 2ef5d646dc671d364d702f7931cf8c6e2d752f93 Mon Sep 17 00:00:00 2001 From: fira Date: Sun, 4 Feb 2024 11:06:16 +0100 Subject: [PATCH 4/6] return type of checkLetter(): boolean --- src/main/java/pl/edu/agh/hangman/Logic.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/pl/edu/agh/hangman/Logic.java b/src/main/java/pl/edu/agh/hangman/Logic.java index 08248151..05392287 100644 --- a/src/main/java/pl/edu/agh/hangman/Logic.java +++ b/src/main/java/pl/edu/agh/hangman/Logic.java @@ -1,5 +1,7 @@ package pl.edu.agh.hangman; +import static pl.edu.agh.hangman.PrintResult.printResult; + public class Logic { int level = 0; String wordToFind; @@ -10,7 +12,8 @@ public Logic(String wordToFind) { currentWord = new StringBuilder().insert(wordToFind.length(), "_"); } - public void checkLetter(char letter) { + public boolean checkLetter(char letter) { + boolean state = true; char letterUpper = Character.toUpperCase(letter); if (wordToFind.indexOf(letterUpper) < 0) { level++; @@ -23,6 +26,7 @@ public void checkLetter(char letter) { } } - //printResult(level, currentWord) + printResult(level, currentWord.toString()); + return currentWord.toString().contains("_"); } } From c4e6c7dcd912a2549bddbef06383099cbeb7cd20 Mon Sep 17 00:00:00 2001 From: jachera Date: Sun, 4 Feb 2024 11:10:08 +0100 Subject: [PATCH 5/6] First Main function --- src/main/java/pl/edu/agh/hangman/Hangman.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/pl/edu/agh/hangman/Hangman.java b/src/main/java/pl/edu/agh/hangman/Hangman.java index b09da39c..1cfd0f36 100644 --- a/src/main/java/pl/edu/agh/hangman/Hangman.java +++ b/src/main/java/pl/edu/agh/hangman/Hangman.java @@ -1,5 +1,7 @@ package pl.edu.agh.hangman; +import java.util.Scanner; + public class Hangman { public static final String[] HANGMANPICS = new String[]{ @@ -60,6 +62,21 @@ public class Hangman { public static void main(String[] args) { + + RandomWord random = new RandomWord(); + Logic logic = new Logic(random.getRandomWord()); + String input; + + do{ + Scanner scanner = new Scanner(System.in); + System.out.println("Podaj literke : "); + input = scanner.nextLine(); + + + + }while(logic.checkLetter(input.charAt(0))); + + PrintResult.printResult(6, "jola"); } From 3b4ed0cc653ee501ea3800666457444b01723735 Mon Sep 17 00:00:00 2001 From: jachera Date: Sun, 4 Feb 2024 11:54:12 +0100 Subject: [PATCH 6/6] Second Main function --- src/main/java/pl/edu/agh/hangman/Hangman.java | 4 ++- .../java/pl/edu/agh/hangman/RandomWord.java | 31 ++-------------- .../edu/agh/hangman/RandomWordFromFile.java | 36 +++++++++++++++++++ .../agh/hangman/RandomWordFromInternet.java | 8 +++++ 4 files changed, 49 insertions(+), 30 deletions(-) create mode 100644 src/main/java/pl/edu/agh/hangman/RandomWordFromFile.java create mode 100644 src/main/java/pl/edu/agh/hangman/RandomWordFromInternet.java diff --git a/src/main/java/pl/edu/agh/hangman/Hangman.java b/src/main/java/pl/edu/agh/hangman/Hangman.java index a1af36fa..3dc49388 100644 --- a/src/main/java/pl/edu/agh/hangman/Hangman.java +++ b/src/main/java/pl/edu/agh/hangman/Hangman.java @@ -64,7 +64,9 @@ public class Hangman { public static void main(String[] args) { - RandomWord random = new RandomWord(); + RandomWord random = new RandomWordFromFile(); + + Logic logic = new Logic(random.getRandomWord()); String input; diff --git a/src/main/java/pl/edu/agh/hangman/RandomWord.java b/src/main/java/pl/edu/agh/hangman/RandomWord.java index dee414ae..5f6849c9 100644 --- a/src/main/java/pl/edu/agh/hangman/RandomWord.java +++ b/src/main/java/pl/edu/agh/hangman/RandomWord.java @@ -1,35 +1,8 @@ package pl.edu.agh.hangman; -import java.io.BufferedReader; -import java.io.File; -import java.io.IOException; -import java.nio.file.Files; -import java.util.ArrayList; -import java.util.Random; +public interface RandomWord { -public class RandomWord { + String getRandomWord(); - private ArrayList getWordsFromFile(){ - File file = new File("src/main/resources/slowa.txt"); - ArrayList allWords = new ArrayList<>(); - String line = null; - - try { - BufferedReader bufferedReader = Files.newBufferedReader(file.toPath()); - while((line = bufferedReader.readLine()) != null){ - allWords.add(line); - } - - } catch (IOException e) { - throw new RuntimeException(e); - } - return allWords; - } - - public String getRandomWord() { - Random random = new Random(); - ArrayList randomWord = getWordsFromFile(); - return randomWord.get(random.nextInt(randomWord.size())); - } } diff --git a/src/main/java/pl/edu/agh/hangman/RandomWordFromFile.java b/src/main/java/pl/edu/agh/hangman/RandomWordFromFile.java new file mode 100644 index 00000000..e62a172a --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/RandomWordFromFile.java @@ -0,0 +1,36 @@ +package pl.edu.agh.hangman; + +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.util.ArrayList; +import java.util.Random; + +public class RandomWordFromFile implements RandomWord { + + private ArrayList getWordsFromFile(){ + + File file = new File("src/main/resources/slowa.txt"); + ArrayList allWords = new ArrayList<>(); + String line = null; + + try { + BufferedReader bufferedReader = Files.newBufferedReader(file.toPath()); + while((line = bufferedReader.readLine()) != null){ + allWords.add(line); + } + + } catch (IOException e) { + throw new RuntimeException(e); + } + return allWords; + } + + public String getRandomWord() { + Random random = new Random(); + ArrayList randomWord = getWordsFromFile(); + return randomWord.get(random.nextInt(randomWord.size())); + } + +} diff --git a/src/main/java/pl/edu/agh/hangman/RandomWordFromInternet.java b/src/main/java/pl/edu/agh/hangman/RandomWordFromInternet.java new file mode 100644 index 00000000..3066aa7c --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/RandomWordFromInternet.java @@ -0,0 +1,8 @@ +package pl.edu.agh.hangman; + +public class RandomWordFromInternet implements RandomWord { + @Override + public String getRandomWord() { + return null; + } +}