diff --git a/README.md b/README.md index 5c0867a..a94fa8c 100644 --- a/README.md +++ b/README.md @@ -37,3 +37,16 @@ Ale na wszelki wypadek: **Przed ustalonym wyżej deadlinem specjalista ds. koordynacji projektów sprawdzi i oceni postęp prac i jakość implementacji.** Do dzieła! + +# NOWE WYMAGANIA! + +Klient oczekuje jeszcze kilku funkcjonalności. Nie powinno to być problemem, bo przecież zaprojektowaliście +kod tak, by był [otwarty na rozszerzanie, ale zamknięty na modyfikacje](https://pl.wikipedia.org/wiki/Zasada_otwarte-zamkni%C4%99te), +prawda? + +* gra powinna pozwalać na wybór długości słowa +* gra powinna pozwalać na zmianę animacji (i możliwej liczby prób wynikającej z niej) +* gra powinna umieć zapytać o słowo do gry z serwisu + [Wordnik](http://api.wordnik.com/v4/words.json/randomWords?hasDictionaryDef=true&minCorpusCount=0&minLength=5&maxLength=15&limit=1&api_key=a2a73e7b926c924fad7001ca3111acd55af2ffabf50eb4ae5) + zamiast z podanego pliku + 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 0000000..3fb14d8 --- /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(); + } + } +} 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 0000000..af94a35 --- /dev/null +++ b/src/main/java/pl/edu/agh/hangman/UserInput.java @@ -0,0 +1,33 @@ +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() { + while (true) { + System.out.print("Podaj literę: "); + 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ę."); + } + } +} 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 0000000..c9d453c --- /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; + } + } +}