Schackbräda med nästlad for-slinga[JAVA]

Permalänk
Medlem

Schackbräda med nästlad for-slinga[JAVA]

Hej!

Har under en tid försökt lära mig Java på min fritid
Hur som helst så står det i en uppgift att jag ska göra en "shackbräda med en nästlad for-slinga"

Jag tror jag har fått till att nästla for-slingan, problemet är dock att jag inte riktigt vet hur jag ska fortsätta för att få varje ny rektangel att flytta sig ca 5px.

Här kommer i alla fall koden:
Shack.java

import java.awt.*; public class Schack { private int a,b,r,k,s; public Schack(int r, int k, int s) // konstruktor { this.r = r; this.k = k; this.s = s; } public void setPosition( int a, int b) { this.a= a; this.b = b; } public void rita(Graphics g) { for(int i = 0; i < r+1 ; i++) { g.fillRect(a, b+s*i, a+k*s, b+s*i); } for(int i = 0; i < k +1; i++) { g.fillRect(a+s*i, b , a + s * i , b+r*s); } } }

VisaSchack.java

import java.applet.*; import java.awt.*; public class VisaSchack extends Applet { Rutnat r; public void init() { r = new Rutnat( 1, 1, 10); r.setPosition( 5, 5 ); } public void paint(Graphics g) { r.rita(g); } }

Skulle bli tacksam om någon kunde ge mig en ledtråd för hur jag ska göra

Permalänk
Medlem
Citat:

Ursprungligen inskrivet av erik_93
Hej!

[...]

Tjena.

Mitt första tips är att skippa "a" och "b"-variabler. Om det är en räknare i en indexerad for-loop så är det lugnt. Det blir extra svårt att tolka koden när en bokstav ska representera ett ord.

Det är inte kul att chansa på vad dina siffror och bokstäver skulle kunna betyda.

Du nästlar inte for-looparna.

På detta vis nästlar du:

int xPos = 0; int yPos = 0; for ( int row = 0; row < totalRows; row++) { for (int col = 0; col < totalCols; col++) { //Rita ut med xPos*totalCols och yPos*totalRows yPos += 5; } xPos = 0; }

Tänk dig:
- Loopa antalet rader
- För varje rad, öka "y" positionen med 5px.
- När en rad är klar nollställer du x.
- Loopa antalet kolumner (rutor).
- Rita ut kvadraten med sidan 5px.
- För varje kolumn, öka "x" positionen med 5px.

Visa signatur

ηλί, ηλί, λαμά σαβαχθανί!?