Wechselnde Felder erzeugen

Exilim

Mitglied
Hallo, Ich soll ein Java Aplett schreiben, mit dem 9x9 große Kreise erzeugt werden, die Abwechselnd schwarz und weiß sind. Das Ganze habe ich versucht mit nem Modulo Operator umzusetzen, die Felder bleiben aber schwarz???:L Könntet ihr mir helfen?? Danke
[JAVA=42]
import java.awt.*;
import javax.swing.*;

public class Schachbrett extends JApplet
{
public void init()
{
}

public void paint(Graphics g)
{
int r=0;int x=0;int b=0;

for (int i=0;i<=9;i++)

if( i%2 ==1 )

for (int t = 0;t <= 400;t = t+50)
{
for (int s = 0; s <= 400;s = s+50)
{

Color farbe =new Color (r,x,b);
g.setColor(farbe);
g.fillOval(s,t,50,50);

}
}}[/code]
 

Tobias

Top Contributor
Java:
public class Schachbrett extends JApplet
{   
    public void init()
    {       
    }
 
    public void paint(Graphics g)
    {
        int r=0;int x=0;int b=0;
        boolean black = false; // mit schwarz beginnen
       
        for (int t = 0;t <= 400;t = t+50) {
            for (int s = 0; s <= 400;s = s+50) {
                black = !black; // Farbe wechseln
                
                if(black) {
                    g.setColor(Color.BLACK);
                } 
                else {
                    g.setColor(Color.WHITE);
                }
                g.fillOval(s,t,50,50);
            }
        }
    }

EDIT: Modulo ginge auch, ist hier aber zu kompliziert gedacht.
 

Ebenius

Top Contributor
Tobias, wir machen doch keine Hausaufgaben... Wenigstens ein bisschen herleiten wäre doch gut, oder?

Zu allererst empfehle ich Dir, Deinen Quelltext sauber einzurücken. Das kann sonst keiner lesen. Außerdem empfehle ich besonders jedem Anfänger, jede [c]if[/c] und jede [c]for[/c]-Anweisung als Block zu schreiben. Damit man die Zugehörigkeit besser erkennt. Also erstmal aufräumen:

Java:
import java.awt.*;
import javax.swing.*;
 
public class Schachbrett extends JApplet
{   
    public void init()
    {       
    }
 
    public void paint(Graphics g)
    {
        int r=0;int x=0;int b=0;
       
        for (int i=0;i<=9;i++)
        {
        
            if( i%2 ==1 )
            {
       
                for (int t = 0;t <= 400;t = t+50)
                {
                     for (int s = 0; s <= 400;s = s+50)
                     {
 
                         Color farbe =new Color (r,x,b);
                         g.setColor(farbe);
                         g.fillOval(s,t,50,50);
        
                     }
                }
          }
     }
}
Jetzt erkennt man, dass Du drei Schleifen schachtelst. Das ist sehr seltsam bei einem zweidimensionalen Muster, oder? Eine dieser Schleifen ist der Radius des Kreises. Warum eine Schleife? Der soll doch immer gleich sein. Davon abgesehen brauchst Du zwei Farben. Darüber hinaus solltest Du längere Bezeichnernamen verwenden, damit Dein Quelltext besser verständlich ist. Also würde ich das ganze schon mal so ansetzen:
Java:
import java.awt.*;
import javax.swing.*;
 
public class Schachbrett extends JApplet
{   
    public void init()
    {       
    }
 
