Now that you've initialized the board, and that you've drawn it, it's time to let the user edit it and make their moves. So in that 15.c function, the program takes input from the user and then calls the move function, passing in the number of the tile that the user wants to move. Now be careful. This is the actual number of the tile and not its actual position. So you'll need to search for the tile's position to know where it is. Now, you should only allow the user to make a move if it's legal. A legal move is any tile that is adjacent to the blank tile. That means above and below, to the left and to the right. So you'll need to know where the blank tile is as well. Now, for every move, you're searching for the user's tile. But it's probably not best to search for the blank tile every time, because you're doing it every single time the user wants to move. So instead, it's best to remember where the blank tile is, using some well named variables. So once you allow the user to make their moves, they are well on their way to winning the game of 15.