UTF-8 Konvertierung und fehlende Dateien hinzugefügt.
65
doc/README
Normal file
@ -0,0 +1,65 @@
|
||||
HangMan for Java 1.9 [08.12.1998]
|
||||
(c)1998-99 bei Markus Birth <Robo.Cop@gmx.net>
|
||||
================================================================================
|
||||
|
||||
Dieses ist meine eigens programmierte Hangman-Version für Java. Das Programm
|
||||
liegt im Quelltext und als vorkompilierte CLASS-Datei vor. Es verwendet die
|
||||
System.events des Java 1.1 und läuft somit also nicht auf älteren Versionen.
|
||||
|
||||
Um es auszuführen, einfach folgendes am Prompt eingeben (sofern ein Java-
|
||||
Development-Kit der Version 1.1.? korrekt installiert wurde):
|
||||
|
||||
JAVA hangman
|
||||
|
||||
Danach sollte Hangman starten und Sie können loslegen ;-).
|
||||
|
||||
Die Spielregeln sind ganz einfach: Sie müssen das Wort durch eingeben einzelner
|
||||
Buchstaben vervollständigen. Dabei dürfen Sie 5 Mal falsch tippen.
|
||||
|
||||
Die zu erratenen Wörter werden aus der Datei HANGMAN.DAT gelesen. Sie können
|
||||
Sie beliebig erweitern - müssen allerdings die Hinweise beachten, die in der
|
||||
o.g. Datei stehen.
|
||||
|
||||
Das soll's auch schon gewesen sein - ich finde, mehr gibt es zu Hangman nicht
|
||||
zu sagen =).
|
||||
|
||||
Viel Spaß mit diesem Programm!
|
||||
|
||||
================================================================================
|
||||
|
||||
HISTORY
|
||||
-------
|
||||
|
||||
|
||||
1.9 [08.12.1998/19:29.52]
|
||||
-mehr Statistik am Programmende
|
||||
|
||||
1.8 [08.12.1998/19:05.35]
|
||||
-Wörterwahl-Routine verbessert - jetzt ist unbegrenzte Zahl an Wörtern in
|
||||
der Datendatei möglich
|
||||
-mehrere Kommentare hinzugefügt
|
||||
|
||||
1.7 [03.12.1998/20:18.42]
|
||||
-Vor-Version ... sozusagen erste BETA
|
||||
|
||||
1.6 [03.12.1998/19:45.14]
|
||||
-Grafiken eingefügt
|
||||
|
||||
1.5 [02.12.1998/15:42.09]
|
||||
-Fehlererkennung verbessert
|
||||
-kleinere Bugs mit Windows-Java beseitigt
|
||||
|
||||
1.4 [01.12.1998/19:34.33]
|
||||
-Anzeige der Vorkommnisse der Buchstaben im Wort
|
||||
|
||||
1.3 [01.12.1998/19:12.21]
|
||||
-Eingegebene Buchstaben werden jetzt in Großb. konvertiert
|
||||
-außerdem: einige Kommentare hinzugefügt
|
||||
|
||||
1.2 [01.12.1998/18:19.40]
|
||||
-Tastatureingabe mit Anzeige schon gedrückter Tasten hinzugefügt
|
||||
|
||||
1.1 [01.12.1998/17:52.38]
|
||||
-Ursprungsversion: erster Versuch
|
||||
|
||||
================================================================================
|
139
hangman.dat
Normal file
@ -0,0 +1,139 @@
|
||||
# ## ## ### # # #### # # ### # # #### ### #####
|
||||
# ## ## ## ## ## # ## ## ## ## ## ## # ## ## ## ## #
|
||||
# ##### ##### # # # ## ## # # # ##### # # # ## ## ##### #
|
||||
# ## ## ## ## # ## ## ## # # # ## ## # ## ## ## ## ## ## #
|
||||
# ## ## ## ## # # #### # # ## ## # # ## #### ## ## #
|
||||
#
|
||||
#############################################################################
|
||||
# Hier stehen die Wörter, die erraten werden sollen können untereinander #
|
||||
# Jede Zeile, die mit einer Raute (#) beginnt, gilt als Kommentar #
|
||||
# WICHTIG: Hinter dem letzten Wort sollte mindestens ein LF (LineFeed) sein #
|
||||
# und es dürfen keine Leerzeilen in dieser Datei stehen #
|
||||
# #
|
||||
# Format der Einträge: Thema: Wort #
|
||||
# Beispiel: Auto: Lenkrad #
|
||||
# #
|
||||
# Es ist wichtig, daß hinter dem Doppelpunkt ein Leerzeichen ist!! #
|
||||
#############################################################################
|
||||
die Sinne des Menschen: Blödsinn
|
||||
die Sinne des Menschen: Stumpfsinn
|
||||
# Hier ist z.B. ein Kommentar
|
||||
die Sinne des Menschen: Wahnsinn
|
||||
# Und hier noch einer!
|
||||
Linguistik: Wort
|
||||
Fremdwort: Extension
|
||||
Regierungsform: Diktatur
|
||||
Fremdwort: Korrespondenz
|
||||
Fremdwort: Interaktion
|
||||
Fremdwort: Bilabidarekorrelationsdivergenz
|
||||
Pflanze: Rose
|
||||
Pflanze: Blume
|
||||
Computer: Thermotransferdrucker
|
||||
Krankheit: Hyperventilation
|
||||
Büroalltag: Kaffeetasse
|
||||
Getränkezeugs: Teebeutel
|
||||
DJ-Zubehör: Mischpult
|
||||
Schule: Lehrerkonferenz
|
||||
Schule: Stundenplan
|
||||
Schule: Kursfahrt
|
||||
Computer: Computer
|
||||
Heimelektronik: Radioapparat
|
||||
Kommunikation: Telefon
|
||||
Kommunikation: Handy
|
||||
Spiel: Sackhüpfen
|
||||
Fremdwort: Subliminationsverfahren
|
||||
Computer: Linux
|
||||
Naturereignis: Sonnenfinsternis
|
||||
Naturereignis: Mondfinsternis
|
||||
Büroalltag: Kaffeeklatsch
|
||||
Auto: Volkswagen
|
||||
Heimelektronik: Satellitenempfangsanlage
|
||||
Heimelektronik: Kassettenrekorder
|
||||
Arbeitsgerät: Schreibtisch
|
||||
Arbeitsgerätezubehör: Schreibtischunterlage
|
||||
Computer: Tastatur
|
||||
Computer: Maus
|
||||
Computer: Monitor
|
||||
Heimelektronik: Fernseher
|
||||
Heimelektronik: Antenne
|
||||
Computer: Diskette
|
||||
Computer: Microsoft
|
||||
Tier: Hase
|
||||
Tier: Rentier
|
||||
Gerücht: Weihnachtsmann
|
||||
Fest: Weihnachtsmarkt
|
||||
Fest: Weihnachtsmarktschreier
|
||||
Fest: Weihnachtsmarktschreierin
|
||||
Computer: Fünfeinviertelzolldiskette
|
||||
Computer: Dreieinhalbzolldiskette
|
||||
Computer: Notebook
|
||||
Fremdwort: Bibliographie
|
||||
Schriftart: Calligraphie
|
||||
Regierungsform: Aristokratie
|
||||
Fremdwörterlexikon: Duden
|
||||
Heimelektronik: Radiowecker
|
||||
nützliche Erfindung: Alarmanlage
|
||||
Naturereignis: Schneefall
|
||||
Ort: Nordpol
|
||||
Ort: Südpol
|
||||
Ring um die Erde: Äquator
|
||||
Laster: Telefongebühren
|
||||
nützliche Erfindung: Notizzettel
|
||||
nützliche Erfindung: Papierzettel
|
||||
Zellstoffprodukt: Papierblock
|
||||
nützliche Erfindung: Hefter
|
||||
nützliche Erfindung: Klammeraffe
|
||||
Tier: Pawian
|
||||
Tier: Schimpanse
|
||||
Tier: Giraffe
|
||||
Pflanze: Venusfliegenfalle
|
||||
Computer: Hardwareproblem
|
||||
Computer: Computerfehler
|
||||
nützliche Erfindung: Tischdecke
|
||||
Akkustikübertrager: Lautsprecher
|
||||
Fernsehen: Liveübertragung
|
||||
Naturereignis: Eisglätte
|
||||
öffentliche Einrichtung: Restaurant
|
||||
Heimelektronik: Funkuhr
|
||||
nützliche Erfindung: Tischlampe
|
||||
Licht: Deckenbeleuchtung
|
||||
nützliche Erfindung: Türschloß
|
||||
Auto: Karosserie
|
||||
Landwirtschaft: Mistgabel
|
||||
Landwirtschaft: Heuhaufen
|
||||
Landwirtschaft: Pferdeapfel
|
||||
Landwirtschaft: Pferdestall
|
||||
Kinderspass: Kinderschaukel
|
||||
ist meist offen: Hosenstall
|
||||
nützliche Erfindung: Reißverschluß
|
||||
Computer: Laserdrucker
|
||||
Flugzeug: Hubschrauber
|
||||
Flugzeug: Helicopter
|
||||
Tonträger: Langspielplatte
|
||||
Tonträger: Musikkassette
|
||||
Ort: Toilette
|
||||
Ort: Schwarzwald
|
||||
Ort: Liechtenstein
|
||||
Ort: Nowosibirsk
|
||||
Fahrzeug: UFO
|
||||
Redewendung abgekürzt: UPG
|
||||
Alltagsbedarf: Armbanduhr
|
||||
KFZ: Motorblock
|
||||
KFZ: Karosserie
|
||||
KFZ: Krause
|
||||
Pflanze: Fettkraut
|
||||
Pflanze: Liane
|
||||
Pflanze: Gras
|
||||
Kinderfreude: Überraschungsei
|
||||
Elektronik: Laserdiode
|
||||
Unterhaltung: Dartscheibe
|
||||
Horror / Angst: Beierlein
|
||||
Horror / Angst: Vampir
|
||||
Horror / Angst: Verkehrsunfall
|
||||
KFZ: Stau
|
||||
Horror / Angst: Atomunfall
|
||||
Horror / Angst: GAU
|
||||
Computer: DAU
|
||||
Computer: Festplattencrash
|
||||
eklig: MatthiasKlein
|
||||
Tier: Grizzlybär
|
45
hangman.java
@ -3,7 +3,7 @@ HANGMAN FOR JAVA
|
||||
(c)1998/99 by Markus Birth <Robo.Cop(a)gmx.net>
|
||||
|
||||
This is the first program I wrote in Java. Thanks to
|
||||
Mr. Fröbel for making me learning Java so quick (We had to
|
||||
Mr. Fröbel for making me learning Java so quick (We had to
|
||||
finish our projects for the computer science lessons.)
|
||||
|
||||
Things used for the making of this:
|
||||
@ -17,8 +17,8 @@ import java.applet.*;
|
||||
import java.awt.*;
|
||||
import java.awt.event.*;
|
||||
import java.lang.Character.*;
|
||||
import java.math.*; // eigentlich nur für die eine Zufallszahl
|
||||
import java.io.*; // für Dateioperationen ("Tupfer, Schere ...")
|
||||
import java.math.*; // eigentlich nur für die eine Zufallszahl
|
||||
import java.io.*; // für Dateioperationen ("Tupfer, Schere ...")
|
||||
|
||||
public class hangman extends Frame {
|
||||
// Globale Variablen
|
||||
@ -26,13 +26,13 @@ public class hangman extends Frame {
|
||||
final int SX=50, SY=50;
|
||||
RandomAccessFile file;
|
||||
String myword=null; // Wort: was es mal werden soll
|
||||
String topic=null; // String für das Thema des Begriffes
|
||||
char xyword[]; // Wort: xy-ungelöst
|
||||
String topic=null; // String für das Thema des Begriffes
|
||||
char xyword[]; // Wort: xy-ungelöst
|
||||
char probed[];
|
||||
char notprobed[];
|
||||
char alphab[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N',
|
||||
'O','P','Q','R','S','T','U','V','W','X','Y','Z',
|
||||
'Ä','Ö','Ü','ß'};
|
||||
'Ä','Ö','Ü','ß'};
|
||||
int mistakes=0; // Anzahl Fehler (MIST!-akes)
|
||||
int tries=0; // Anzahl Versuche
|
||||
KL CONTROL;
|
||||
@ -41,17 +41,17 @@ public class hangman extends Frame {
|
||||
public hangman() { // Hauptroutine
|
||||
String stmp=new String();
|
||||
try {
|
||||
int wordcount=0; // neuer Integer für Wörterzahl
|
||||
int wordseek=0; // ~ für Zielwort-Position
|
||||
int wordcount=0; // neuer Integer für Wörterzahl
|
||||
int wordseek=0; // ~ für Zielwort-Position
|
||||
// und jetzt machen wir die Datei auf: "Schwester: Skalpell!"
|
||||
RandomAccessFile f=new RandomAccessFile("hangman.dat","r");
|
||||
while ((stmp=f.readLine())!=null) { // solange das, was wir lesen, nicht nichts ist ...
|
||||
if (stmp.charAt(0) != '#') { // und da auch kein "#" am Anfang klebt ...
|
||||
wordcount++; // zähle es als Wort.
|
||||
wordcount++; // zähle es als Wort.
|
||||
}
|
||||
}
|
||||
if (wordcount==0) {
|
||||
System.out.println("ACHTUNG! In der Datendatei sind keine gültigen Wörter zu finden.");
|
||||
System.out.println("ACHTUNG! In der Datendatei sind keine gültigen Wörter zu finden.");
|
||||
System.exit(0);
|
||||
}
|
||||
System.out.println("Woerter in Datendatei: "+wordcount); // Statusbericht
|
||||
@ -68,20 +68,21 @@ public class hangman extends Frame {
|
||||
if (stmp.indexOf(": ")!=-1) {
|
||||
topic=stmp.substring(0,stmp.indexOf(": "));
|
||||
myword=stmp.substring(stmp.indexOf(": ")+2,stmp.length());
|
||||
System.out.print(" Thema: \""+topic+"\"");
|
||||
} else myword=stmp;
|
||||
break; // und raus hier!
|
||||
}
|
||||
}
|
||||
}
|
||||
f.close(); // Datei wieder zunähen
|
||||
f.close(); // Datei wieder zunähen
|
||||
}
|
||||
catch(IOException ioe) { // Falls doch mal ein Fehler auftreten sollte ...
|
||||
System.out.println("IOException: "+ioe.toString()); // Fehlermeldung und tschüß!
|
||||
System.out.println("\n\nFehler beim Bearbeiten der Datendatei. Stellen Sie sicher, daß die Datei HANGMAN.DAT auch existiert und lesbar ist.");
|
||||
System.out.println("IOException: "+ioe.toString()); // Fehlermeldung und tschüß!
|
||||
System.out.println("\n\nFehler beim Bearbeiten der Datendatei. Stellen Sie sicher, daß die Datei HANGMAN.DAT auch existiert und lesbar ist.");
|
||||
System.exit(0);
|
||||
}
|
||||
CONTROL=new KL(); // neuer KeyListener: CONTROL
|
||||
addKeyListener(CONTROL); // hinzufügen
|
||||
addKeyListener(CONTROL); // hinzufügen
|
||||
xyword=new char[myword.length()]; // array erstellen
|
||||
for (int i=0;i<myword.length();i++) { // array initialisieren
|
||||
xyword[i]='_';
|
||||
@ -99,7 +100,7 @@ public class hangman extends Frame {
|
||||
// g.drawString("Wort: "+myword,40,200);
|
||||
// g.drawString("Zeichen: "+c,40,230);
|
||||
g.setColor(Color.black); // Farbe auf SCHWARZ
|
||||
g.fillRect(0,0,WND_B,WND_H); // Fenster schön SCHWARZ machen!
|
||||
g.fillRect(0,0,WND_B,WND_H); // Fenster schön SCHWARZ machen!
|
||||
g.setColor(Color.white); // und Farbe auf GELB setzen
|
||||
g.drawString("Wort: "+new String(xyword),40,215);
|
||||
g.setColor(Color.red);
|
||||
@ -117,7 +118,7 @@ public class hangman extends Frame {
|
||||
}
|
||||
|
||||
public void UpdateHangMan(Graphics g) {
|
||||
Toolkit tk=Toolkit.getDefaultToolkit(); // Toolkit (für Grafikdatei-Support) zuweisen
|
||||
Toolkit tk=Toolkit.getDefaultToolkit(); // Toolkit (für Grafikdatei-Support) zuweisen
|
||||
|
||||
switch(mistakes) { // CASE mistakes of ...
|
||||
case 6:
|
||||
@ -161,17 +162,17 @@ public class hangman extends Frame {
|
||||
public void keyReleased(KeyEvent e) { }
|
||||
public void keyTyped(KeyEvent e) {
|
||||
c=e.getKeyChar(); // Taste holen
|
||||
c=Character.toUpperCase(c); // Buchstabe(?) evtl. GROß machen
|
||||
c=Character.toUpperCase(c); // Buchstabe(?) evtl. GROß machen
|
||||
int i; // Wir brauchen bald ein Iiiiihh
|
||||
boolean status=false; // Booleans
|
||||
boolean check=false; // für versch. Status-Werte
|
||||
boolean check=false; // für versch. Status-Werte
|
||||
for (i=0;i<alphab.length;i++) {
|
||||
if (c==alphab[i]) { // wenn c = einer der Buchst. des Alphabets ist ...
|
||||
if (probed[i]!=c) probed[i]=c; else check=true; // und der auch noch nicht vorher getippt wurde, dann ... u.s.w.
|
||||
if (notprobed[i]==c) notprobed[i]='-';
|
||||
}
|
||||
}
|
||||
int underscores=0; // Integer für Anzahl der "_" im bisher gepuzzleten Wort
|
||||
int underscores=0; // Integer für Anzahl der "_" im bisher gepuzzleten Wort
|
||||
for (i=0;i<myword.length();i++) {
|
||||
if (c==Character.toUpperCase(myword.charAt(i))) {
|
||||
xyword[i]=myword.charAt(i);
|
||||
@ -188,7 +189,7 @@ public class hangman extends Frame {
|
||||
System.out.println("Anzahl versch. Buchstaben im Wort: "+(tries-mistakes));
|
||||
System.out.println("Trefferquote: "+(((tries-mistakes)*100)/tries)+"%");
|
||||
}
|
||||
if (underscores==0) mistakes=-1; // wenn keine fehlenden Zeichen im Lösungswort ...
|
||||
if (underscores==0) mistakes=-1; // wenn keine fehlenden Zeichen im Lösungswort ...
|
||||
if (mistakes>=6) mistakes=6; // wenn mehr als 5 Fehler ...
|
||||
repaint(); // Grafikfenster neuzeichnen
|
||||
}
|
||||
@ -196,14 +197,14 @@ public class hangman extends Frame {
|
||||
|
||||
public static void main(String args[]) {
|
||||
Frame frame=new hangman(); // neues Fenster
|
||||
frame.addWindowListener(new WindowAdapter() { // WindowListener hinzufügen
|
||||
frame.addWindowListener(new WindowAdapter() { // WindowListener hinzufügen
|
||||
public void windowClosing(WindowEvent e) { // wenn auf X geklickt:
|
||||
System.out.println();
|
||||
System.exit(0); // Programm beenden.
|
||||
}
|
||||
});
|
||||
frame.setTitle("HangMan for Java - \u00a91998 by Markus Birth"); // Titel setzen
|
||||
frame.setSize(WND_B, WND_H); // Größe setzen
|
||||
frame.setSize(WND_B, WND_H); // Größe setzen
|
||||
frame.show(); // und ab auf den Bildschirm damit!
|
||||
/* Pictures
|
||||
Image pic;
|
||||
|
111
hangman_notopics.dat
Normal file
@ -0,0 +1,111 @@
|
||||
# ## ## ### # # #### # # ### # # #### ### #####
|
||||
# ## ## ## ## ## # ## ## ## ## ## ## # ## ## ## ## #
|
||||
# ##### ##### # # # ## ## # # # ##### # # # ## ## ##### #
|
||||
# ## ## ## ## # ## ## ## # # # ## ## # ## ## ## ## ## ## #
|
||||
# ## ## ## ## # # #### # # ## ## # # ## #### ## ## #
|
||||
#
|
||||
#############################################################################
|
||||
# Hier stehen die Wörter, die erraten werden sollen können untereinander #
|
||||
# Jede Zeile, die mit einer Raute (#) beginnt, gilt als Kommentar #
|
||||
# WICHTIG: Hinter dem letzten Wort sollte mindestens ein LF (LineFeed) sein #
|
||||
# und es dürfen keine Leerzeilen in dieser Datei stehen #
|
||||
#############################################################################
|
||||
# Planung: Format: Thema: Begriff
|
||||
# Beispiel: Auto: Karosserie
|
||||
Blödsinn
|
||||
Stumpfsinn
|
||||
# Hier ist z.B. ein Kommentar
|
||||
Wahnsinn
|
||||
# Und hier noch einer!
|
||||
Wort
|
||||
Extension
|
||||
Diktatur
|
||||
Korrespondenz
|
||||
Interaktion
|
||||
Bilabidarekorrelationsdivergenz
|
||||
Rose
|
||||
Blume
|
||||
Thermotransferdrucker
|
||||
Hyperventilation
|
||||
Kaffeetasse
|
||||
Teebeutel
|
||||
Mischpult
|
||||
Lehrerkonferenz
|
||||
Stundenplan
|
||||
Kursfahrt
|
||||
Computer
|
||||
Radioapparat
|
||||
Telefon
|
||||
Handy
|
||||
Sackhüpfen
|
||||
Subliminationsverfahren
|
||||
Linux
|
||||
Sonnenfinsternis
|
||||
Mondfinsternis
|
||||
Kaffeeklatsch
|
||||
Volkswagen
|
||||
Satellitenempfangsanlage
|
||||
Kassettenrekorder
|
||||
Schreibtisch
|
||||
Schreibtischunterlage
|
||||
Tastatur
|
||||
Maus
|
||||
Monitor
|
||||
Fernseher
|
||||
Antenne
|
||||
Diskette
|
||||
Microsoft
|
||||
Hase
|
||||
Rentier
|
||||
Weihnachtsmann
|
||||
Weihnachtsmarkt
|
||||
Weihnachtsmarktschreier
|
||||
Weihnachtsmarktschreierin
|
||||
Fünfeinviertelzolldiskette
|
||||
Dreieinhalbzolldiskette
|
||||
Notebook
|
||||
Bibliographie
|
||||
Calligraphie
|
||||
Aristokratie
|
||||
Duden
|
||||
Radiowecker
|
||||
Alarmanlage
|
||||
Schneefall
|
||||
Nordpol
|
||||
Südpol
|
||||
Äquator
|
||||
Telefongebühren
|
||||
Notizzettel
|
||||
Papierzettel
|
||||
Papierblock
|
||||
Hefter
|
||||
Klammeraffe
|
||||
Pawian
|
||||
Schimpanse
|
||||
Giraffe
|
||||
Venusfliegenfalle
|
||||
Hardwareproblem
|
||||
Computerfehler
|
||||
Tischdecke
|
||||
Lautsprecher
|
||||
Liveübertragung
|
||||
Eisglätte
|
||||
Restaurant
|
||||
Funkuhr
|
||||
Tischlampe
|
||||
Deckenbeleuchtung
|
||||
Türschloß
|
||||
Karosserie
|
||||
Mistgabel
|
||||
Heuhaufen
|
||||
Pferdeapfel
|
||||
Pferdestall
|
||||
Alarmanlage
|
||||
Kinderschaukel
|
||||
Hosenstall
|
||||
Reißverschluß
|
||||
Laserdrucker
|
||||
Hubschrauber
|
||||
Helicopter
|
||||
Langspielplatte
|
||||
Musikkassette
|
BIN
images/hm.gif
Normal file
After Width: | Height: | Size: 830 B |
BIN
images/hm0.gif
Normal file
After Width: | Height: | Size: 399 B |
BIN
images/hm1.gif
Normal file
After Width: | Height: | Size: 445 B |
BIN
images/hm2.gif
Normal file
After Width: | Height: | Size: 599 B |
BIN
images/hm3.gif
Normal file
After Width: | Height: | Size: 614 B |
BIN
images/hm4.gif
Normal file
After Width: | Height: | Size: 626 B |
BIN
images/hm5.gif
Normal file
After Width: | Height: | Size: 2.4 KiB |
BIN
images/hm6.gif
Normal file
After Width: | Height: | Size: 6.6 KiB |