Java Hausaufgabe- Schachbrettmuster

puls107

Member
17 Juni 2010
5
1
Mir wurde die Aufgabe gestellt , diesen Quellcode so zu verändern , dass es aussieht wie ein Schachbrett.

Kann mir bitte jemand dabei helfen , ich finde nicht raus was ich ändern muss.

Code:
import java.applet.*;
import java.awt.*; 

class ZELLe
{
  int xZ, yZ;
  int dZ;
  boolean bLgt;
  public Graphics ze;
  public void zeichne()
  { ze.setColor(Color.black);
    ze.drawRect(xZ*dZ,yZ*dZ,dZ,dZ);
    if ( bLgt==true )
    { ze.setColor(Color.red);
       ze.fillRect(xZ*dZ+3,yZ*dZ+3,dZ-6,dZ-6);
    }
}

ZELLe() { bLgt=false; }
}

class FELD 
{
 int bZ=40;
 int xmaxW=8, ymaxW=8;
 boolean zUst[][] = new boolean [ymaxW+2][xmaxW+2];
 
 void loesche()
 { for (int xx=1; xx<=xmaxW; xx++)
     { for (int yy=1; yy<=ymaxW; yy++) { zUst[yy][xx]=false; }
    }
}

void starte()
{ for (int xx=1; xx<=xmaxW; xx++)
  { for (int yy=1; yy<=ymaxW; yy++) 
  { if (xx%2<=1 && yy%2==1) zUst[yy][xx]=true;
}
}
}
  FELD() { loesche(); starte(); }
}

public class sBrett extends Applet

{
 public FELD myF = new FELD();
 public ZELLe z = new ZELLe();
 
 public void paint (Graphics git)
 { z.ze=git;
     
     for (int xx=1; xx<=myF.ymaxW; xx++)
     { for (int yy=1; yy<=myF.xmaxW; yy++)
         { z.xZ=xx; z.yZ=yy; z.dZ=myF.bZ;
             z.bLgt=myF.zUst[yy][xx];
             z.zeichne();
            }
        }
    }
}
 
Zuletzt bearbeitet:
Naja macht keinen Sinn, wenn dir jemand das macht. Wo kommst du nicht weiter?

Läuft es soweit bei dir? Was hast du versucht zu ändern? Was kam bei Raus...
 
Ich hatte in den beiden Bereichen versucht die Startpunkte zu verändern etc.

Code:
 void loesche()
 { for (int xx=1; xx<=xmaxW; xx++)
     { for (int yy=1; yy<=ymaxW; yy++) { zUst[yy][xx]=false; }
    }
}

Code:
void starte()
{ for (int xx=1; xx<=xmaxW; xx++)
  { for (int yy=1; yy<=ymaxW; yy++) 
  { if (xx%2<=1 && yy%2==1) zUst[yy][xx]=true;
}
}
}

Allerdings habe ich überhaupt keinen Anhaltspunkt bekommen wie soetwas funktionieren soll , also ich soll es rein mit Ausprobieren herausbekommen , was ich für ziemlich irrsinnig halte
 
[...] also ich soll es rein mit Ausprobieren herausbekommen , was ich für ziemlich irrsinnig halte
Programmieren ist keine Ausprobiererei 8O
Guck dir den gegebenen Code an, verstehe ihn, dann ist es wohl ganz einfach, die nötigen Änderungen zu machen.

Hast du den Code schon mal durchgesteppt, um seine Funktionsweise zu verstehen?
 
theHacker hat dir ja schon tipps gegeben, die du unbedingt beherzigen solltest falls du in Zukunft weiter programmieren willst/musst. Nicht zu verstehen was man da macht ist ein NoGo.

Zugegeben, den Code den du da vorgesetzt bekommen hast, ist alles andere als schön. Angefangen von schlechten OOP-Versuchen (öffentliche Attribute, die auch noch wild von irgendwoher gesetzt werden) bis hin zu denkbar ungeeignete, teils kryptischen Variablennamen (bLgt vs. belegt) machen nicht gerade Spaß beim lesen.

Aber du wirst den Code ja nicht einfach so bekommen haben ohne irgendwelche Grundlagen vermittelt bekommen zu haben.

Ein kleiner Ansatz:
Schau dir ein Schachbrett an, und überleg dir wie du beschreiben kannst, welche Felder "belegt" sein müssen, indem du die Begriffe "Zeile", "Spalte", "gerade", "ungerade" verwendest.

Wenn du dann noch den Debugger bemühst und Zeile für Zeile durchgehst, die die Werte der Variablen anschaust, ggf. noch den guten alten Zettel und das gute alte Papier zur Hilfe nimmst und dir z.B auch noch das Array aufmalst und dir den inhalt am ende anschaust, dann sollte es so langsam klick machen.
 
