Archived
1
0

Fehlererkennung verbessert und einige kleinere Probleme mit Windows-Java beseitigt

This commit is contained in:
Markus Birth 1998-12-02 15:42:09 +00:00
parent f8e628dc63
commit 7efd963367

View File

@ -27,13 +27,13 @@ public class hangman extends Frame
RandomAccessFile file; RandomAccessFile file;
int maxdat=0; int maxdat=0;
String words[]; String words[];
String myword=null; String myword=null; // Wort: was es mal werden soll
char xyword[]; char xyword[]; // Wort: xy-ungelöst
char probed[]; char probed[];
char alphab[]={'A','B','C','D','E','F','G','H','I','J','K','L','M','N', 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', 'O','P','Q','R','S','T','U','V','W','X','Y','Z',
'Ä','Ö','Ü'}; 'Ä','Ö','Ü'};
int mistakes=0; int mistakes=0; // Anzahl Fehler (MIST!-akes)
KL CONTROL; KL CONTROL;
char c; char c;
@ -63,11 +63,11 @@ public class hangman extends Frame
CONTROL=new KL(); CONTROL=new KL();
addKeyListener(CONTROL); addKeyListener(CONTROL);
xyword=new char[myword.length()]; xyword=new char[myword.length()];
for (int i=1;i<myword.length();i++) { for (int i=0;i<myword.length();i++) {
xyword[i]='_'; xyword[i]='_';
} }
probed=new char[29]; probed=new char[29];
for (int i=1;i<29;i++) { for (int i=0;i<29;i++) {
probed[i]='-'; probed[i]='-';
} }
} }
@ -78,34 +78,53 @@ public class hangman extends Frame
g.fillRect(0,0,WND_B,WND_H); g.fillRect(0,0,WND_B,WND_H);
g.setColor(Color.yellow); g.setColor(Color.yellow);
// g.drawString("Datensaetze: "+maxdat,40,350); // g.drawString("Datensaetze: "+maxdat,40,350);
g.drawString("Wort: "+myword,40,220); // g.drawString("Wort: "+myword,40,200);
// g.drawString("Zeichen: "+c,40,230); // g.drawString("Zeichen: "+c,40,230);
g.drawString("Wort: "+new String(xyword),40,230); g.drawString("Wort: "+new String(xyword),40,215);
g.drawString("alpha: "+new String(probed),40,250); g.drawString("alpha: "+new String(probed),40,260);
g.drawString("mist: "+mistakes,40,230);
} }
class KL implements KeyListener class KL implements KeyListener
{ {
public void keyPressed(KeyEvent e) {} public void keyPressed(KeyEvent e) {}
public void keyReleased(KeyEvent e) {} public void keyReleased(KeyEvent e) {}
public void keyTyped(KeyEvent e) public void keyTyped(KeyEvent e)
{ {
c=e.getKeyChar(); c=e.getKeyChar();
c=java.lang.Character.toUpperCase(c); c=Character.toUpperCase(c);
int i; int i;
for (i=0;i<29;i++) { boolean status=false;
if (c==alphab[i]) { boolean check=false;
probed[i]=c; for (i=0;i<29;i++) {
if (c==alphab[i]) {
if (probed[i]!=c) probed[i]=c; else check=true;
}
}
int underscores=0;
for (i=0;i<myword.length();i++) {
if (c==Character.toUpperCase(myword.charAt(i))) {
xyword[i]=myword.charAt(i);
status=true;
}
if (xyword[i]=='_') underscores++;
}
if (!status && !check) { mistakes++; }
if (underscores==0) {
myword="RICHTIG!";
repaint();
System.out.println("Sie haben gewonnen!");
System.exit(0);
}
if (mistakes>=6) {
myword="VERLOREN!";
repaint();
System.out.println("Schön, wie sie da am Galgen baumeln ...");
System.exit(0);
}
repaint();
} }
}
for (i=0;i<myword.length();i++) {
if (c==java.lang.Character.toUpperCase(myword.charAt(i))) {
xyword[i]=myword.charAt(i);
}
}
repaint();
}
} }
public static void main(String args[]) public static void main(String args[])