public class Main {
public static void main(String[] args) {
Frame fenster = new Frame ("Lebensraum");
Button PauseButton = new Button("Ende");
Button FortsetzenButton = new Button("Weiter");
//Button keinButton = new Button("");
PauseButton.setLocation(3,25);
PauseButton.setSize(80,20);
FortsetzenButton.setLocation(83,25);
FortsetzenButton.setSize(80,20);
//keinButton.setVisible(false);
PauseButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Lebensraum.active_instance.fenster.dispose();
}
}
);
FortsetzenButton.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
Lebensraum.active_instance.Fortsetzen();
}
}
);
fenster.add(FortsetzenButton);
fenster.add(PauseButton);
//fenster.add(keinButton);
Lebensraum lebensraum = new Lebensraum(fenster,40,18,20,100);
lebensraum.MakeActive();
}
}
public class Lebensraum {
public Frame fenster = null;
public static Zelle[][] zellen = null;
public static int groesse = 0;
public int hoeheFenster = 0;
public int breiteFenster = 0;
public int zeit;
public boolean pause = true;
public static Lebensraum active_instance = null;
private int anzx;
private int anzy;
public Lebensraum(){}
public Lebensraum (Frame window, int breite_f, int hoehe_f, int groesse_z, int zeit_neu)
{
zeit=zeit_neu;
groesse = groesse_z;
breiteFenster = breite_f*groesse+6;
hoeheFenster = hoehe_f*groesse+28;
fenster = window;
fenster. setResizable (false);
fenster. setSize (breiteFenster, hoeheFenster);
fenster. setVisible (true);
fenster. setLayout (null);
fenster. setBackground (Color.white);
Canvas hintergrund = new Canvas () {
@Override
public void paint (Graphics g)
{
g. setColor (Color. lightGray);
for (int i = 0; i <= hoeheFenster; i++)
{
g. drawLine (0,i * groesse + 25, breiteFenster - 1,i * groesse + 25);
}
for (int i = 0; i <= breiteFenster; i++)
{
g. drawLine (i * groesse + 3 , 0,i * groesse + 3, hoeheFenster - 1);
}
}
};
hintergrund. setVisible (false);
hintergrund. setSize (breiteFenster, hoeheFenster);
hintergrund. setLocation (0, 0);
// fenster.add(hintergrund);
anzx = breite_f;
anzy = hoehe_f;
zellen = new Zelle[anzx][anzy];
for (int j=0;j<anzy;j++)
{
for (int i=0;i<anzx;i++)
{
zellen[i][j] = new Zelle(true,i,j,groesse);
fenster.add(zellen[i][j].anzeige);
}
}
/* //Prüfung auf Fehler
for (int j=0;j<anzy;j++)
{
for (int i=0;i<anzx;i++)
{
if (zellen[i][j] == null)
{
System.out.println("Fehler gefunden");
//zellen[i][j]=new Zelle(false,i,j,groesse);
}
}
}*/
fenster.invalidate();
fenster.repaint();
Gleiterkanone(16,5);
//Zufaellig();
}
public void MakeActive(){
active_instance = this;
}
public void Pruefung()
{
pause = false;
int done = 0;
while (done < 25) {
for (int j=0;j<anzy;j++)
{
for (int i=0;i<anzx;i++)
{
zellen[i][j].Pruefung_eins(anzx,anzy);
}
}
try {
Thread.sleep( zeit );
} catch ( InterruptedException e ) { }
for (int j=0;j<anzy;j++)
{
for (int i=0;i<anzx;i++)
{
zellen[i][j].Pruefung_zwei();
}
}
++done;
}
pause = true;
}
public void Gleiterkanone(int x_g, int y_g)
{
if (anzx >= 4+x_g && anzy >= 7+y_g)
{
zellen[x_g+3][y_g+0].Wechsel();
zellen[x_g+2][y_g+0].Wechsel();
zellen[x_g+1][y_g+1].Wechsel();
zellen[x_g+0][y_g+2].Wechsel();
zellen[x_g+0][y_g+3].Wechsel();
zellen[x_g+0][y_g+4].Wechsel();
zellen[x_g+1][y_g+5].Wechsel();
zellen[x_g+2][y_g+6].Wechsel();
zellen[x_g+3][y_g+6].Wechsel();
}
}
public void Zufaellig()
{
for (int j=0;j<anzy;j++)
{
for (int i=0;i<anzx;i++)
{
if ((int) ((Math.random()*2)+1)==1)
{
zellen[i][j].Wechsel();
}
}
}
}
public void Fortsetzen(){
if (pause == true) {
Pruefung(); }
}
}
public class Button1 extends Applet{
@Override
public void init(){
setLayout(null);
}
}