import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class HangmanListener extends hangman implements ActionListener {
public Button Enter;
public TextField Letter;
public HangmanListener(Button B)/>{
Enter = b;
}
public void actionPerformed(ActionEvent e){
Button b = (Button)e.getSource();
if (e.getSource() == B)/>{
processTurn();
Letter.setText("");
repaint();
}
}
}
this is the main(second class)....the code below is shortened a little to save space. Im just showing the important code.
public class hangman extends Applet {//implements ActionListener {
static final int hung = 11;
public int errors;
public String message;
public String information;
public String rword;
public StringBuffer gword;
public Button Enter;
public TextField Letter;
Image background;
public void init() {
background = getImage(getCodeBase(),"nightsky.png");
Letter = new TextField();
Enter = new Button("Enter");
//HangmanListener listener = new HangmanListener(Enter);
add(new Label("Pick a letter:"));
add(Letter);
add(Enter);
// Enter.addActionListener(listener);
createGame();
}
public void createGame(){
errors = 0;
String str = "school|java|programming|science|compute…
String[] temp;
String delimiter = "\\|";
temp = str.split(delimiter);
Random randomGenerator = new Random();
int randomInt = randomGenerator.nextInt(temp.length);
rword = new String(temp[randomInt]);
char positions[] = new char[rword.length()];
for (int i = 0; i < rword.length(); i++) {
positions[i] = '-';
}
String s = new String(positions);
gword = new StringBuffer(s);
Letter.setText("");
message="";
information = "";
repaint();
}
public void paint(Graphics g) {
super.paint(g);
g.drawImage(background, 0, 156, Color.green, Enter);
int baseY = 350;
g.setColor(Color.lightGray);
g.drawRect(0, baseY,400,baseY);
g.fillRect(0, baseY,400,baseY);
g.setColor(Color.darkGray);
//g.drawRect(250,50,125,50);
//g.fillRect(250,50,125,50);
if (errors > 0){
g.drawLine(125,baseY,125,baseY-100);
g.drawLine(123,baseY,123,baseY-100);
}
if(ect.....................)
g.drawString( message, 60, baseY+25 );
g.drawString( information, 25, baseY+45 );
g.drawString( new String (gword), 110, 60);
}
public void listener() {
HangmanListener listener = new HangmanListener(Enter);
Enter.addActionListener(listener);
}
protected void processTurn(){
String s, t;
char a;
s = Letter.getText();
a = s.charAt(0);
if (!Character.isLetter(a)){
message="Letters only";
return;
}
if (s.length()>1){
message="Enter 1 letter only";
return;
}
t = new String(gword);
if (t.indexOf(s) != -1){
JOptionPane.showMessageDialog(null, "LETTER USED ALREADY");
return;
}
if (rword.indexOf(s) == -1){
message="";
errors++;
if (errors == hung){
JOptionPane.showMessageDialog(null, "YOU LOST!");
}
return;
}
for (int i = 0; i < rword.length(); i++){
if (rword.charAt(i) == a){
gword.setCharAt(i, a);
}
}
t = new String(gword);
if (t.indexOf('-') == -1){
JOptionPane.showMessageDialog(null, "YOU WIN!");
return;
}
message="";
repaint();
}
}

New Topic/Question
Reply


MultiQuote






|