From e1a4183b2656608c6c58cab03055ae15beef1208 Mon Sep 17 00:00:00 2001 From: Krzysztof Golebiowski Date: Sat, 31 Jan 2026 09:47:58 +0100 Subject: [PATCH 1/6] CHeck the letter in the word --- .../java/pl/edu/agh/hangman/ValidData.java | 26 +++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/ValidData.java diff --git a/src/main/java/pl/edu/agh/hangman/ValidData.java b/src/main/java/pl/edu/agh/hangman/ValidData.java new file mode 100644 index 00000000..c9d453c8 --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/ValidData.java @@ -0,0 +1,26 @@ +package pl.edu.agh.hangman; + +public class ValidData { + String word; + + public ValidData(String word) { + this.word = word; + } + + public String getWord() { + return word; + } + + public void setWord(String word) { + this.word = word; + } + + public boolean checkLetter(char letter) { + + if (word.contains(String.valueOf(letter))) { + return true; + } else { + return false; + } + } +} From 910dcf7b4fcc4539713bdd4f0db28087ccdc8823 Mon Sep 17 00:00:00 2001 From: Kamil Nowak Date: Sat, 31 Jan 2026 09:53:03 +0100 Subject: [PATCH 2/6] Dodanie klasy word randomizer --- src/main/java/pl/edu/agh/hangman/Hangman.java | 3 +- .../pl/edu/agh/hangman/WordRandomizer.java | 35 +++++++++++++++++++ 2 files changed, 37 insertions(+), 1 deletion(-) create mode 100644 src/main/java/pl/edu/agh/hangman/WordRandomizer.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..2aeebd5d 100644 --- a/src/main/java/pl/edu/agh/hangman/Hangman.java +++ b/src/main/java/pl/edu/agh/hangman/Hangman.java @@ -55,5 +55,6 @@ public class Hangman { }; public static void main(String[] args) { + System.out.println(WordRandomizer.getRandomWord()); } -} +} \ No newline at end of file diff --git a/src/main/java/pl/edu/agh/hangman/WordRandomizer.java b/src/main/java/pl/edu/agh/hangman/WordRandomizer.java new file mode 100644 index 00000000..2a440081 --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/WordRandomizer.java @@ -0,0 +1,35 @@ +package pl.edu.agh.hangman; +import java.io.BufferedReader; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.util.List; +import java.util.Random; +import java.util.stream.Collectors; + +public class WordRandomizer { +//Jedno wspolne zrodlo losowosci dla calej klasy + private static final Random RANDOM = new Random(); +//zwraca wylosowane slowo + public static String getRandomWord() { +//ladowanie slow z pliku + InputStream inputStream = WordRandomizer.class + .getClassLoader() + .getResourceAsStream("slowa.txt"); + +//Sprawdzanie czy plik istnieje w resources + if (inputStream == null) { + throw new RuntimeException("brak pliku w resources"); + } + //Najwazniejsza czesc progaramu + List words = new BufferedReader(new InputStreamReader(inputStream)) //zmiana bajtow na znaki + .lines() //czytanie liku linia po lini + .filter(line -> !line.isBlank()) //tworzy strumien lini tekstu + .collect(Collectors.toList()); //usuwa puste linie i spacje + + if (words.isEmpty()) { + throw new RuntimeException("wybrany plik jest pusty!"); + } + + return words.get(RANDOM.nextInt(words.size())).toLowerCase(); + } +} From 3a4bc5ef0dca28f4528ecb803dd61ccb4c982693 Mon Sep 17 00:00:00 2001 From: Aleksandra Date: Sat, 31 Jan 2026 09:59:49 +0100 Subject: [PATCH 3/6] 1 --- .../java/pl/edu/agh/hangman/UserInput.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/UserInput.java diff --git a/src/main/java/pl/edu/agh/hangman/UserInput.java b/src/main/java/pl/edu/agh/hangman/UserInput.java new file mode 100644 index 00000000..670121b8 --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/UserInput.java @@ -0,0 +1,25 @@ +package pl.edu.agh.hangman; +import java.util.Scanner; + +public class UserInput { + private Scanner scanner; + + public UserInput() { + scanner = new Scanner (System.in); + } + + public void showWelcomeMessage() { + System.out.println("=========================="); + System.out.println(" WITAJ W GRZE HANGMAN" ); + System.out.println("=========================="); + System.out.println("Zgaduj litery, aby odgadnąć hasło."); + System.out.println(); + } + + public char getLetter() { + System.out.println("Zgaduj litery, aby odgadnąć hasło."); + System.out.println(); + } + System.out.println("Błąd — wpisz jedną literę."); + } +} From d929f40ec3ab9db2aab48a96c3e36cfab2b9e630 Mon Sep 17 00:00:00 2001 From: Aleksandra Date: Sat, 31 Jan 2026 10:27:49 +0100 Subject: [PATCH 4/6] 2 --- src/main/java/pl/edu/agh/hangman/UserInput.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/pl/edu/agh/hangman/UserInput.java b/src/main/java/pl/edu/agh/hangman/UserInput.java index 670121b8..6f1322f0 100644 --- a/src/main/java/pl/edu/agh/hangman/UserInput.java +++ b/src/main/java/pl/edu/agh/hangman/UserInput.java @@ -17,9 +17,10 @@ public void showWelcomeMessage() { } public char getLetter() { - System.out.println("Zgaduj litery, aby odgadnąć hasło."); - System.out.println(); - } - System.out.println("Błąd — wpisz jedną literę."); + while (true) { + System.out.print("Podaj literę: "); + String input = scanner.nextLine(); + + } } } From 69b7b589044e8398da0f2552fdac273c99d0e725 Mon Sep 17 00:00:00 2001 From: Aleksandra Date: Sat, 31 Jan 2026 10:56:50 +0100 Subject: [PATCH 5/6] 3 --- src/main/java/pl/edu/agh/hangman/UserInput.java | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/main/java/pl/edu/agh/hangman/UserInput.java b/src/main/java/pl/edu/agh/hangman/UserInput.java index 6f1322f0..af94a35e 100644 --- a/src/main/java/pl/edu/agh/hangman/UserInput.java +++ b/src/main/java/pl/edu/agh/hangman/UserInput.java @@ -1,16 +1,18 @@ package pl.edu.agh.hangman; + import java.util.Scanner; public class UserInput { + private Scanner scanner; public UserInput() { - scanner = new Scanner (System.in); + scanner = new Scanner(System.in); } public void showWelcomeMessage() { System.out.println("=========================="); - System.out.println(" WITAJ W GRZE HANGMAN" ); + System.out.println(" WITAJ W GRZE HANGMAN "); System.out.println("=========================="); System.out.println("Zgaduj litery, aby odgadnąć hasło."); System.out.println(); @@ -19,8 +21,13 @@ public void showWelcomeMessage() { public char getLetter() { while (true) { System.out.print("Podaj literę: "); - String input = scanner.nextLine(); + String input = scanner.nextLine().toLowerCase(); + + if (input.length() == 1 && Character.isLetter(input.charAt(0))) { + return input.charAt(0); + } + System.out.println("Błąd — wpisz jedną literę."); } } } From 9820b350fb770d2da500134bcd1e1c06773e3c00 Mon Sep 17 00:00:00 2001 From: Aleksandra Date: Sat, 31 Jan 2026 10:58:20 +0100 Subject: [PATCH 6/6] 3 --- .../java/pl/edu/agh/hangman/CleanFile.java | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/java/pl/edu/agh/hangman/CleanFile.java diff --git a/src/main/java/pl/edu/agh/hangman/CleanFile.java b/src/main/java/pl/edu/agh/hangman/CleanFile.java new file mode 100644 index 00000000..3fb14d8c --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/CleanFile.java @@ -0,0 +1,35 @@ +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; + +public class CleanFile { + + public static void main(String[] args) { + + String inputPath = "słowa.txt"; + String outputPath = "słowa_wyczyszczone.txt"; + + try { + // 1. Odczyt pliku + String content = new String( + Files.readAllBytes(Paths.get(inputPath)) + ).toLowerCase(); + + // 2. Czyszczenie — ZOSTAJĄ polskie litery + String cleanedContent = content + .replaceAll(" ", " ") + // \p{L} = wszystkie litery Unicode (w tym polskie) + .replaceAll("[^\\p{L}\\s]", "") + .replaceAll("\\s+", " ") + .trim(); + + // 3. Zapis do pliku + Files.write(Paths.get(outputPath), cleanedContent.getBytes()); + + System.out.println("Zachowano polskie znaki. Plik wyczyszczony."); + + } catch (IOException e) { + e.printStackTrace(); + } + } +}