Never try to move() if you are at a wall. This will cause a Karel crash.

You need an outer loop to control the rows (vertical movement) and an inner loop to control the columns (horizontal movement). Coordinate Math: The canvas uses coordinates. The top-left corner is

Here is a comprehensive breakdown of how to approach the code, the logic behind it, and the final implementation.

Hardcoding the size of the squares is a common mistake. CodeHS provides the canvas width and height globally via getWidth() and getHeight() . Because a checkerboard is a perfect square grid, you calculate the size of a single square like this: javascript

Defining NUM_ROWS and NUM_COLS at the top of your script is a programming best practice. If you later want to change your checkerboard into a

Computers draw graphics using pixel offsets from the top-left corner (0,0) . Multiplying the row and column iteration variables ( r and c ) by the SQUARE_SIZE guarantees that no two squares overlap and no gaps are left behind. Common Pitfalls and Debugging Tips

Proof of correctness:

print_board(board)

if (row + col) % 2 == 0: evaluates the grid position. For example: Row 0, Col 0: →right arrow Row 0, Col 1: →right arrow Row 1, Col 0: →right arrow