    public void paint(Graphics g)
    {
        final Color farbe1 = Color.BLACK; // die beiden Farben ...
        final Color farbe2 = Color.WHITE; // ... im Wechsel
        final int radius = 9; // der ändert sich nicht

        // hier geht's dann weiter
    }
}

Du benötigst nun zwei ineinander verschachtelte Schleifen. Eine horizontal (x) und eine vertikal (y). Also ungefähr sowas...

Tobias hat inzwischen Deine Aufgabe schon gelöst. Dann mach ich hier mal nich weiter.

Übrigens: Das [noparse][java=42][/noparse]-Tag ist dafür da, wenn man Code-Ausschnitte ab einer bestimmten Zeilennummer angeben will. Einfach [c]=42[/c] weglassen, wenn Dein Quelltext nicht bei Zeile 42 anfängt sondern bei Zeile 1. ;-)

Ebenius
 

Tobias

Top Contributor
@Ebenius: Eigentlich habe ich mir den Code gar nicht so genau angeguckt ... Wenn s der Radius des Kreises ist, wird meine Lösung nicht so recht funktionieren ;). Aber zumindest der Farbwechsel ist so gelöst.
 

Ebenius

Top Contributor
In dem Fall würde ich mir eine Laufvariable anlegen:
Java:
import java.awt.*;
import javax.swing.*;
 
public class Schachbrett extends JApplet
{   
    public void init()
    {       
    }
 
