Here is a snake and ladder game and this was the markov chain matrix
A = [
%1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %1
0 W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %2
0 0 W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %3
0 0 0 W W 0 0 0 0 0 0 0 0 0 W 0 0 0 0 0 %4
0 0 0 0 W 0 W 0 0 0 0 0 0 0 W 0 0 0 0 0 %5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %6
0 0 W 0 0 0 W 0 0 0 0 0 0 0 0 0 W 0 0 0 %7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %9
0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 0 0 %10
0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 0 %11
0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 %12
0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 %13
0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 %14
0 0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 %15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 %16
0 0 0 0 0 0 0 0 0 0 W 0 0 0 0 0 W 0 W 0 %17
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 W T %19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 %20
];
The complete Matlab program is here
% Author: Tim Chartier
% Title: snakes.m
%% Probabilities for different outcomes of rolling a die
D1 = 1/3; % stay
D2 = 1/3; % move ahead 1
D3 = 1/3; % move ahead 2
%% Transition matrix for small game board
B = [
D1 D2 D3 0 0 0 0 0 0 % 1
0 D1+D3 D2 0 0 0 0 0 0 % 2
0 D2 D1 0 D3 0 0 0 0 % 3
0 1 0 0 0 0 0 0 0 % 4
0 0 0 0 D1 0 D3 D2 0 % 5
0 0 0 0 0 0 0 1 0 % 6
0 0 0 0 0 0 D1 D2 D3 % 7
0 0 0 0 0 0 0 D1 D2+D3 %8
0 0 0 0 0 0 0 0 1 % 9
];
W = 1/3; % 1 Step
T = 2/3 % 2 Step
%% Transition matrix for Large game board
A = [
%1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0
W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %1
0 W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %2
0 0 W W W 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %3
0 0 0 W W 0 0 0 0 0 0 0 0 0 W 0 0 0 0 0 %4
0 0 0 0 W 0 W 0 0 0 0 0 0 0 W 0 0 0 0 0 %5
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %6
0 0 W 0 0 0 W 0 0 0 0 0 0 0 0 0 W 0 0 0 %7
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %8
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %9
0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 0 0 %10
0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 0 %11
0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 0 %12
0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 0 %13
0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 0 %14
0 0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 0 %15
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 W W W 0 0 %16
0 0 0 0 0 0 0 0 0 0 W 0 0 0 0 0 W 0 W 0 %17
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 %18
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 W T %19
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 %20
];
%% Create initial vector
v = zeros(1,20);
v(1) = 1;
%% CREATE INITIAL VECTOR
%%=zeros(1,20);
%%p(1)=1;
%% Iterate through turns
G = v’; % this vector stores the probability vector for each turn
for i = 1:30
v = v*A;
G = [G,v’];
end
%% ITERATE THROUGH TURNS
K = p’;
%%for i = 1:
%% This graphs the probabilities as a visual way to analyze the game
Ginvert = -G + 1;
image(256*Ginvert), colormap(gray(256)), axis off equal tight