03.08.2020

This commit is contained in:
blues 2020-08-03 15:43:43 +02:00
parent eea56824e4
commit aeb31962de
5 changed files with 854 additions and 64 deletions

View File

@ -1,8 +1,6 @@
package application; package application;
import java.io.BufferedReader; import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException; import java.io.FileNotFoundException;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -24,48 +22,51 @@ import javafx.scene.Parent;
import javafx.scene.Scene; import javafx.scene.Scene;
import javafx.scene.control.Label; import javafx.scene.control.Label;
import javafx.scene.control.ProgressBar; import javafx.scene.control.ProgressBar;
import javafx.scene.control.RadioButton;
import javafx.scene.control.TextField; import javafx.scene.control.TextField;
import javafx.scene.control.ToggleGroup;
import javafx.scene.image.Image; import javafx.scene.image.Image;
import javafx.scene.image.ImageView; import javafx.scene.image.ImageView;
import javafx.scene.text.Font;
import javafx.scene.text.Text; import javafx.scene.text.Text;
public class Main extends Application { public class Main extends Application {
// Scenebuilder // Scenebuilder
@FXML @FXML
Text text; Text hangmanWord;
@FXML @FXML
ImageView hangmanImage; ImageView hangmanImage;
@FXML @FXML
TextField textField; TextField letter;
@FXML @FXML
Text info; Text info;
@FXML @FXML
Label zuErratendesWort; Label title;
@FXML @FXML
private Label progress; private Label progress;
public static Label label; public static Label label;
@FXML
RadioButton easy;
@FXML
RadioButton medium;
@FXML
RadioButton hard;
@FXML @FXML
private ProgressBar progressBar; private ProgressBar progressBar;
public static ProgressBar statProgressBar; public static ProgressBar statProgressBar;
@FXML @FXML
private void handleButtonAction(ActionEvent event) { private void handleButtonAction(ActionEvent event) {
} }
// Game
public void initialize(URL url, ResourceBundle rb) { public void initialize(URL url, ResourceBundle rb) {
label = progress; label = progress;
statProgressBar = progressBar; statProgressBar = progressBar;
} }
private static final int COUNT_LIMIT = 10;
private static final int COUNT_LIMIT = 10;
String wort; String wort;
String rightletterString; String rightletterString;
@ -79,17 +80,12 @@ public class Main extends Application {
public void start(Stage primaryStage) { public void start(Stage primaryStage) {
try { try {
Parent root = FXMLLoader.load(getClass().getResource("Ui.fxml")); Parent root = FXMLLoader.load(getClass().getResource("Ui.fxml"));
Scene scene = new Scene(root); Scene scene = new Scene(root);
scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm()); scene.getStylesheets().add(getClass().getResource("application.css").toExternalForm());
primaryStage.setScene(scene); primaryStage.setScene(scene);
primaryStage.setTitle("****HANGMAN****"); primaryStage.setTitle("****HANGMAN****");
primaryStage.show(); primaryStage.show();
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@ -110,7 +106,7 @@ public class Main extends Application {
displayWord[i] = '-'; displayWord[i] = '-';
} }
String textfieldString = new String(displayWord); String textfieldString = new String(displayWord);
text.setText(textfieldString); hangmanWord.setText(textfieldString);
counter = 1; counter = 1;
hangmanImage.setImage(null); hangmanImage.setImage(null);
info.setText(""); info.setText("");
@ -120,7 +116,7 @@ public class Main extends Application {
public boolean letterCheck(char[] wortToArr, char[] displayWord) { public boolean letterCheck(char[] wortToArr, char[] displayWord) {
for (int i = 0; i < wort.length(); i++) { for (int i = 0; i < wort.length(); i++) {
if (wortToArr[i] == textField.getText().charAt(0)) { if (letter.getText().isEmpty() == false && wortToArr[i] == letter.getText().charAt(0)) {
displayWord[i] = wortToArr[i]; displayWord[i] = wortToArr[i];
return true; return true;
} }
@ -129,12 +125,12 @@ public class Main extends Application {
return false; return false;
} }
// Button to confirm\check typed Letter // Confirm\check typed Letter
public void checkLetter() { public void checkLetter() {
info.setText(""); info.setText("");
if (letterCheck(wortToArr, displayWord) == true) { if (letterCheck(wortToArr, displayWord) == true) {
rightletterString = new String(displayWord); rightletterString = new String(displayWord);
text.setText(rightletterString); hangmanWord.setText(rightletterString);
info.setText("Richtig"); info.setText("Richtig");
} else { } else {
@ -142,16 +138,24 @@ public class Main extends Application {
info.setText("Falsch"); info.setText("Falsch");
counter++; counter++;
} }
textField.clear(); letter.clear();
if (counter == 16) {
hangmanWord.setText(wort);
}
} }
// Returns a Word from txt file // Returns a Word from txt file
public String newWord() throws FileNotFoundException { public String newWord() throws FileNotFoundException {
Random random = new Random();
String line; String line;
ArrayList<String> temp = new ArrayList<String>(); ArrayList<String> temp = new ArrayList<String>();
InputStream in = getClass().getResourceAsStream("/wort.txt"); Random random = new Random();
BufferedReader bf = new BufferedReader(new InputStreamReader(in));
letter.setDisable(false);
BufferedReader bf = new BufferedReader(new InputStreamReader(difficult()));
try { try {
while ((line = bf.readLine()) != null) { while ((line = bf.readLine()) != null) {
temp.add(line); temp.add(line);
@ -163,10 +167,39 @@ public class Main extends Application {
return temp.get(random.nextInt(temp.size())).toString(); return temp.get(random.nextInt(temp.size())).toString();
} }
// Returns the difficult wordlist
public InputStream difficult() {
String easy = "/wordeasy.txt";
String medium = "/wordmedium.txt";
String hard = "/wordhard.txt";
InputStream in = null;
if (this.easy.isSelected()) {
in = getClass().getResourceAsStream(easy);
}
if (this.medium.isSelected()) {
in = getClass().getResourceAsStream(medium);
}
if (this.hard.isSelected()) {
in = getClass().getResourceAsStream(hard);
} else {
in = getClass().getResourceAsStream(easy);
}
return in;
}
// Preloader
@Override @Override
public void init() throws Exception { public void init() throws Exception {
// Perform some heavy lifting (i.e. database start, check for application updates, etc. ) // Perform some heavy lifting (i.e. database start, check for application
// updates, etc. )
for (int i = 1; i <= COUNT_LIMIT; i++) { for (int i = 1; i <= COUNT_LIMIT; i++) {
double progress = (double) i / 10; double progress = (double) i / 10;
System.out.println("progress: " + progress); System.out.println("progress: " + progress);
@ -176,12 +209,6 @@ public class Main extends Application {
} }
public static void main(String[] args) { public static void main(String[] args) {
LauncherImpl.launchApplication(Main.class, HangmanPreload.class, args); LauncherImpl.launchApplication(Main.class, HangmanPreload.class, args);
} }

View File

@ -1,8 +1,11 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<?import javafx.geometry.Insets?>
<?import javafx.scene.control.Button?> <?import javafx.scene.control.Button?>
<?import javafx.scene.control.Label?> <?import javafx.scene.control.Label?>
<?import javafx.scene.control.RadioButton?>
<?import javafx.scene.control.TextField?> <?import javafx.scene.control.TextField?>
<?import javafx.scene.control.ToggleGroup?>
<?import javafx.scene.effect.Bloom?> <?import javafx.scene.effect.Bloom?>
<?import javafx.scene.effect.DropShadow?> <?import javafx.scene.effect.DropShadow?>
<?import javafx.scene.effect.Light.Distant?> <?import javafx.scene.effect.Light.Distant?>
@ -12,6 +15,7 @@
<?import javafx.scene.image.Image?> <?import javafx.scene.image.Image?>
<?import javafx.scene.image.ImageView?> <?import javafx.scene.image.ImageView?>
<?import javafx.scene.layout.AnchorPane?> <?import javafx.scene.layout.AnchorPane?>
<?import javafx.scene.layout.VBox?>
<?import javafx.scene.text.Font?> <?import javafx.scene.text.Font?>
<?import javafx.scene.text.Text?> <?import javafx.scene.text.Text?>
@ -22,16 +26,16 @@
<Image url="@../images/bg.jpg" /> <Image url="@../images/bg.jpg" />
</image> </image>
</ImageView> </ImageView>
<ImageView fx:id="hangmanImage" fitHeight="180.0" fitWidth="258.0" layoutX="370.0" layoutY="245.0" pickOnBounds="true" preserveRatio="true"> <ImageView fx:id="hangmanImage" fitHeight="194.0" fitWidth="235.0" layoutX="393.0" layoutY="231.0" pickOnBounds="true" preserveRatio="true">
<effect> <effect>
<Bloom threshold="0.0" /> <Bloom threshold="0.0" />
</effect></ImageView> </effect></ImageView>
<TextField fx:id="textField" layoutX="37.0" layoutY="298.0" prefHeight="72.0" prefWidth="82.0" promptText="..."> <TextField fx:id="letter" disable="true" layoutX="37.0" layoutY="298.0" prefHeight="72.0" prefWidth="82.0" promptText="...">
<font> <font>
<Font size="41.0" /> <Font size="41.0" />
</font> </font>
</TextField> </TextField>
<Text fx:id="text" fill="#f5f5f5" layoutX="130.0" layoutY="162.0" strokeType="OUTSIDE" strokeWidth="0.0" textAlignment="CENTER" wrappingWidth="359.13671875"> <Text fx:id="hangmanWord" fill="#f5f5f5" layoutX="130.0" layoutY="162.0" strokeType="OUTSIDE" strokeWidth="0.0" textAlignment="CENTER" wrappingWidth="359.13671875">
<font> <font>
<Font size="48.0" /> <Font size="48.0" />
</font> </font>
@ -74,9 +78,23 @@
<Font size="25.0" /> <Font size="25.0" />
</font> </font>
</Text> </Text>
<Label fx:id="zuErratendesWort" alignment="CENTER" layoutX="76.0" layoutY="14.0" prefHeight="87.0" prefWidth="481.0" text="H A N G M A N" textFill="#f8f5f5"> <Label fx:id="title" alignment="CENTER" layoutX="76.0" layoutY="14.0" prefHeight="87.0" prefWidth="481.0" text="H A N G M A N" textFill="#f8f5f5">
<effect> <effect>
<DropShadow color="#b91515" height="53.62" radius="21.862499999999997" spread="0.76" width="35.83" /> <DropShadow color="#b91515" height="53.62" radius="21.862499999999997" spread="0.76" width="35.83" />
</effect></Label> </effect></Label>
<VBox layoutX="310.0" layoutY="295.0" prefHeight="87.0" prefWidth="82.0" spacing="15.0">
<children>
<RadioButton fx:id="easy" mnemonicParsing="false" text="Easy" textFill="#ff0505">
<toggleGroup>
<ToggleGroup fx:id="difficult" />
</toggleGroup>
</RadioButton>
<RadioButton fx:id="medium" mnemonicParsing="false" text="Medium" textFill="#ff0404" toggleGroup="$difficult" />
<RadioButton fx:id="hard" mnemonicParsing="false" prefHeight="17.0" prefWidth="55.0" text="Hard" textFill="#f80101" toggleGroup="$difficult" />
</children>
<opaqueInsets>
<Insets />
</opaqueInsets>
</VBox>
</children> </children>
</AnchorPane> </AnchorPane>

659
HangmanFx/src/wordeasy.txt Normal file
View File

@ -0,0 +1,659 @@
Ärger
Ärztin
Abend
Abfahrt
Abflug
Absender
Adresse
Alkohol
Alter
Ampel
Anfang
Angebot
Angestellte
Angst
Ankunft
Anmeldung
Anrede
Anruf
Anrufbeantworter
Ansage
Anschluss
Antwort
Anzeige
Anzug
Apfel
Apotheke
Appartement
Appetit
April
Arbeit
Arbeitsplatz
Arm
Arzt
Aufenthalt
Aufgabe
Aufzug
Auge
August
Ausbildung
Ausflug
Ausgang
Auskunft
Ausländer
Ausländerin
Ausland
Aussage
Ausstellung
Ausweis
Auto
Autobahn
Automat
Bäckerei
Büro
Baby
Bad
Bahn
Bahnhof
Bahnsteig
Balkon
Banane
Bank
Batterie
Baum
Beamte
Beamtin
Bein
Beispiel
Bekannte
Benzin
Beratung
Berg
Beruf
Berufsschule
Besuch
Betrag
Bett
Bewerbung
Bier
Bild
Bildschirm
Birne
Bitte
Blatt
Bleistift
Blick
Blume
Bluse
Blut
Bogen
Bohne
Brötchen
Brücke
Brief
Briefkasten
Briefmarke
Brieftasche
Briefumschlag
Brille
Brot
Bruder
Buch
Buchstabe
Bus
Butter
Café
CD
CD-ROM
Chef
Computer
Creme
Dach
Dame
Dank
Datum
Dauer
Deutsche
Dezember
Dienstag
Ding
Disco
Doktor
Dom
Donnerstag
Doppelzimmer
Dorf
Drucker
Durchsage
Durst
Dusche
E-Mail
Ecke
Ehefrau
Ehemann
Ei
Einführung
Eingang
Einladung
Eintritt
Einwohner
Einzelzimmer
Eis
Eltern
Empfänger
Empfang
Ende
Enkel
Entschuldigung
Erdgeschoss
Erfahrung
Ergebnis
Erlaubnis
Ermäßigung
Erwachsene
Essen
Export
Fähre
Führerschein
Führung
Fabrik
Fahrer
Fahrkarte
Fahrplan
Fahrrad
Familie
Familienname
Familienstand
Farbe
Fax
Februar
Fehler
Fenster
Ferien
Fernsehgerät
Fest
Feuer
Feuerwehr
Feuerzeug
Fieber
Film
Firma
Fisch
Flasche
Fleisch
Flughafen
Flugzeug
Flur
Fluss
Formular
Foto
Fotoapparat
Frühjahr
Frühling
Frühstück
Frage
Frau
Freitag
Freizeit
Freund
Freundin
Friseur
Frist
Fuß
Fußball
Fundbüro
Gabel
Garage
Garten
Gas
Gast
Gebühr
Geburtsjahr
Geburtsort
Geburtstag
Gegenteil
Geld
Geldbörse
Gemüse
Gepäck
Gericht
Gesamtschule
Geschäft
Geschenk
Geschirr
Geschwister
Gesicht
Gespräch
Gesundheit
Getränk
Gewicht
Gewitter
Glück
Glückwunsch
Glas
Gleis
Goethe-Institut
Größe
Die Grenze
Grippe
Großeltern
Großmutter
Großvater
Gruß
Grundschule
Gruppe
Guthaben
Gymnasium
Hähnchen
Haar
Halbpension
Halle
Hals
Haltestelle
Hand
Handtuch
Handy
Haus
Hausaufgabe
Hausfrau
Haushalt
Hausmann
Heimat
Heizung
Hemd
Herbst
Herd
Herr
Herz
Hilfe
Hobby
Holz
Hose
Hund
Hunger
Idee
Import
Industrie
Information
Inhalt
Internet
Jacke
Jahr
Januar
Job
Jugendherberge
Jugendliche
Juli
Junge
Juni
Käse
Körper
Küche
Kühlschrank
Kündigung
Kaffee
Kalender
Kamera
Kanne
Karte
Kartoffel
Kasse
Kassette
Kassettenrecorder
Katze
Keller
Kellner
Kenntnisse
Kennzeichen
Kette
Kfz
Kind
Kindergarten
Kinderwagen
Kino
Kiosk
Kirche
Klasse
Kleid
Kleidung
Kneipe
Koffer
Kollege
Kollegin
Konsulat
Kontakt
Konto
Kontrolle
Konzert
Kopf
Kosmetik
Krankenkasse
Krankheit
Kredit
Kreditkarte
Kreis
Kreuzung
Kuchen
Kugelschreiber
Kunde
Kundin
Kurs
Löffel
Lösung
Laden
Lager
Lampe
Land
Landschaft
Leben
Lebensmittel
Leid
Lehre
Lehrer
Lehrerin
Leute
Licht
Lied
Lkw
Loch
Lohn
Lokal
Luft
Lust
Mädchen
März
Möbel
Müll
Mülltonne
Magen
Mai
Mal
Mann
Mantel
Markt
Maschine
Material
Mechaniker
Medikament
Meer
Mehrwertsteuer
Meinung
Menge
Mensch
Messer
Metall
Miete
Milch
Minute
Mittag
Mitte
Mitteilung
Mittel
Mittelschule
Mittwoch
Mode
Moment
Monat
Montag
Morgen
Motor
Mund
Museum
Musik
Mutter
Nähe
Nachbar
Nachbarin
Nachmittag
Nachrichten
Nacht
Name
Natur
Nebel
Norden
Notarzt
Note
Notfall
Notiz
November
Nudel
Nummer
Ober
Obst
Oktober
Oma
Opa
Operation
Orange
Ordnung
Ort
Osten
Öl
Päckchen
Paket
Panne
Papier
Papiere
Parfüm
Park
Partei
Partner
Partnerin
Party
Pass
Pause
Pension
Pkw
Plan
Plastik
Platz
Polizei
Pommes frites
Portion
Post
Postleitzahl
Prüfung
Praktikum
Praxis
Preis
Problem
Das Produkt
Programm
Prospekt
Pullover
Qualität
Quittung
Rücken
Rabatt
Radio
Rathaus
Raucher
Raucherin
Raum
Realschule
Rechnung
Regen
Reifen
Reinigung
Reis
Reise
Reisebüro
Reiseführer
Reparatur
Restaurant
Rezept
Rezeption
Rind
Rock
Rose
Rundgang
Süden
S-Bahn
Sache
Saft
Salat
Salz
Samstag/Sonnabend
Satz
Schüler
Schülerin
Schalter
Scheckkarte
Schiff
Schild
Schinken
Schirm
Schlüssel
Schloss
Schluss
Schmerzen
Schnee
Schnupfen
Schokolade
Schrank
Schuh
Schule
Schwein
Schwester
Schwimmbad
See
Sehenswürdigkeit
Seife
Sekretärin
Sekunde
Sendung
Senioren
September
Service
Sessel
Sofa
Sohn
Sommer
Sonderangebot
Sonne
Sonntag
Sorge
Spülmaschine
Spaß
Spaziergang
Speisekarte
Spielplatz
Sprache
Sprachschule
Sprechstunde
Stück
Stadt
Standesamt
Stempel
Steuer
Stock
Stoff
Straße
Straßenbahn
Strand
Streichholz
Strom
Student
Studentin
Studium
Stuhl
Stunde
Supermarkt
Suppe
Tür
Tüte
Tag
Tankstelle
Tasche
Tasse
Taxi
Der Tee
Teil
Telefon
Telefonbuch
Teller
Teppich
Termin
Test
Text
Theater
Thema
Ticket
Tier
Tipp
Tisch
Tochter
Toilette
Tomate
Topf
Tourist
Treppe
Trinkgeld
Turm
U-Bahn
Uhr
Unfall
Universität
Unterhaltung
Unterkunft
Unterricht
Unterschied
Unterschrift
Untersuchung
Urlaub
Übernachtung
Vater
Verbindung
Verein
Verkäufer
Verkäuferin
Verkehr
Vermieter
Versicherung
Verspätung
Vertrag
Video
Vogel
Volksschule
Vormittag
Vorname
Vorsicht
Vorwahl
Wäsche
Wagen
Wald
Wasser
Weg
Wein
Welt
Werkstatt
Werkzeug
Westen
Wetter
Wiederhören
Wiedersehen
Wind
Winter
Wirtschaft
Woche
Wochenende
Wochentag
Wohnung
Wolke
Wort
Wunsch
Wurst
Zahl
Zahn
Zeit
Zeitschrift
Zeitung
Zentrum
Zettel
Zeugnis
Zigarette
Zimmer
Zitrone
Zoll
Zucker
Zug

View File

@ -0,0 +1,86 @@
adäquat
affektiert
agil
akribisch
antagonistisch
apathisch
arriviert
autokratisch
banal
brachial
Contenance
designiert
desolat
dediziert
definitiv
dezidiert
diabolisch
differenziert
diffus
diskutabel
effektiv
effizient
elanvoll
eloquent
eminent
essenziell
exorbitant
explizit
expressiv
fulminant
generös
gravierend
heterogen
homogen
ikonisch
impraktikabel
inadäquat
inakzeptabel
indiskutabel
infernalisch
initial
irrelevant
komplex
kongenial
konsistent
kontinuierlich
kurios
lapidar
legitim
loyal
lukrativ
marginal
melodramatisch
morbid
nebulös
normativ
obligatorisch
obsolet
omnipotent
opulent
penibel
perfide
pointiert
prädestiniert
prägnant
präsent
prätentiös
prosaisch
redundant
relevant
renitent
renommiert
respektabel
rudimentär
satanisch
saturiert
skurril
subtil
theatralisch
titanisch
tradiert
trist
trivial
vakant
vehement
versiert