Aber du wirst den Code ja nicht einfach so bekommen haben ohne irgendwelche Grundlagen vermittelt bekommen zu haben.


Genau das ist hier der Fall !

Ich wollte da mir jemand sagt was verändert werden muss , dann kann ich mir das anschaun und daraus lernen.
Irgendwelche altklugen Ratschläge helfen mir in dem Fall nicht weiter.
Ich weiß nichts über Java , d.h. die Begriffe mit denen du um dich wirfst sagen mir nicht viel.

Zum Schluss noch einmal , kann mur nun jemand dabei helfen oder nicht ?!
 
Du kannst mir nicht erzählen das dir ein Lehrer (oder wer auch immer) einen solchen Code vorsetzt, ohne dir vorher die Grundlagen der Programmiersprache Java erklärt zu haben....ich schätze eher mal du hast nicht aufgepasst...

In der Programmierung gilt vor allem eins: Learning by Doing...

Du hast hier genug Ratschläge bekommen die dir weiterhelfen können, keiner, selbst wenn er die Lösung kennt wird sie dir sagen, da jeder der was von Programmierung versteht weiß das niemandem geholfen ist wenn einem in Sachen Programmierung alles vorgekaut wird....so lernt man in dem Bereich nie was...

Übrigens solltest du deine Wortwahl überdenken wenn du Hilfe haben möchtest...
 
Und noch mehr altkluge Ratschläge , vielen Dank.

Wenn ich sage genau das ist hier der Fall , dann ist es auch so.
Das einzigste was wir bekommen sind Quellcodes zum abschreiben und du sagst es doch selber , learning by doing.


Du sagst in einem Post ich kann hier keine Hilfe erwarten und im selbigen ich sollte meien Wortwahl geschickter whlen damit ich Hilfe bekomm ...
ich denke mal das hier hat keinen Sinn mehr .....
 
Es geht darum, dass Dir hier niemand sagen wird WAS Du zu tun hast. Du wirst hier oft nur Denkanstöße bekommen. Was willst Du denn sonst lernen bzw. begreifen, wenn Du die fertige Lösung bekommst?

Man geht hier davon aus, dass ein gewisses Maß an Basiswissen vorhanden ist, sonst würdest Du solch Aufgabenstellung wohl kaum bekommen. Das ist Logik und keine Klugscheißerei!

Und die Wortwahl... -.-
 
Wenn ich sage genau das ist hier der Fall , dann ist es auch so.
Das einzigste was wir bekommen sind Quellcodes zum abschreiben und du sagst es doch selber , learning by doing.
Darf ich mal ernsthaft fragen auf welcher Schule, welcher Jahrgangsstufe und welchem Fach man solchen Unterricht haben soll? :roll:

Sorry, aber das kann ich mir beim besten Willen nicht vorstellen...

Gruß Aru
 
Ich leider schon, es gibt so manche Lehrer die komische Lehrmethoden haben. Die sollten wir aber ja nun nicht unterstützen.

@puls107
Es geht darum, stell geziehlte fragen. Wenn du zum Beispiel zeile xy nicht verstehst was da passiert, oder du z.b. hilfe Brauchst wo du anfangen sollst den Code zu lesen...

Hast du den Aktuellen Code schon zum laufen bekommen!?
 
Darf ich mal ernsthaft fragen auf welcher Schule, welcher Jahrgangsstufe und welchem Fach man solchen Unterricht haben soll? :roll:
Vermutlich is das ne Aufgabe, die dann am Ende vielleicht sogar benotet wird und unserer "Ich weiß nichts über Java"-Threadersteller hat im Unterricht einfach nur gepennt und will jetzt trotzdem noch gut abschneiden :roll:

Tja, so läuft das aber nicht :p
 
Ich hab das Gefühl unser TE will die gut gemeinten Ratschläge hier einfach nicht annehmen....er will eine fertige Lösung haben, weil er wohl einfach zu faul ist selbst bisschen nachzudenken...

Also, nochmal ganz langsam: Wie schon gesagt, wenn du bestimmte Zeilen nicht verstehst, dann poste sie und wir werden versuchen dir zu erklären was da passiert.

Wenn du von Java wie du sagst wirklich keinen blassen Schimmer hast hast du entweder wirklich einen sau schlechten Lehrer, oder du hast nicht aufgepasst...gehüpft wie gesprungen, irgendwie musst dus dir dann jetzt aneignen, wenn du diese Aufgabe lösen willst, da du hier wie gesagt keine fertige Lösung, sondern nur Tipps bekommen wirst..

~ Renommeediskussion entfernt (Mone) ~
 
Zuletzt bearbeitet von einem Moderator: