////////////////////////////////////////
// 49104 øv.6 opg.2: 1998-10-21
//
// Regneprogram med simple opgaver

import java.applet.*;
import java.awt.*;
import java.awt.event.*;

public class Calculus extends Applet implements ActionListener
{
	// Brugerinterface komponeneter
	private TextField tResult = new TextField(4);
	private Label lNum1       = new Label("    ");
	private Label lOp         = new Label("+");
	private Label lNum2       = new Label("    ");
	private Label lEqu        = new Label("=");
	private Label lEval       = new Label();	 
	private Button bEval      = new Button("Test svar");
	private Button bNew       = new Button("Nyt Spørgsmål");
	
	// Resultat af beregning
	private int Res=0; 


	public Calculus()
	{
	}



	public String getAppletInfo()
	{
		return "Name: Calculus\r\n" +
		       "Author: Mikael med k og Rune med u!\r\n" +
		       "Created with Hard Work";
	}


	public void init()
	{
		// Set applets størrelse
    resize(320, 240);
    // Set ingen layoutmanager - styrer det hele selv
		setLayout( null); 

		// Opsæt alle komponeneters position og størrelse, og klargør evt. ActionListener
		lNum1.setBounds(10, 50, 50, 20);
		lOp.setBounds(70, 50, 20, 20);
		lNum2.setBounds(100, 50, 50, 20);
		lEqu.setBounds(160, 50, 20, 20);
		lEval.setBounds(100, 130, 150, 22);	
		tResult.setBounds(200, 50, 70, 22);
		bEval.setBounds(80, 100, 60, 22);
		bEval.addActionListener(this);
		bNew.setBounds(160, 100, 90, 22);
		bNew.addActionListener(this);
		bNew.setVisible(false);
		
		// Tilføj komponenter til applet
		add(bNew);
		add(lNum1);
		add(lOp);
		add(lNum2);
		add(lEqu);
		add(tResult);
		add(bEval);
		add(lEval);

		// Lav tilfældigt regnestykke
		setRandom();
	}

	// Generer nyt regnestykke
	public void setRandom()
	{
		int Num1 = (int) (Math.random()*100);
		int Num2 = (int) (Math.random()*100);
		int Op = (int) (Math.random()*5);

		switch (Op)
		{
		case 0: lOp.setText("+"); 
			Res = Num1 + Num2;
			break;
		case 1: lOp.setText("-");
			Res = Num1 - Num2;
			break;
		case 2: lOp.setText("*"); 
			Res = Num1 * Num2;
			break;
		case 3: lOp.setText("/"); 
			Num2 %= 20;
			if (Num2 < 2) Num2 = 2;
			Res = Num1 / Num2;
			Num1 = Num2*Res;
			break;
		case 4: lOp.setText("%"); 
			Res = Num1 % Num2;
			break;
		default: 
			break;
		}
		
		lNum1.setText(""+ Num1);
		lNum2.setText(""+ Num2);
	}

	// Knap trykket
	public void actionPerformed(ActionEvent e)
	{
		int u;
		if (e.getSource() == bEval)
		{
			try
			{
				u = Integer.parseInt(tResult.getText());
			}
			catch (NumberFormatException nfe )
			{
				u=-Res;
			}

			if (Res == u)
			{
				bNew.setVisible(true);
				bEval.setVisible(false);
				lEval.setText("Korrekt Svaret - SuperHero!");
			} 
			else
			{
				lEval.setText("Daaah! - SuperSkurk!");
			}
		}
		if (e.getSource()==bNew)
		{
			setRandom();
			bNew.setVisible(false);
			bEval.setVisible(true);
			lEval.setText("Prøv om du kan løse denne!");
		}
	}


	public void paint(Graphics g)
	{
		g.drawString("Velkommen Til Calculus - ver.0.4.3.1@", 40, 20);
	}

	public void destroy()
	{
	}
	public void start()
	{
	}
	public void stop()
	{
	}



}