    public void paint(Graphics g)
    {
        final Color farbe1 = Color.BLACK; // die beiden Farben ...
        final Color farbe2 = Color.WHITE; // ... im Wechsel
        final int radius = 9; // der ändert sich nicht
        int alter = 0;
 
        ÄUSSERESCHLEIFE
        {
            INNERESCHLEIFE
            {
                if ((alter % 2) == 0) {
                    g.setColor(farbe1);
                } else {
                    g.setColor(farbe2);
                }
                alter ++;
            }
        }
    }
}
Ebenius
 

Exilim

Mitglied
[JAVA=42]
import java.awt.*;
import javax.swing.*;


public class Schachbrett extends JApplet
{


public void init()
{
}

public void paint(Graphics g)
{
int r=0;int x=0;int b=0; //RGB FARBEN
int variable = 0;

{
if ((variable % 2) ==0){
r=0;
x=0;
b=0;
}
else {
r=255;
x=255;
b=255;
}
variable ++;

for (int t = 0;t <= 400;t = t+50)
{
for (int s = 0; s <= 400;s = s+50)
{

Color farbe =new Color (r,x,b);//RGB FARBEN
g.setColor(farbe);
g.fillOval(s,t,50,50);

}
}

}

}
}
[/code]

bei mir sind die dinger immernoch schwarz
 

Ebenius

Top Contributor
Das [c]if[/c]/[c]else[/c]-Konstrukt wird ja auch nur einmal ausgeführt. Warum? Weil es überhaupt nicht an der richtigen Stelle steht. Und nun?

Ebenius
 

Exilim

Mitglied
[Java=42]

import java.awt.*;
import javax.swing.*;


public class Schachbrett extends JApplet
{


public void init()
{
}

public void paint(Graphics g)
{
int r=0;int x=0;int b=0;

for (int t = 0;t <= 400;t = t+50)
{
for (int s = 0; s <= 400;s = s+50)
{

Color farbe =new Color (r,x,b);
g.setColor(farbe);
g.fillOval(s,t,50,50);

for(int alter=0;alter<=81;alter++)
{
if ((alter % 2) ==0){
r=0;
x=0;
b=0;
}
else {
r=255;
x=255;
b=255;

}
}

}
}}


}
[/code]

Jetzt zeigt er mir nur noch 1 kreis an :shock: Bitte helft mir
 

Ebenius

Top Contributor
Das hatten wir doch schon: Du brauchst keine dritte Schleife. Nur ein [c]alter ++;[/c].

Du rätst Dich schon ganz schön durch... :-( Versuch doch lieber mal zu verstehen, was Du da tust!

Ebenius
 

Exilim

Mitglied
[JAVA=42]
import java.awt.*;
import javax.swing.*;


public class Schachbrett extends JApplet
{


public void init()
{
}

public void paint(Graphics g)
{
Color farbe1 =Color.BLACK;
Color farbe2 =Color.WHITE;



for (int t = 0;t <= 400;t = t+50)
{
for (int s = 0; s <= 400;s = s+50)
{

for(int i=0;i<=9;i++)

if ((i% 2) ==0){
g.setColor(farbe1);
g.fillOval(s,t,50,50);
}
else {
g.setColor(farbe2);
g.fillOval(s,t,50,50);
}



}

}
}

}
[/code]

läuft jetzt ganz schnell durch, danach isses weiß kann ma jemand bitte drüber gucken?
 

Tobias

Top Contributor
Ich modifiziere mal Ebenius' Vorschlag, weil ich ein Mißverständnis vermute:

Java:
public class Schachbrett extends JApplet
{   
    public void init()
    {       
    }
 
    public void paint(Graphics g)
    {
        final Color farbe1 = Color.BLACK; // die beiden Farben ...
        final Color farbe2 = Color.WHITE; // ... im Wechsel
        final int radius = 9; // der ändert sich nicht
        int alter = 0;
 
        for( /*HIER AUSFÜLLEN */) // war: ÄUSSERESCHLEIFE
        {
            for( /*HIER AUSFÜLLEN */) // war: INNERESCHLEIFE
            {
                if ((alter % 2) == 0) {
                    g.setColor(farbe1);
                } else {
                    g.setColor(farbe2);
                }

                g.fillOval(/*RICHTIGE PARAMETER HIER */);
                alter ++;
            }
        }
    }
}

mehr geht nicht.
 

Exilim

Mitglied
[JAVA=42]import java.awt.*;
import javax.swing.*;


public class Schachbrett extends JApplet
{

public void init()
{
}

public void paint(Graphics g)
{
final Color farbe1 = Color.BLACK;
final Color farbe2 = Color.WHITE;
int i = 0;

for(int s =50;s<=450;s=s+50)
{
for(int t=50;t<=450;t=t+50)
{
if ((i % 2) == 0) {
g.setColor(farbe1);
} else {
g.setColor(farbe2);
}

g.fillOval(s,t,50,50);
i ++;
}
}
}
}
[/code]

Besten Dank funktioniert einwandfrei:toll::toll:
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F 2 wechselnde Bilder Java Basics - Anfänger-Themen 4
M Erzeugen beliebig vieler Objekte, aber wie wechselnde Bezeichner? Java Basics - Anfänger-Themen 5
V Wechselnde Bilder in JLabel ausgeben Java Basics - Anfänger-Themen 6
U HILFE! - per ActionListener Felder enablen....... Java Basics - Anfänger-Themen 5
M Werte in Felder speichern und geordnet ausgeben Java Basics - Anfänger-Themen 8
A Felder: arithmetisches und geometrisches Mittel Java Basics - Anfänger-Themen 3
L Datentypen Deklarierte Felder einer Generic Klasse bestimmen Java Basics - Anfänger-Themen 7
Elyt Bei Monopoly werden Felder übersprungen Java Basics - Anfänger-Themen 2
L Listen und Felder Java Basics - Anfänger-Themen 2
neerual Int-Felder erzeugen Java Basics - Anfänger-Themen 16
P Felder König array Java Basics - Anfänger-Themen 6
T Art 4 Felder Matrix Memory Java Basics - Anfänger-Themen 2
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
D Felder Java Basics - Anfänger-Themen 2
D Übung Felder java Error kompilieren Java Basics - Anfänger-Themen 4
M Felder leer - überprüfen? Java Basics - Anfänger-Themen 2
S reflection und felder Java Basics - Anfänger-Themen 12
X Verknüpfte Excel Felder mitändern Java Basics - Anfänger-Themen 6
Z Erste Schritte 9x9 Felder Erzeugen+Aufrufen Java Basics - Anfänger-Themen 1
S Wie instanziert man Felder? Java Basics - Anfänger-Themen 11
V Zwei Felder Adderen Java Basics - Anfänger-Themen 2
W Methoden Falsche Felder von Methode belgegt Java Basics - Anfänger-Themen 14
M Spielfeld mit 10x10 Felder Java Basics - Anfänger-Themen 13
E Felder bei falscher Eingabe leeren Java Basics - Anfänger-Themen 8
S Felder mit Variablen/Tabellen verknüpfen! Java Basics - Anfänger-Themen 3
M Felder mit Methode verändern Java Basics - Anfänger-Themen 11
W Datentypen Felder mit Potenzen Java Basics - Anfänger-Themen 31
C Erste Schritte felder, die public final sind Java Basics - Anfänger-Themen 6
B Frage zur Effizienz - alle Array-Felder initialisieren oder jedes Feld auf null prüfen? Java Basics - Anfänger-Themen 4
C Felder(Größte Zahl, Index) Java Basics - Anfänger-Themen 6
K Felder Java Basics - Anfänger-Themen 5
M 3 Felder, Barcode, reinschreiben in die DB Java Basics - Anfänger-Themen 30
D Datentypen Felder: Deklaration und Initialisierung Java Basics - Anfänger-Themen 5
C Java Felder bearbeiten Hilfe Java Basics - Anfänger-Themen 4
H Felder mit unterschiedl. Typen sortieren Java Basics - Anfänger-Themen 5
B n-dimensionale Felder in m-dimensionale Felder konvertiert Java Basics - Anfänger-Themen 30
H felder vergleichen Java Basics - Anfänger-Themen 6
F Felder von aufrufender Klasse ändern Java Basics - Anfänger-Themen 16
A Felder Java Basics - Anfänger-Themen 7
A Mehrdimensionale Felder Java Basics - Anfänger-Themen 18
C Felder im Dialog zurücksetzen Java Basics - Anfänger-Themen 3
maddin86 Eine Methode für ein- und zweidimensionale double Felder als Parameter? Java Basics - Anfänger-Themen 5
A Felder- Minimum/Maximum Java Basics - Anfänger-Themen 2
D Felder Java Basics - Anfänger-Themen 7
D Felder Java Basics - Anfänger-Themen 2
T Border Layout alle mittleren felder gleich groß Java Basics - Anfänger-Themen 3
C Speicherverwaltung für Felder Java Basics - Anfänger-Themen 8
S EINDIMENSIONALE FELDER? Java Basics - Anfänger-Themen 23
G 3. Aufgaben und komme nicht weiter (Felder, Methoden) Java Basics - Anfänger-Themen 3
M Felder (Wo liegt der Fehler?) Java Basics - Anfänger-Themen 2
D Wie werden Felder grau? Java Basics - Anfänger-Themen 26
S generische Felder Java Basics - Anfänger-Themen 2
A Felder Java Basics - Anfänger-Themen 3
D String mit split teilen und leere Felder behalten Java Basics - Anfänger-Themen 4
R Felder unterschiedlichen Typs Java Basics - Anfänger-Themen 9
J 2 Felder aus DB selektieren u. in JList - eines verstecken? Java Basics - Anfänger-Themen 7
T Suche über mehrere Felder value = key = value Java Basics - Anfänger-Themen 3
B Array doppelt Felder löschen Java Basics - Anfänger-Themen 27
B clone(), Clonable und Felder von Interfacetypen Java Basics - Anfänger-Themen 3
G Felder kopieren Java Basics - Anfänger-Themen 8
G Felder-Länge Java Basics - Anfänger-Themen 2
G Felder zurückgeben? Java Basics - Anfänger-Themen 3
C Früheste Datum aus 3 Felder Java Basics - Anfänger-Themen 20
M Felder innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 2
D Felder vergleichen Java Basics - Anfänger-Themen 14
D Verbindung von Methoden und Felder Java Basics - Anfänger-Themen 3
A Aus dem menü heraus andere Felder bearbeiten Java Basics - Anfänger-Themen 2
S Statische Felder - statische Methoden Java Basics - Anfänger-Themen 2
G variable felder in java? geht das? Java Basics - Anfänger-Themen 4
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Erzeugen einer eindeutigen ID Java Basics - Anfänger-Themen 2
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
L Simples Spielfeld erzeugen Java Basics - Anfänger-Themen 1
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
S Array erzeugen mit verschiedener Verteilung Java Basics - Anfänger-Themen 11
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
I TextField Array mit for Loop erzeugen Java Basics - Anfänger-Themen 4
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14

Ähnliche Java Themen

Neue Themen


Oben