Archived
1
0

UTF-8 Konvertierung und fehlende Dateien hinzugefügt.

This commit is contained in:
Markus Birth 2013-07-12 02:23:52 +02:00
parent c6a3c2d0fa
commit 3edc26ebf4
12 changed files with 338 additions and 22 deletions

65
doc/README Normal file
View 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
View 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

View File

@ -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
View 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

Binary file not shown.

After

Width:  |  Height:  |  Size: 830 B

BIN
images/hm0.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 399 B

BIN
images/hm1.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 445 B

BIN
images/hm2.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 599 B

BIN
images/hm3.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 614 B

BIN
images/hm4.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 626 B

BIN
images/hm5.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.4 KiB

BIN
images/hm6.gif Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB