9.1.7 Checkerboard V2 Codehs -

System.out.print("Enter number of rows: "); int rows = input.nextInt(); System.out.print("Enter number of columns: "); int cols = input.nextInt(); for (int i = 0; i < rows; i++) for (int j = 0; j < cols; j++) if ((i + j) % 2 == 0) System.out.print("@"); else System.out.print("."); System.out.println(); // new line after each row

Whether you are printing text to the console or drawing colored rectangles on a canvas, the logic remains identical. Write your code to be flexible (no magic numbers), test edge cases (1 row or 1 column), and always double-check your starting color. 9.1.7 Checkerboard V2 Codehs

if (row % 2 == 0) // normal parity else // shifted: (col % 2 == 0) gives opposite System

1. Off-by-One Errors in Parity Wrong: if (row % 2 == 0) — This creates stripes, not a checkerboard. Fix: Always use (row + col) % 2 == 0 . 2. Hardcoding Dimensions The "V2" often implies a variable board size. If the autograder tests with 10x10 and your code only works for 8x8, you will fail. Fix: Use constants or user input at the top of your function. 3. Incorrect Starting Color If the expected output starts with a dark square at (0,0), ensure your if branch matches that. Swap colors if needed. 4. Graphical Version – Gaps Between Squares Using setFilled(true) alone might leave a tiny border. Some CodeHS exercises expect setFilled(true) without setColor for the outline. If gaps appear, set the outline color to match the fill color: Off-by-One Errors in Parity Wrong: if (row %

var rect = new Rectangle(x, y, SQUARE_SIZE, SQUARE_SIZE); rect.setColor(color); rect.setFilled(true); add(rect);

square.setColor(square.getFillColor()); Sometimes students write a complex condition like ((row % 2 == 0 && col % 2 == 0) || (row % 2 != 0 && col % 2 != 0)) . This is logically correct but verbose and error-prone. Stick with (row + col) % 2 . Advanced Variations of 9.1.7 Checkerboard V2 Variation A: Diamond or Hexagonal Checkerboard Some "V2" extensions require non-square patterns. The parity rule still applies, but you might need to offset odd rows. Example: staggered rows like a brick wall.

If (row + column) % 2 == 0 → Color A. If (row + column) % 2 == 1 → Color B.