Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
71 changes: 71 additions & 0 deletions src/main/java/pl/edu/agh/hangman/Display.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
package pl.edu.agh.hangman;

public class Display {

// Grafika wisielca z kolejnymi etapami
public static final String[] HANGMANPICS = new String[]{
" +---+\n" +
" | |\n" +
" |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" | |\n" +
" |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" /| |\n" +
" |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" / |\n" +
" |\n" +
"=========",

" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" / \\ |\n" +
" |\n" +
"========"
};

// Wyswietlenie na podstawie ilosci bledow
public static void showHangman(int mistakes) {
if (mistakes < 0 || mistakes >= HANGMANPICS.length) {
throw new IllegalArgumentException("Niepoprawna dlugosc");
}
System.out.println(HANGMANPICS[mistakes]);
}
}
57 changes: 5 additions & 52 deletions src/main/java/pl/edu/agh/hangman/Hangman.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,58 +2,11 @@

public class Hangman {

public static final String[] HANGMANPICS = new String[]{
" +---+\n" +
" | |\n" +
" |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" |\n" +
" |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" | |\n" +
" |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" /| |\n" +
" |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" / |\n" +
" |\n" +
"=========",
" +---+\n" +
" | |\n" +
" O |\n" +
" /|\\ |\n" +
" / \\ |\n" +
" |\n" +
"========"
};

public static void main(String[] args) {

// Test WordRandomizer
WordRandomizer randomizer = new WordRandomizer();
String word = randomizer.getRandomWord();
System.out.println("Wylosowane slowo (test): " + word);
}
}
45 changes: 45 additions & 0 deletions src/main/java/pl/edu/agh/hangman/WordRandomizer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
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 OBIEKTU
private final Random random = new Random();

// Lista slow przechowywana jako STAN obiektu
private final List<String> words;

// Konstruktor - ladowanie slow z pliku
public WordRandomizer() {

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 programu
words = new BufferedReader(new InputStreamReader(inputStream)) // zmiana bajtow na znaki
.lines() // czytanie pliku linia po linii
.filter(line -> !line.isBlank()) // usuwa puste linie i spacje
.collect(Collectors.toList()); // zapis do listy

if (words.isEmpty()) {
throw new RuntimeException("wybrany plik jest pusty!");
}
}

// zwraca wylosowane slowo
public String getRandomWord() {
return words.get(random.nextInt(words.size())).toLowerCase();
}
}