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);   

Zadnja sprememba: sreda, 20 april 2022, 12:08 PM