Bedingtes ODER wird nicht erkannt

Bukotch

Mitglied
Hey Leute.

Ich hab ein Problem bei Eclipse.
Eclipse will das bedingte ODER nicht erkennen oder ich selber finde den Fehler im Programm nicht.

Hier der Code aus einem Buch.
Die Fehler laut Eclipse liegen in Zeile 68/72

Java:
package Kapitel04;

import java.util.Random; // Erläuterung später
public class GameOfLife {

	public static void gebeAus (boolean[][] m) {
		//Ein "X" symbolisiert eine lebendige Zelle
		
		for (int i=0; i<10; i++){
			for (int j=0; j<10; j++){
				if(m[i][j]) System.out.print("X ");
				else        System.out.print("  ");
			}
			System.out.println();
		}
		

	}
	public static int zaehleUmgebung(boolean[][] m , int x , int y){
		int ret = 0;
		for (int i=(x-1); i<(x+2); ++i){
			for(int j=(y-1); j<(y+2); ++j){
				try{
					if (m[i][j])
						ret += 1;
				}
				catch (IndexOutOfBoundsException e){}
			}
		}
		//einen zuviel mitgezaehlt?
		if (m[x][y])
			ret -= 1;
		return ret;
	}
	public static void main(String[] args){
		//Welt aus 10x10
		boolean[][] welt     = new boolean[10][10];
		boolean[][] welt_neu = new boolean[10][10];
		
		// **********************************************************
		// Erzeugt eine zufällige Konstellation von Einsen und Nullen
		// in der Matrix welt.Die Chance liegen bei 50%,dass eine
		// Zelle lebendig ist.
		
		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)
					welt[i][j] = true;
			}
		// **********************************************************
		
		// Ausgabe der ersten Generation
		
		System.out.println("Generation 1");
		GameOfLife.gebeAus(welt);
		
		int nachbarn;
		for (int i=0; i<10; i++){
			for (int j=0; j<10; j++){
				// Zaehle die Nachbarn
				nachbarn = zaehleUmgebung(welt, i, j);
				
				if(welt[i][j]){
					//Regel 1,2 :
					if ((nachbarn<2))||((nachbarn>3))
					   welt_neu[i][j] = false;
					
					//Regel 3:
					if((nachbarn==2))||((nachbarn==3))
					welt_neu[i][j] = true;
					}
				else {
					//Regel 4:
					if ((nachbarn==3))
						welt_neu[i][j] = true;
				}

					
				}
				
			}
		
		   // Ausgabe der zweiten Generation
		   System.out.println("Generation 2");
		   GameOfLife.gebeAus(welt_neu);
		   
		}
	}

Wäre für eine Antwort Dankbar 🙂

MFG Bukotch
 
Links und rechts von den Oder-Zeichen in den Zeilen 68 und 72 sind Klammern zuviel. Das if-Statement hört schon
vor dem Oder-Zeichen auf.
 

Neue Themen


Zurück
Oben