Hallo,
ich bin noch relativ unerfahren in Java und stehe vor folgendem Problem:
Ich will ein Programm für Conways Spiel des Lebens schreiben, dazu muss ich eine Funktion schreiben, die alle Nachbarn eines Index' eines 2dimensionalen Arrays zählt. Ich weiß, dass ich eine unorthodoxe Methode dazu verwendet habe, allerdings wollte ich es so einmal ausprobieren. Der Haken:
Diese Methode greift auf ein Array zu, das global deklariert und durch "Random Generator" mit boolean'schen Werten vollgestopft werden sollte, , allerdings geschieht dies erst in der main-Methode.
Wie kann also die Methode "nachbar" auf dieses erzeugte Array zugreifen? Kann man das Array global, also innerhalb der Klasse deklarieren?
	
	
	
	
	
		
	
Vielen vielen Dank für alle antworten, ich geh jetzt pennen
			
			ich bin noch relativ unerfahren in Java und stehe vor folgendem Problem:
Ich will ein Programm für Conways Spiel des Lebens schreiben, dazu muss ich eine Funktion schreiben, die alle Nachbarn eines Index' eines 2dimensionalen Arrays zählt. Ich weiß, dass ich eine unorthodoxe Methode dazu verwendet habe, allerdings wollte ich es so einmal ausprobieren. Der Haken:
Diese Methode greift auf ein Array zu, das global deklariert und durch "Random Generator" mit boolean'schen Werten vollgestopft werden sollte, , allerdings geschieht dies erst in der main-Methode.
Wie kann also die Methode "nachbar" auf dieses erzeugte Array zugreifen? Kann man das Array global, also innerhalb der Klasse deklarieren?
		Java:
	
	import java.util.Random;
public class Conway
{
	
	
	public static int nachbar(int x, int y)                           //nachbarn zählen
	{
		int anzahl = 0;
		
		
		switch (x)
		{
			case 0:
			switch (y)
			{
				case 0:                                            //links oben
				if(array[x][y+1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				if(array[x+1][y+1]) anzahl++;	
				break;
				case 9:                                            //links unten
				if(array[x][y-1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				if(array[x+1][y-1]) anzahl++;
				break;
				default: 											//links mitte
				if(array[x][y+1]) anzahl++;
				if(array[x][y-1]) anzahl++;
				if(array[x+1][y+1]) anzahl++;
				if(array[x+1][y-1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				break;				
			}
			break;
			case 9:
			switch (y)
			{
				case 0:                                            //rechts oben
				if(array[x][y+1]) anzahl++;
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y+1]) anzahl++;	
				break;
				case 9:                                            //rechts unten
				if(array[x][y-1]) anzahl++;
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y-1]) anzahl++;
				break;
				default: 											//rechts mitte
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y+1]) anzahl++;
				if(array[x-1][y-1]) anzahl++;
				if(array[x][y-1]) anzahl++;
				if(array[x][y+1]) anzahl++;
				break;				
			}
			break;
			default:
			switch (y)
			{
				case 0:                                            //mitte oben
				if(array[x][y+1]) anzahl++;
				if(array[x+1][y+1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y+1]) anzahl++;
				break;
				case 9:                                            //mitte unten
				if(array[x][y-1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				if(array[x+1][y-1]) anzahl++;
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y-1]) anzahl++;
				break;
				default: 											//mitte mitte
				if(array[x][y-1]) anzahl++;
				if(array[x][y+1]) anzahl++;
				if(array[x+1][y]) anzahl++;
				if(array[x+1][y+1]) anzahl++;
				if(array[x+1][y-1]) anzahl++;
				if(array[x-1][y]) anzahl++;
				if(array[x-1][y+1]) anzahl++;
				if(array[x-1][y-1]) anzahl++;
				break;				
			}
			break;
							
		}
		
		return anzahl;
		
	}
	
	public static void main(String[] args)                     //main-methode, druckt die muster aus
	{
		boolean[][] array = new boolean[10][10];          //2dimensionales array (boolean) wird erzeugt, durch random mit werten belegt
		Random generator = new Random();
		double zufallswert;
		for (int i = 0; i<10;i++)
		{
			for (int j = 0;j<10;j++)
			{
				zufallswert = generator.nextDouble();
				if (zufallswert >=0.5)
					array[i][j] = true;
			}
		}
		
		System.out.println("Dies ist die erste Generation");   //werte vom array werden gedruckt, indem für "true" ein "X"
															  //und für "false" ein " " angezeigt wird
		for(int i = 0;i<10;i++)
		{
			for(int j = 0;j<10;j++)
			{
				if (array[i][j])
				{
					System.out.print("X");
				}
				else
				{
					System.out.print(" ");
				}
			}
			
			System.out.print("\n");
		}
		
		System.out.println("\n\nDies ist die zweite Generation");
		
		for(int a = 0; a<10;a++)             //wie erster ausdruck, nur wird hier jedes Feld auf nachbarn überprüft
		{								     //und dementsprechen mit einem "X" oder " " versehen
		for(int b = 0; b<10;b++)
		{
		switch (nachbar(a,b))
		{
			case 0: 
			case 1:
			System.out.print(" ");
			break;
			case 2:
			if(array[a][b])
			{
				System.out.print("X");
			}
			else
			{
				System.out.print(" ");
			}
			break;
			case 3:
			System.out.print("X");
			break;
			default:
			System.out.print(" ");
			break;
		}
		}
		System.out.print("\n");
		}
		
		System.out.println(nachbar(3,3));    //nur zum Test, die Methode nachbar geht also nicht
		
	}	
}Vielen vielen Dank für alle antworten, ich geh jetzt pennen
 
				 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		 
 
		