import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
//import javax.swing.*;
import java.util.*;
/**
*
* Beschreibung.
*
* @version 1.0 vom 10.07.2005
* @author Esco
*/
public class zeichnen_temp extends Frame {
// Anfang Variablen
int x1;
int y1;
int g_anzahl;
int g_kastengroesse;
boolean ma = true;
// Ende Variablen
public Frame zeichnen2(String title) {
// Frame-Initialisierung
super(title);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent evt) { System.exit(0); } });
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
setLocation( 0, 0 );
setSize(d);
setLayout(new BorderLayout());
setResizable( false ) ;
// Anfang Komponenten
// Ende Komponenten
setVisible(true);
//return title;
}
// Anfang Ereignisprozeduren
public byte[][] erstellearray(byte[][]array){
//if(ma == true){
byte season = 0; //0 = spring; 10 = summer; 20 = fall; 30 = winter
//ma = false;
//return anArray;
//return season;
//}
// ############## Hier werden nun die Movements ausgefürt
//Untersuche das Ganze Feld
for (int xd1 = 0; xd1 < anArray.length; xd1++)
{
for (int yd1 = 0; yd1 < anArray.length; yd1++)
{
//jetzt jedes Mistvieh abfragen
byte einfach = anArray[xd1][yd1];
int feld = (xd1 * (anArray.length)) + yd1 + 1;
int gesammt = (anArray.length) * (anArray.length);
System.out.println("Wir sind jetzt beim Viech " + feld + " von " + gesammt + ". Inhalt = " + einfach);
//0-5-25-45-100
if(einfach >= 0 && einfach <= 5)
{
// Viecher
//überprüfe pos
System.out.println("Feld hat die Eigenschafft Tier");
switch(einfach) {
case 0:
System.out.print(" der Rasse 1."); //KID
// If it's winter(39) you get adult
if (season == 39)
{
anArray[xd1][yd1] = 1;
break;
}
// if its spring, you start to eat
// in summer you continue
// in fall you countinue
// in winter too ;-)
//look where to eat
if (season < 39)
{
//search for food
byte trys = 0;
while(trys < 8)
{
switch(randomn(7)+1)
{
case 1:
if (anArray[xd1-1][yd1+1] > 25 && anArray[xd1-1][yd1+1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1-1][yd1+1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 2:
if (anArray[xd1][yd1+1] > 25 && anArray[xd1][yd1+1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1][yd1+1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 3:
if (anArray[xd1+1][yd1+1] > 25 && anArray[xd1+1][yd1+1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1+1][yd1+1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 4:
if (anArray[xd1-1][yd1] > 25 && anArray[xd1-1][yd1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1-1][yd1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 5:
if (anArray[xd1+1][yd1] > 25 && anArray[xd1+1][yd1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1+1][yd1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 6:
if (anArray[xd1-1][yd1-1] > 25 && anArray[xd1-1][yd1-1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1-1][yd1-1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 7:
if (anArray[xd1][yd1-1] > 25 && anArray[xd1][yd1-1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1][yd1-1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
case 8:
if (anArray[xd1+1][yd1-1] > 25 && anArray[xd1+1][yd1-1] <= 45)
{
anArray[xd1][yd1] = (byte) (randomn(54) + 46);
anArray[xd1+1][yd1-1] = 0;
trys = 9;
}
trys = (byte) (trys + 1);
break;
}
}
break;
}
case 1:
System.out.print(" der Rasse 2."); //ADULT
// If it's winter(39) die
//if its spring, you start to spawn
// in summer you continue
// in fall you countinue
// in winter too ;-)
break;
case 2:
System.out.print(" der Rasse 3.");
break;
case 3:
System.out.print(" der Rasse 4.");
break;
case 4:
System.out.print(" der Rasse 5.");
break;
case 5:
System.out.print(" der Rasse 6.");
break;
default:
System.out.print(" ## ERROR! ## (keine Rasse gefunden!)");
}
}
if(einfach > 5 && einfach <= 25)
{
// Hinderniss
// -> Das Hinderniss bleibt stehen -> Also gar nichts
System.out.print("Feld hat die Eigenschafft Hinderniss");
}
if(einfach > 25 && einfach <= 45)
{
// Essen
// -> Kann gegessen werden. Muss aber nichts dran gemacht werden
System.out.print("Feld hat die Eigenschafft Nahrung");
}
if(einfach > 45 && einfach <= 99)
{
// Untergrund
// Tja da passiert erst recht nichts
System.out.print("Feld hat die Eigenschafft Untergrund");
// -> Wächst im spring(<10) nach!
if (season > 10)
{
anArray[xd1][yd1] = (byte) (randomn(20) + 26);
}
}
}
}
season++;
if (season == 40)
{
season = 0;
}
//return anArray;
}
static byte randomn(int range )
{
byte sum = 0;
byte count = 1;
byte runden = 0;
for (int m=0; m<count; m++)
{
sum += (int)(Math.random() * range);
}
runden = (byte) Math.round(sum/count);
return runden;
}
public void paint(Graphics g ){
int frameHeight = getSize().height;
int frameWidth = getSize().width;
byte[][] anArray;
//anArray = erstellearray();
g_anzahl = anArray.length;
g_kastengroesse = (frameHeight-65)/g_anzahl;
Color BROWN = new Color(98, 49, 0);
Color GRAS = new Color(78, 207, 63);
Color SAND = new Color(203, 206, 142);
Color EATGRAS = new Color(26, 131, 7);
Color EATSHIT = new Color(133, 31, 5);
Color TREE = new Color(92, 82, 46);
Color STONE = new Color(93, 93, 93);
Color VIEH1 = new Color(255, 255, 255);
Color VIEH1_kind = new Color(250, 250, 250);
g.setFont( new Font( "Serif", Font.BOLD, 20 ) );
if(x1 == 0){
x1 = 20;
}
if(y1 == 0){
y1 = 65;
}
int g_groesse_int = anArray.length;
g.drawString( "DG Soft - Lebenssimulator " + g_groesse_int + " x " + g_groesse_int, (frameWidth/2)-250,55);
for (int y = 0; y < anArray.length; y++){
for (int x = 0; x < anArray.length; x++){
//boolean hinderniss = false;
if(anArray[x][y] <= 5){ // Viecher
g.setColor( VIEH1 );
}else if(anArray[x][y] == 0){ // Viecher 1 Kind
g.setColor( VIEH1_kind );
}
else if(anArray[x][y] <= 25){ // Hinderniss
g.setColor( TREE );
//hinderniss = true;
}else if(anArray[x][y] <= 45){ // Essen
g.setColor( EATGRAS );
}else if(anArray[x][y] <= 99){ // Untergrund
g.setColor( GRAS );
}
g.fillRect( x1, y1, g_kastengroesse, g_kastengroesse );
g.setColor( Color.BLACK );
g.setFont( new Font( "Serif", Font.BOLD, (g_kastengroesse/3) ) );
g.drawString( "" + anArray[x][y], (x1 + (g_kastengroesse/3)),(y1 + (g_kastengroesse/2)));
g.setFont( new Font( "Serif", Font.BOLD, 20 ) );
//if(hinderniss == true){
//g.drawLine( x1, y1, (x1 + g_kastengroesse), (y1 + g_kastengroesse));
//g.drawLine( x1, (y1 + g_kastengroesse), (x1 + g_kastengroesse),y1 );
//hinderniss = false;
//}
g.drawRect( x1, y1, g_kastengroesse, g_kastengroesse );
x1 = x1 + g_kastengroesse;
}
x1 = 20;
y1 = y1 + g_kastengroesse;
}
//LEGENDE->
int legendenabstand = frameHeight+(frameHeight*5/100);
g.drawString( "Legende", legendenabstand,55);
g.drawRect( (frameHeight-45), 65, (frameWidth-frameHeight) , (y1-600) );
//Eintrag 1
g.setColor( VIEH1 );
g.fillRect( (frameHeight-40), 69, 30, 30 );
g.setColor( Color.BLACK );
g.drawRect( (frameHeight-40), 69, 30, 30 );
g.setFont( new Font( "Serif", Font.BOLD, (15) ) );
g.drawString( "Tier", (frameHeight-5),90);
//Eintrag 2
g.setColor( TREE );
g.fillRect( (frameHeight-40), 103, 30, 30 );
g.setColor( Color.BLACK );
g.drawRect( (frameHeight-40), 103, 30, 30 );
g.setFont( new Font( "Serif", Font.BOLD, (15) ) );
g.drawString( "Baum", (frameHeight-5),124);
//Eintrag 3
g.setColor( EATGRAS );
g.fillRect( (frameHeight-40), 137, 30, 30 );
g.setColor( Color.BLACK );
g.drawRect( (frameHeight-40), 137, 30, 30 );
g.setFont( new Font( "Serif", Font.BOLD, (15) ) );
g.drawString( "Essen", (frameHeight-5),158);
//Eintrag 4
g.setColor( GRAS );
g.fillRect( (frameHeight-40), 171, 30, 30 );
g.setColor( Color.BLACK );
g.drawRect( (frameHeight-40), 171, 30, 30 );
g.setFont( new Font( "Serif", Font.BOLD, (15) ) );
g.drawString( "Gras", (frameHeight-5),192);
//<-LEGENDE
x1 = 0;
y1 = 0;
}
// Ende Ereignisprozeduren
public static void main(String[] args){
byte[][] anArray; // declare an array of
anArray = new byte[10][10]; // create an array of
for (int x = 0; x < anArray.length; x++)
{
for (int y = 0; y < anArray.length; y++)
{
anArray[x][y] = randomn(100);
System.out.println("Here is Array[" + x + "][" + y + "] = " + anArray[x][y]);
}
}
zeichnen_temp erstellearrayObjekt = new zeichnen_temp(anArray);
zeichnen_temp zeichenObjekt = new zeichnen_temp("DG Soft - Lebenssimulator");
Timer wiederholer = new Timer();
wiederholer.schedule(new MyTimerTask(zeichenObjekt), 3000, 3000);
//return ma;
//System.exit(0);
}
}
class MyTimerTask extends TimerTask
{
Frame einFrame;
public MyTimerTask(Frame zeichenObjekt)
{
einFrame = zeichenObjekt;
}
public void run()
{
einFrame.repaint();
}
}