Я пытаюсь создать математическую игру, в которой пользователь вводит номер вопроса (1-8), и появляется поле ввода, чтобы сохранить то, что он ввел. Я испытываю трудности с полем ввода и клавишей, любая помощь будет принята с благодарностью. Я пытаюсь создать состояние if, которое будет похоже на то, что если пользователь введет число 1, он попросит пользователя ввести правильный ответ на первый вопрос, и если пользователь поймет это правильно, он добавит точку, и, если они получат ее неправильно, будет добавить 1 смерть. Пользователь должен иметь возможность просматривать каждый вопрос только один раз.
import java.awt.KeyEventDispatcher;
import java.awt.KeyboardFocusManager;
import java.awt.event.KeyEvent;
import java.awt.*;
import java.applet.*;
import javax.swing.*;
public class Java_Math_Game extends Applet {
private static volatile boolean wPressed = false;
public static boolean isWPressed() {
synchronized (Java_Math_Game.class) {
return wPressed;
}
}
Image offScreen;
Graphics offG;
Image background;
AudioClip music;
String answer;
int lives = 3;
int score = 0;
int points = 0;
int q1 = 2400;
int answer1;
public void init() {
offScreen = createImage(500,500);
offG = offScreen.getGraphics();
background = getImage(getCodeBase(),"background1.jpg" );
MediaTracker tracker = new MediaTracker(this);
tracker.addImage(background, 0);
while(tracker.checkAll(true) != true){ }
if (tracker.isErrorAny()){
JOptionPane.showMessageDialog(null, "Trouble loading pictures.");
AudioClip music = getAudioClip(getDocumentBase(), "Soulful.wav");
music.play();
}
}
public void paint(Graphics g) {
g.drawImage(background,0,0,this);
g.setFont(new Font("TimesRoman", 1, 25));
g.drawString("Type question number to choose your question",200,30);
g.drawString("Question 1 60 x 40 = ?",20,100);
g.drawString("Question 2 10 + 830 = ?",20,300);
g.drawString("Question 3 647 - 416 = ?",20,500);
g.drawString("Question 4 10 / 2 = ?",320,100);
g.drawString("Question 5 120 / 40 = ?",320,300);
g.drawString("Question 5 400 + 800 = ?",320,500);
g.drawString("Question 6 8.3 x 8.3 = ?",620,100);
g.drawString("Question 7 123 - 123 = ?",620,300);
g.drawString("Question 8 50^2 = ?",620,500);
}
public boolean keyDown(Event e, int key) {
//Convert ASCII integer value to a String
String entered = ""+(char)key;
//Check if "d" or right arrow was pressed and change x direction
if (entered.equals("d"))
{
answer = JOptionPane.showInputDialog("Enter Answer");
answer1 = Integer.parseInt(answer);
}
return true;
}
}