Zufällige Farbe

Status
Nicht offen für weitere Antworten.

Shusi

Mitglied
Hiho ihrs !
Ich bin noch recht neu bei Java und habe ein wohl recht einfache Frage:

Also, ich bin grade dabei ein Spiel (sowas wie BreakOut) zu programmieren und will nun den Blöcken, die ich zerballern will eine zufällige Farbe verpassen. Allerdings nicht irgendeine, also nicht mit (R,G,B) sondern simpel mit Color.red z.B.

hab dafür jetzt mal sowas gebastelt:

Code:
  public zfarbe () {

    int m = (int) Math.random()*6;
    if(m==0){ Color Farbe = new Color(Color.red);   }
    if(m==1){ Color Farbe = new Color(Color.blue);   }
    if(m==2){ Color Farbe = new Color(Color.yellow);   }
    if(m==3){ Color Farbe = new Color(Color.pink);   }
    if(m==4){ Color Farbe = new Color(Color.green);   }
    if(m==5){ Color Farbe = new Color(Color.white);   }
    if(m==6){ Color Farbe = new Color(Color.turkey);   }
    return Farbe;
  }

allerdings meckert er, weil er ja nicht weiß, als was er "Farbe" zurückgeben soll...
nur weiß ich nicht, was das für eine Methode sein soll.. als int gehts nicht..
Wenn einer weiter weiß, bitte antworten 😉

PS: danke fürs lesen xD
 
Code:
public zfarbe () {

    Color Farbe; // hier

    int m = (int) Math.random()*6;
    if(m==0){ Farbe = Color.red;   }
    if(m==1){ Farbe = Color.blue;   }
    if(m==2){ Farbe = Color.yellow;   }
    if(m==3){ Farbe = Color.pink;   }
    if(m==4){ Farbe = Color.green;   }
    if(m==5){ Farbe = Color.white;   }
    if(m==6){ Farbe = Color.turkey;   }
    return Farbe;
  }

Eine Variablendeklaration ist nur bis zu der geschweiften Klammer gültig, die den Block (in dem die Deklaration stattfand) abschließt.

Weitere Hinweise:
- Variablen (Farbe) beginnen mit Kleinbuchstaben (farbe).
- Klassen beginnen mit Großbuchstaben (Color).
- Methodennamen sollten mit einem Verb beginnen (waehleFarbe()).
- Die Konstanten der Klasse Color sind bereits selbst Color-Objekte, weshalb new hier überflüssig ist.

mpG
Tobias

Edit: Möglicherweise meckert der Compiler jetzt, das Farbe nicht initialisiert sei (weil der nicht rafft, das eine der if-Abfragen auf jeden Fall true ist) - da hilft

Code:
Color Farbe = null;

an der mit "hier" markierten Stelle.
 
Hm ne so kann das ja auch nicht hinhauen,

Ich gehen mal davon aus, dass "zfarbe" keine Klasse sondern ein Methodenname sein soll. Da fehlt dann der Rückgabetyp, sonst kannst du "return" so nicht verwenden.

In etwa
public Color zfarbe() {
...
}

An Shusi; Unbedingt nochmal Grundlagen von Java durchlesen!

Achja und
Code:
 int m = (int) Math.random()*6;
gibt ne Zufallszahl zwischen 0 und 5 und nicht zwischen 0 und 6
 
Den fehlenden Rückgabewert habe ich übersehen, das mit 0-5 statt 0-6 habe ich mir als Übung für den Fragesteller verkniffen 🙂 ...

mpG
Tobias
 
Danke euch ! Es geht jetzt 😀

Code:
  public Color zufallfarbe () {
    Color farbe = null;
    int m = (int) Math.random()*7;
    if(m==0){ farbe = (Color.red);   }
    if(m==1){ farbe = (Color.blue);   }
    if(m==2){ farbe = (Color.yellow);   }
    if(m==3){ farbe = (Color.pink);   }
    if(m==4){ farbe = (Color.green);   }
    if(m==5){ farbe = (Color.white);   }
    if(m==6){ farbe = (Color.cyan);   }
    return farbe;
  }
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben