Simulacija: miška
(delovno ime: "Ajde, miška mala")
Simulirajte gibanje miške pri iskanju sira na diskretni kvadratni mreži celih števil. Mreža je velikosti $[-a, a]^2$ za naravno število $a$. Sir se nahaja na desnem robu kvadrata, na mestu $[a; \mbox{sirPozicija}]$. Miška začne v $(0,0)$ in se v vsakem koraku naključno premakne za eno polje naprej (←,→,↓,↑). Ko najde sir, se simulacija konča.
T(i) vrne število korakov, ki jih je miška potrebovala, da je prišla do sira.
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%% osnutek kode
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
function [T] = miska(a,sirPozicija,N,risi)
% function [T] = miska(a,sirPozicija,N,risi)
if nargin < 4
risi = false;
end
slikica_mis = imread('mis_clipart.jpg');
slikica_mis = flipud(slikica_mis);
slikica_sir = imread('sir_clipart.jpg');
slikica_sir = flipud(slikica_sir);
markersize = [1/2,1/2]; %//The size of marker is expressed in axis units, NOT in pixels
x_low = @(x) x - markersize(1)/2; %//Left edge of marker
x_high = @(x) x + markersize(1)/2;%//Right edge of marker
y_low = @(y) y - markersize(2)/2; %//Bottom edge of marker
y_high = @(y) y + markersize(2)/2;%//Top edge of marker
% T(i) je stevilo korakov miske
T = zeros(1,N);
% izris zacetnega stanja:
if risi
axis([-a,a,-a,a]);
grid on;
hold on;
plot(0,0,'ro');
end
imagesc([x_low(a) x_high(a)], [y_low(sirPozicija) y_high(sirPozicija)], slikica_sir);