goat = ;
car = ;
curtain = Graphics[{Red , Rectangle[]}];
selection = Graphics[{Green , Rectangle[]}];
goatI = Graphics[{Inset[goat]} , PlotRange->{{-1 , 1},{-1 , 1}}];
carI = Graphics[{Inset[car]} , PlotRange->{{-1 , 1},{-1 , 1}}];
curtainI = Graphics[{Inset[curtain]} , PlotRange->{{-1 , 1},{-1 , 1}}];
selectionI = Graphics[{Inset[selection]} , PlotRange->{{-1 , 1},{-1 , 1}}];
continue = 0; stage = {curtainI , curtainI , curtainI};wins = 0; total = 0;
reset[]:= (continue = 0; stage = {curtainI , curtainI , curtainI};wins = 0; total = 0;);
rewardQ[change_ , delay_ ] := Module[{choice,reward , door},
stage = {curtainI , curtainI , curtainI};
Pause[delay];
(**)
choice = RandomChoice[{1 , 2 , 3}];
stage[[choice]] = selectionI;
Pause[delay];
(**)
reward = RandomChoice[{1 , 2 , 3}];
door = RandomChoice[DeleteCases[{1 ,2 , 3} , reward|choice]];
stage[[door]] = goatI;
Pause[delay];
(**)
If[change,
stage[[choice]] = curtainI;
Pause[delay];
choice = DeleteCases[{1 ,2 , 3} , choice|door][[1]];
stage[[choice]] = selectionI;
Pause[delay];
]; 
(**)
stage = {goatI , goatI , goatI};
stage[[reward]] = carI;
Pause[delay];
total = total + 1;
If[(choice == reward) , wins = wins + 1];
(choice == reward)
];
Dynamic[Column[{GraphicsRow[stage] , "wins = "<>ToString[wins]  , "total = "<>ToString[total] , If[total > 0 , ToString[N[100 wins / total]]<>"%"]}]]

Row[{Button["reset" , reset[] , Method->"Queued"] , Button["run once without change",rewardQ[False , 5] , Method->"Queued"],Button["run 100 without change",Do[rewardQ[False , 0.1] , 100] , Method->"Queued"]}]

Row[{Button["reset" , reset[] , Method->"Queued"] , Button["run once with change",rewardQ[True , 5] , Method->"Queued"],Button["run 100 with change",Do[rewardQ[True , 0.1] , 100] , Method->"Queued"]}]