public void run() // Loop through each row for (int row = 0; row < NUM_ROWS; row++) // Loop through each column in the current row for (int col = 0; col < NUM_COLS; col++) // Calculate the x and y coordinates for this square int x = col * SQUARE_SIZE; int y = row * SQUARE_SIZE; // Create a new GRect (square) GRect square = new GRect(x, y, SQUARE_SIZE, SQUARE_SIZE); square.setFilled(true); // Determine the color based on the checkerboard pattern // Even sum starts with RED at (0,0) if ((row + col) % 2 == 0) square.setColor(Color.RED); else square.setColor(Color.BLACK); // Add the square to the canvas add(square);
If you've landed on this article, you're likely working through the CodeHS Java course (specifically the "Methods and Control Structures" or "Basic Java" units) and have hit the infamous 9.1.7 Checkerboard v2 exercise. Don't worry—you're not alone. This problem is a rite of passage for learning nested loops, modulus logic, and graphical user interface (GUI) manipulation in Java. 9.1.7 checkerboard v2 answers
private static final int NUM_ROWS = 8; private static final int NUM_COLS = 8; private static final int SQUARE_SIZE = 50; // Pixels per square public void run() // Loop through each row
import acm.graphics.*; import acm.program.*; import java.awt.*; public class Checkerboard extends GraphicsProgram private static final int NUM_ROWS = 8; private