function y2=punt(y,aim,maxpunt,sigma,lambda) % y2=where other team gets ball (e.g. 20) % y=where we have ball % aim=where we are aiming on a pooch kick (e.g. 93) % maxpunt=average unconstrained punt % sigma=standard deviation for unconstrained punt % lambda=scale parameter for punt return on unconstrained punt mu=min(aim,y+maxpunt); scale1=(mu-y+12)/(maxpunt+12); sd=sigma*scale1; landed=mu+sd*randn; scale2= max(0, (landed-y)/maxpunt ); lambda0=lambda*scale2; if landed >= 100 y2=20; else y2= max(1, min( round((100-landed)-lambda0*log(1-rand)) ,99)); end