import java.awt.*; import java.applet.AudioClip; public class MathMan extends javax.swing.JApplet implements Runnable { AudioClip[] number = new AudioClip[11]; AudioClip plus; AudioClip equals; int sum, num1, num2; Thread runner; public void start() { if (runner == null) { runner = new Thread(this); runner.start(); } } public void stop() { if (runner != null) runner = null; } public void init() { equals = getAudioClip(getCodeBase(), "equals.wav"); plus = getAudioClip(getCodeBase(), "plus.wav"); for (int i = 0; i < number.length; i++) number[i] = getAudioClip(getCodeBase(), "number" + i + ".wav"); } public void run() { Thread thisThread = Thread.currentThread(); while (runner == thisThread) { sum = (int) Math.floor(Math.random() * 10 + 1); num2 = (int) Math.floor(Math.random() * sum); num1 = sum - num2; repaint(); number[num1].play(); pause(600); plus.play(); pause(600); number[num2].play(); pause(600); equals.play(); pause(600); number[sum].play(); pause(5000); } } public void paint(Graphics screen) { super.paint(screen); int width = getSize().width; int height = getSize().height; Graphics2D screen2D = (Graphics2D) screen; screen2D.setColor(Color.white); screen2D.fillRect(0, 0, width, height); screen2D.setColor(Color.black); Font dialog = new Font("Dialog", Font.BOLD, 48); screen2D.setFont(dialog); screen2D.drawString(num1 + " + " + num2 + " = " + sum, width / 2 - 100, height / 2 - 25); } private void pause(int duration) { try { Thread.sleep(duration); } catch (InterruptedException e) { } } }