AI Features

Moving the Whole Board

Learn how to move the complete board.

By the end of this lesson, you will:

  • Implement move_board(board, direction) -> (new_board, gained_score, moved_flag).

  • Reuse compress_row and merge_row to implement a left move.

  • Use reverse and transpose transformations to reuse left-move logic for right/up/down.

  • Keep move_board pure (returning a new board instead of mutating the original).

  • Wire move_board into main() so the user can actually move tiles with w/a/s/d.

  • Use AI to:

    • Help describe the transformation strategy

    • Generate helper functions (transpose, reverse_rows)

    • Refine their move_board implementation.

We have implemented the complete board movement thus far, but only assuming the user presses the left arrow key (or key ‘a’). Now it’s time to use that to implement the other three directions as well.

Step 0: Starter code

We start from the end-of-lesson file from the previous lesson (where compress_row ...