The dice is rolled at the start of each loop. Rather than moving the player immediately, a
switch statement is used to consider the result of the move, and to work out if the move is
allowed:
If the dice roll will move the player onto the final square, the game is over. The
break gameLoop statement transfers control to the first line of code outside of the while
loop, which ends the game.
If the dice roll will move the player beyond the final square, the move is invalid,
and the player needs to roll again. The continue gameLoop statement ends the current
while loop iteration and begins the next iteration of the loop.
In all other cases, the dice roll is a valid move. The player moves forward by diceRoll
squares, and the game logic checks for any snakes and ladders. The loop then
ends, and control returns to the while condition to decide whether another turn is
required.