snakes_matrix, a Python code which computes the transition matrix for the game of Snakes and Ladders.

Snakes and Ladders is a children's game played on a 10x10 numbered board. A player's turn consists of rolling a single die, and moving the indicated number of squares. If the final square is the foot of a ladder, the player moves up to a higher numbered square. If the final square is the mouth of a snake, the player moves downward.

By adding a square 0, where the player begins, the game board can be modeled as a vector of length 101, and the transitions from one square to another can be modeled by a transition matrix. Most commonly, the entries in row I will be zero except that columns I+1 through I+6 will have the value 1/6. However, rows which correspond to a snake or ladder, and rows for which I+6 is greater than 100, must be handled specially.

Given the transition matrix A, the one player game can be modeled as a Markov Chain Monte Carlo system. In particular, given an initial starting vector v, the probability distribution after one move is the vector A' * v, and repeated multiplication by A' will display the exact probability distribution at every step.


The computer code and data files made available on this web page are distributed under the MIT license


snakes_matrix is available in a MATLAB version and a Python version.

Related Data and Programs:

brownian_motion_simulation, a Python code which simulates Brownian motion in an M-dimensional region.

chuckaluck_simulation, a Python code which simulates the Chuck-a-Luck gambling game.

duel_simulation, a Python code which simulates n repetitions of a duel between two players, each of whom has a known firing accuracy.

fire_simulation, a Python code which simulates a forest fire over a rectangular array of trees, starting at a single random location.

jordan_matrix_random, a Python code which returns a random matrix in Jordan canonical form.

risk_matrix, a Python code which computes the transition and adjacency matrix for the game of risk.

snakes_and_ladders, a Python code which simulates the game of snakes and ladders.

wathen_matrix, a Python code which compares storage schemes (full, banded, sparse triplet, sparse) and solution strategies (A\x, linpack, conjugate gradient (CG)) for linear systems involving the Wathen matrix, which can arise when solving a problem using the finite element method (FEM).


  1. Steve Althoen, Larry King, Kenneth Schilling,
    How long is a game of Snakes and Ladders?,
    The Mathematical Gazette,
    Volume 77, Number 478, March 1993, pages 71-76.
  2. Nick Berry,
    A Mathematical Analysis of Snakes and Ladders,

Source Code:

Last modified on 23 March 2022.