1. Dashboard
  2. Forum
    1. Unerledigte Themen
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team-Mitglieder
    4. Trophäen
    5. Mitgliedersuche
  4. Tutorial Bereich
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Seiten
  • Forum
  • Lexikon
  • Erweiterte Suche
  1. Informatik Forum
  2. Webmaster & Internet
  3. Entwicklung

Sichtbarkeit

  • kru
  • 22. November 2008 um 16:31
  • Unerledigt
  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 16:31
    • #1

    Hallo,

    ich habe ein Problem in meinem Java-Code.
    Ich erzeuge (siehe rote Schrift) ein neues Spielfeld. Grid ist ein Interface.

    Dann möchte ich auf die Methode setAlive(int j, int k) des Interfaces zugreifen.
    Diese soll die Zelle (j,k) im erzeugten Spielfeld auf lebendig setzen.
    Der Compiler beschwert sich aber, weil "game" nicht "visible" (sichtbar) ist.
    Liegt wahrscheinlich an der if- Anweisung.

    Ich hab das ganze schon x-mal umgeschrieben und komm nicht drauf wie ichs am besten machen könnte.
    Kann mir evtl jemand helfen
    Danke!





    private static void execute() throws IOException {
    boolean start = false;
    boolean quit = false;

    while (!quit) {
    System.out.print("gol> ");
    String input = cons.readLine(); // read one line

    // split input on white spaces

    String[] tokens = input.trim().split(

    "\\s+");

    // Uppercase or lowercase letters should be no matter

    String i = tokens[0];
    i = i.toLowerCase();

    // First letter of the command is equal. The command n.. x y

    // starts a new play with x rows and y columns

    if (i.startsWith("n")) {
    if (tokens.length != 3) { // expected length?

    System.

    out.println("Error! Bitte zwei Zahlen eingeben!");
    continue;
    }

    // The input has to be consist of two integers

    int j = Integer.parseInt(tokens[1]);
    int k = Integer.parseInt(tokens[2]);
    Grid game = new GameOfLife(j,k);

    start = true;

    }
    else if (i.startsWith("a") && start == true){
    int j = Integer.parseInt(tokens[1]);
    int k = Integer.parseInt(tokens[2]);
    game.setAlive(j,k);


    }

  • Paulchen
    1
    Paulchen
    Gast
    • 22. November 2008 um 16:32
    • #2

    Grundstruktur:

    PHP
    if(...) {
        Grid game = ...
    }
    elseif (...) {
        game.setAlive(...);
    }

    Wie soll denn das gehen?

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 16:48
    • #3

    Es handelt sich insgesamt um einen Spielablauf:

    Beginnt das eingegebene Kommando mit " n "

    so wird ein neues Spielfeld angelegt:

    Grid game = new Game (j,k)


    Dann (wenn das Feld angelegt ist) kann man auf dem Feld (2-dim. Array) eine Zelle auf lebendig setzen mit

    game.setAlive(a,b)



    Mein Problem ist aber, dass "game" in den späteren Anweisungen nicht mehr sichtabar ist. Wahrscheinlich wegen der if-Anweisung.

    Die if-Unterscheidungen brauch ich aber, da noch mehr befehle kommen.
    z.b. wenn der erste Buchstabe ein "h" ist soll einen Hilfe aufgerufen werden etc..

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 16:56
    • #4

    Paulchen hat deine Frage doch schon beantwortet, Variablen sind nur in dem Block sichtbar, in dem sie deklariert wurden.

    There's no better place than 127.0.0.1!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 17:00
    • #5

    ja das hab ich auch verstanden.
    Aber ich bräuchte eine möglichkeit wie man das anders lösen könnte.
    ich hab wie oben schon erwähnt, schon zig-möglichkeiten probiert und auf nichts brauchbares gekommen.

  • Paulchen
    1
    Paulchen
    Gast
    • 22. November 2008 um 17:04
    • #6
    Zitat von kru

    Aber ich bräuchte eine möglichkeit wie man das anders lösen könnte.

    Ich würde das Game-Objekt noch vor der Schleife erstellen.

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 17:06
    • #7
    Zitat von kru


    ich hab wie oben schon erwähnt, schon zig-möglichkeiten probiert und auf nichts brauchbares gekommen.

    Wäre interessant, was du da genau ausprobiert hast, aber ich denke, wenn du verstanden hättest, wo das Problem liegt, wärst du auch auf die Lösung gekommen: Game muss einfach vor der if-Anweisung deklariert werden.

    EDIT: verdammt, zu langsam.

    There's no better place than 127.0.0.1!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 17:41
    • #8

    HI,

    die Vorschlag von Paulchen geht auch nicht.
    Ich hol mal etwas weiter aus.

    Der Spielablauf ist so:

    Als erstes muss man ein Spielfeld erzeugen, eben durch
    Grid game = new GameOfLife (j,k)
    j und k kann der Benutzer selbst eingeben durch das Kommando n j k

    Wenn ein Spielfeld angelegt ist (!nur dann!) kann man eine Zelle des Feldes auf lebendig setzen durch das Kommando a 2 4 zum Beispiel.

    Natürlich gibts noch weitere Funktionen, die hab ich aber nicht aufgelistet.

    Wichtig:

    Man kann das Spiel jederzeit beenden durch das kommando "q"
    Man kann jederzeit die Hilfe aufrufen durch "h"

    Diese beiden kommandos können evtl auch vor dem erzeugen eines neuen Feldes aufgerufen werden!

    Insgesamt also:

    Man kann die Befehle n, q, h jederzeit aufrufen. a aber nur, wenn Befehl n bereits ausgeführt wurde.

    Das ganze vor der while-Schleife zum machen geht ja auch nicht, weil da der Benutzer noch keine Eingaben machen kann.


    Ps. Hier handelt es sich um die Implementation des Spieles GameOfLife

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 17:50
    • #9

    Machs so wie ich gesagt hab, deklariere game vor der berüchtigten if-Anweisung.
    Ich bin zwar der Meinung dass du noch ein paar andere Fehler drinnen hast, aber zumindest ist so der Compilerfehler weg.

    There's no better place than 127.0.0.1!

  • Paulchen
    1
    Paulchen
    Gast
    • 22. November 2008 um 17:51
    • #10

    Du willst also sowas:

    PHP
    Game grid;
    for(;;) {
        /* Eingabe lesen */
        if(...) { /* Eingabe "q" */
            break;
        }
        if(...) { /* Einagbe "a" */
            if(grid == null) {
                /* n noch nicht ausgefuehrt */
            }
            else {
                grid.setAlive(...);
            }
        }
        if(...) { /* Eingabe "n" */
            grid = new Game(...);
        }
        /* ... */
    }
    Alles anzeigen
  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 18:10
    • #11

    Hi,

    @ java-Girl: Genau das geht ja nicht. Was soll ich denn dann für Parameter übergeben?
    Grid game;

    if(i.startsWith("n")){
    int j= ..
    int k = ...
    game = new GameOfLife(j,k)

    Dann beschwert er sich später:
    The local Variable game may not have been initalisized.

    Ich poste hier nochmal den ganzen Code.
    Zur Erläuterung:
    Grid ist ein Interface, das die GameOfLife implementiert.
    Der Zugriff darf nur über das Interface erfolgen!

    Die Problemstellen sind rot markiert.

    public static void main(String[] args) throws IOException {
    cons = new BufferedReader(new InputStreamReader(System.in));
    execute();

    } // void main

    private static void execute() throws IOException {
    boolean start = false;
    boolean quit = false;

    while (!quit) {

    System.out.print("gol> ");
    String input = cons.readLine(); // read one line

    if (input == null) { // no more input?

    break;
    }

    // split input on white spaces

    String[] tokens = input.trim().split(

    "\\s+");

    // Uppercase or lowercase letters should be no matter

    String i = tokens[0];
    i = i.toLowerCase();

    // First letter of the command is crucial. The command n.. x y

    // starts a new play with x rows and y columns

    if (i.startsWith("n")) {
    if (tokens.length != 3) { // expected length?

    System.

    out.println("Error! Bitte zwei Zahlen eingeben!");
    continue;
    }
    int j = Integer.parseInt(tokens[1]);
    int k = Integer.parseInt(tokens[2]);
    Grid game = new GameOfLife(j, k);

    start = true;
    }
    // eine zelle auf lebendig setzen

    if (i.startsWith("a") && start == true) {
    int m = Integer.parseInt(tokens[1]);
    int n = Integer.parseInt(tokens[2]);
    game.setAlive(m, n, true);
    }

    // Anzeigen des Spielfeldes

    if (i.startsWith("p") && start == true) {
    game.toString();
    }
    // Hillfe aufrufen

    if (i.startsWith("h")) {
    System.out.println("Hilfe");
    }
    // spiel beenden

    if (i.startsWith("q")) {
    quit = true;
    }

    else {
    System.out.println("Error! Bitte als erstes ein Spielfeld "

    +

    "anlegen, die Hilfe aufrufen oder das "

    +

    "Programm beenden!");
    }
    } // while


    }

    // void execute


    }

    // class Shell

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 18:13
    • #12
    Zitat von kru

    Hi,

    @ java-Girl: Genau das geht ja nicht. Was soll ich denn dann für Parameter übergeben?

    Gar keine?!?
    Ich sags dir jetzt zum dritten Mal: du sollst game deklarieren, NICHT INITIALISIEREN!

    Und noch was:
    http://www.informatik-forum.at/showpost.php?p=140998&postcount=3

    There's no better place than 127.0.0.1!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 18:23
    • #13

    Also so: (Geht aber auch nicht)

    Code
    [align=left][size=10]Grid game;[/SIZE][/align]
     
    [align=left][B][size=10][COLOR=#7f0055]if[/COLOR][/SIZE][/B][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"n"[/COLOR][/SIZE][size=10])) {[/SIZE][/align]
     
    [align=left][B][size=10][COLOR=#7f0055]int[/COLOR][/SIZE][/B][size=10] j = Integer.[I]parseInt[/I](tokens[1]);[/SIZE]
    [B][size=10][COLOR=#7f0055]int[/COLOR][/SIZE][/B][size=10] k = Integer.[I]parseInt[/I](tokens[2]);[/SIZE]
    [size=10]game = [/SIZE][B][size=10][COLOR=#7f0055]new[/COLOR][/SIZE][/B][size=10] GameOfLife(j, k);[/SIZE][/align]
     
    [align=left][size=10]start = [/SIZE][B][size=10][COLOR=#7f0055]true[/COLOR][/SIZE][/B][size=10];[/SIZE]
    [size=10]}[/SIZE][/align]
     
    [align=left][size=10][COLOR=#3f7f5f]// eine zelle auf lebendig setzen[/COLOR][/SIZE]
    [B][size=10][COLOR=#7f0055]if[/COLOR][/SIZE][/B][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"a"[/COLOR][/SIZE][size=10]) && start == [/SIZE][B][size=10][COLOR=#7f0055]true[/COLOR][/SIZE][/B][size=10]) {[/SIZE]
    [B][size=10][COLOR=#7f0055]int[/COLOR][/SIZE][/B][size=10] m = Integer.[I]parseInt[/I](tokens[1]);[/SIZE]
    [B][size=10][COLOR=#7f0055]int[/COLOR][/SIZE][/B][size=10] n = Integer.[I]parseInt[/I](tokens[2]);[/SIZE]
    [size=10][B][COLOR=red]game.setAlive(m, n, [/COLOR][/B][/SIZE][size=10][COLOR=red][B]true[/B][/COLOR][/SIZE][size=10][B][COLOR=red]);[/COLOR][/B][/SIZE]
    [size=10]}[/SIZE][/align]
    Alles anzeigen

    Fehlermeldung: The local variable game may not have been initalisized!

    Einmal editiert, zuletzt von kru (22. November 2008 um 18:25)

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 18:26
    • #14
    Zitat von kru


    Fehlermeldung: The local variable game may not have been initalisized!

    Ist ja auch logisch.
    Ich habe nicht gesagt, dass du sie unmittelbar davor deklarieren sollst. Paulchen hat dir bereits ein Grundgerüst gegeben, wo liegt jetzt das Problem, das umzusetzen? Er hat es so gemacht, wie ich auch gesagt habe, game vor dem if deklariert.

    There's no better place than 127.0.0.1!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 18:32
    • #15

    Habs ja vor dem if deklariert. hier als beweis:

    Code
    [size=10][align=left][/SIZE][B][size=10][COLOR=#7f0055]public[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]static[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]void[/B][/COLOR][/SIZE][size=10] main(String[] args) [/SIZE][B][size=10][COLOR=#7f0055]throws[/B][/COLOR][/SIZE][size=10] IOException {
    [/SIZE][I][size=10][COLOR=#0000c0]cons[/I][/COLOR][/SIZE][size=10] = [/SIZE][B][size=10][COLOR=#7f0055]new[/B][/COLOR][/SIZE][size=10] BufferedReader([/SIZE][B][size=10][COLOR=#7f0055]new[/B][/COLOR][/SIZE][size=10] InputStreamReader(System.[/SIZE][I][size=10][COLOR=#0000c0]in[/I][/COLOR][/SIZE][size=10]));
    [I]execute[/I]();
    
    
    } [/SIZE][size=10][COLOR=#3f7f5f]// void main[/align]
    [/COLOR][/SIZE][size=10][align=left]
    [/SIZE][B][size=10][COLOR=#7f0055]private[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]static[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]void[/B][/COLOR][/SIZE][size=10] execute() [/SIZE][B][size=10][COLOR=#7f0055]throws[/B][/COLOR][/SIZE][size=10] IOException {
    [/SIZE][B][size=10][COLOR=#7f0055]boolean[/B][/COLOR][/SIZE][size=10] start = [/SIZE][B][size=10][COLOR=#7f0055]false[/B][/COLOR][/SIZE][size=10];
    [/SIZE][B][size=10][COLOR=#7f0055]boolean[/B][/COLOR][/SIZE][size=10] quit = [/SIZE][B][size=10][COLOR=#7f0055]false[/B][/COLOR][/SIZE][size=10];
    
    
    [/SIZE][B][size=10][COLOR=#7f0055]while[/B][/COLOR][/SIZE][size=10] (!quit) {
    
    
    System.[/SIZE][I][size=10][COLOR=#0000c0]out[/I][/COLOR][/SIZE][size=10].print([/SIZE][size=10][COLOR=#2a00ff]"gol> "[/COLOR][/SIZE][size=10]);
    String input = [/SIZE][I][size=10][COLOR=#0000c0]cons[/I][/COLOR][/SIZE][size=10].readLine(); [/SIZE][size=10][COLOR=#3f7f5f]// read one line[/align]
    [/COLOR][/SIZE][size=10][align=left]
    [/SIZE][size=10][COLOR=#3f7f5f]// split input on white spaces[/align]
    [/COLOR][/SIZE][size=10][align=left]String[] tokens = input.trim().split([/SIZE][size=10][COLOR=#2a00ff]"\\s+"[/COLOR][/SIZE][size=10]);
    
    
    [/SIZE][size=10][COLOR=#3f7f5f]// Uppercase or lowercase letters should be no matter[/align]
    [/COLOR][/SIZE][size=10][align=left]String i = tokens[0];
    i = i.toLowerCase();
    Grid game;
    
    
    [/SIZE][size=10][COLOR=#3f7f5f]// First letter of the command is crucial. The command n.. x y[/align]
    [/COLOR][/SIZE][size=10][align=left][/SIZE][size=10][COLOR=#3f7f5f]// starts a new play with x rows and y columns[/align]
    [/COLOR][/SIZE][size=10][align=left][/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"n"[/COLOR][/SIZE][size=10])) {
    [/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (tokens.[/SIZE][size=10][COLOR=#0000c0]length[/COLOR][/SIZE][size=10] != 3) { [/SIZE][size=10][COLOR=#3f7f5f]// expected length?[/align]
    [/COLOR][/SIZE][size=10][align=left]System.[/SIZE][I][size=10][COLOR=#0000c0]out[/I][/COLOR][/SIZE][size=10].println([/SIZE][size=10][COLOR=#2a00ff]"Error! Bitte zwei Zahlen eingeben!"[/COLOR][/SIZE][size=10]);
    [/SIZE][B][size=10][COLOR=#7f0055]continue[/B][/COLOR][/SIZE][size=10];
    }
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] j = Integer.[I]parseInt[/I](tokens[1]);
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] k = Integer.[I]parseInt[/I](tokens[2]);
    game = [/SIZE][B][size=10][COLOR=#7f0055]new[/B][/COLOR][/SIZE][size=10] GameOfLife(j, k);
    
    
    start = [/SIZE][B][size=10][COLOR=#7f0055]true[/B][/COLOR][/SIZE][size=10];
    }
    [/SIZE][size=10][COLOR=#3f7f5f]// eine zelle auf lebendig setzen[/align]
    [/COLOR][/SIZE][size=10][align=left][/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"a"[/COLOR][/SIZE][size=10]) && start == [/SIZE][B][size=10][COLOR=#7f0055]true[/B][/COLOR][/SIZE][size=10]) {
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] m = Integer.[I]parseInt[/I](tokens[1]);
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] n = Integer.[I]parseInt[/I](tokens[2]);
    game.setAlive(m, n, [/SIZE][B][size=10][COLOR=#7f0055]true[/B][/COLOR][/SIZE][size=10]);
    }
    Alles anzeigen

    [/align]
    [/SIZE]

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 18:35
    • #16
    Zitat von kru

    Habs ja vor dem if deklariert. hier als beweis:

    Ja und so wie du es gemacht hast ist es eindeutig falsch.

    Code
    Grid game;
    if(...){
    	...
    	game = new Grid(...);
    }
    else{
    	...
    	game.doSomething();
    }

    Wie soll das funktionieren? Jetzt überleg einmal was passiert wenn er ins else geht?!
    Ich lege dir noch einmal nahe, dir Paulchens Gerüst anzusehen und dein Programm dementsprechend abzuändern.

    There's no better place than 127.0.0.1!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 22. November 2008 um 18:47
    • #17

    Ich hab mich jetzt an Paulchens Grundgerüst gehalten.

    Code
    [size=10][align=left][/SIZE][B][size=10][COLOR=#7f0055]private[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]static[/B][/COLOR][/SIZE][size=10] [/SIZE][B][size=10][COLOR=#7f0055]void[/B][/COLOR][/SIZE][size=10] execute() [/SIZE][B][size=10][COLOR=#7f0055]throws[/B][/COLOR][/SIZE][size=10] IOException {
    [/SIZE][B][size=10][COLOR=#7f0055]boolean[/B][/COLOR][/SIZE][size=10] start = [/SIZE][B][size=10][COLOR=#7f0055]false[/B][/COLOR][/SIZE][size=10];
    [/SIZE][B][size=10][COLOR=#7f0055]boolean[/B][/COLOR][/SIZE][size=10] quit = [/SIZE][B][size=10][COLOR=#7f0055]false[/B][/COLOR][/SIZE][size=10];
    [COLOR=red][B]Grid game;[/B][/COLOR]
    [/SIZE][B][size=10][COLOR=#7f0055]while[/B][/COLOR][/SIZE][size=10] (!quit) {
    
    
    System.[/SIZE][I][size=10][COLOR=#0000c0]out[/I][/COLOR][/SIZE][size=10].print([/SIZE][size=10][COLOR=#2a00ff]"gol> "[/COLOR][/SIZE][size=10]);
    String input = [/SIZE][I][size=10][COLOR=#0000c0]cons[/I][/COLOR][/SIZE][size=10].readLine(); [/SIZE][size=10][COLOR=#3f7f5f]// read one line[/align]
    [/COLOR][/SIZE][size=10][align=left]
    [/SIZE][size=10][COLOR=#3f7f5f]// split input on white spaces[/align]
    [/COLOR][/SIZE][size=10][align=left]String[] tokens = input.trim().split([/SIZE][size=10][COLOR=#2a00ff]"\\s+"[/COLOR][/SIZE][size=10]);
    
    
    [/SIZE][size=10][COLOR=#3f7f5f]// Uppercase or lowercase letters should be no matter[/align]
    [/COLOR][/SIZE][size=10][align=left]String i = tokens[0];
    i = i.toLowerCase();
    
    
    [/SIZE][size=10][COLOR=#3f7f5f]// First letter of the command is crucial. The command n.. x y[/align]
    [/COLOR][/SIZE][size=10][align=left][/SIZE][size=10][COLOR=#3f7f5f]// starts a new play with x rows and y columns[/align]
    [/COLOR][/SIZE][size=10][align=left][/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"q"[/COLOR][/SIZE][size=10])) {
    quit = [/SIZE][B][size=10][COLOR=#7f0055]true[/B][/COLOR][/SIZE][size=10];
    
    
    [/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"h"[/COLOR][/SIZE][size=10])) {
    System.[/SIZE][I][size=10][COLOR=#0000c0]out[/I][/COLOR][/SIZE][size=10].println([/SIZE][size=10][COLOR=#2a00ff]"hilfe"[/COLOR][/SIZE][size=10]);
    }
    [/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"a"[/COLOR][/SIZE][size=10])) {
    
    
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] j = Integer.[I]parseInt[/I](tokens[1]);
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] k = Integer.[I]parseInt[/I](tokens[2]);
    [/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (game == [/SIZE][B][size=10][COLOR=#7f0055]null[/B][/COLOR][/SIZE][size=10]) {
    System.[/SIZE][I][size=10][COLOR=#0000c0]out[/I][/COLOR][/SIZE][size=10].println([/SIZE][size=10][COLOR=#2a00ff]"zuerst feld setzen"[/COLOR][/SIZE][size=10]);
    
    
    } [/SIZE][B][size=10][COLOR=#7f0055]else[/B][/COLOR][/SIZE][size=10] {
    game.setAlive(j, k, [/SIZE][B][size=10][COLOR=#7f0055]true[/B][/COLOR][/SIZE][size=10]);
    }
    }
    [/SIZE][B][size=10][COLOR=#7f0055]if[/B][/COLOR][/SIZE][size=10] (i.startsWith([/SIZE][size=10][COLOR=#2a00ff]"n"[/COLOR][/SIZE][size=10])) {
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] col = Integer.[I]parseInt[/I](tokens[1]);
    [/SIZE][B][size=10][COLOR=#7f0055]int[/B][/COLOR][/SIZE][size=10] row = Integer.[I]parseInt[/I](tokens[2]);
    game = [/SIZE][B][size=10][COLOR=#7f0055]new[/B][/COLOR][/SIZE][size=10] GameOfLife(col, row);
    
    
    }
    }
    
    
    } [/SIZE][size=10][COLOR=#3f7f5f]// while[/align]
    [/COLOR][/SIZE][size=10][align=left]
    } [/SIZE][size=10][COLOR=#3f7f5f]// void execute[/align]
    [/COLOR][/SIZE][size=10][align=left]
    } [/SIZE][size=10][COLOR=#3f7f5f]// class Shell[/COLOR][/SIZE]
    [size=10][COLOR=#3f7f5f][/COLOR][/SIZE] 
    [size=10][COLOR=#3f7f5f]
    Alles anzeigen

    [/COLOR][/SIZE]

    Fehlermeldung: The local variable game may not have been initalisized[/align]

  • java-girl
    14
    java-girl
    Mitglied
    Reaktionen
    7
    Punkte
    2.037
    Beiträge
    357
    • 22. November 2008 um 18:49
    • #18

    Ich bin der Meinung, du solltest die Zeit dazu nutzen, um zu verstehen, was die Fehlermeldung bedeutet und warum sie kommt anstatt wild irgendwas herumzuprobieren.

    There's no better place than 127.0.0.1!

  • Bobsch
    14
    Bobsch
    Mitglied
    Reaktionen
    50
    Punkte
    1.935
    Beiträge
    372
    • 22. November 2008 um 21:48
    • #19

    Programmierst du gerade das "Game of Live"-Beispiel aus dem Schiedermeier Buch aus?^^

    Lösche bitte deinen Code, und überleg dir das ganze nochmal ruhig von vorne:
    Das Interface Grid wird, soweit ich mich erinnern kann, dafür verwendet, verschiedene Startbelegungen definieren zu können. Oder?

    Schreib doch kurz eine Zusammenfassung der Aufgabenstellung hier rein, und dann noch kurz, was du dir dazu überlegt hast. Dann können wir dir eher auf die richtige Fährte helfen. Wenn mich meine Erinnerung nicht ganz täuscht, hast du nämlich die Aufgabenstellung schon gar nicht richtig verstanden. :)

    Für mich denkt mdk!

  • kru
    3
    kru
    Mitglied
    Punkte
    75
    Beiträge
    12
    • 26. November 2008 um 14:45
    • #20

    ja ich programmiere das gameOfLife, aber nicht das aus scheidmaiers buch. das kenn ich gar nicht!

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!

Benutzerkonto erstellen Anmelden

Benutzer online in diesem Thema

  • 1 Besucher

Rechtliches

Impressum

Datenschutzerklärung