Monty Hall Problem (two cases against one) I considered case by case, seeing that in two I win if I choose to change. The problem is I can not explain why the case when I choose the correct door at the beginning must be seen as one, since then the presenter could open either door without the award (they are two events). Then I get two cases in which I win changing, and two cases in which I win not changing. I know that really should be seen as a single case, but I can not get a clear way to explain it.
Something I tried was programming the game, always setting randomly in which position is the award. In addition, there are two routines that randomly select a position; one of them is always changing the election after a door is opened, and the other one always keeps the initial choice. I have a variable for each subroutine, and each adds a unit when the corresponding routine succeeds. Doing it a lot of times and dividing each variable by the number of iterations, I get the approximate probability. With a million iterations, the results are $1/3$ and $2/3$ with a small margin of error.
The important thing is for the routine that never changes the starting position, I could have put a piece of code that select another door to open it, but that is unnecessary for the variable that carries the accounting, because in the end I will always keep previous election. That piece of code does not change the result, and that justifies that the case when correct door is selected at first must be seen as one. But for someone who does not understand much programming, it is unclear.
 A: In order to get probabilities by counting cases, you need to be sure that everthing you count as a "case" is equally likely.
In the Monty Hall case it seems to be reasonable to assume that each of the 9 combinations of which door you choose and which door the prize is behind are equally likely.
If you also take "which door does the host choose?" to be part of the definition of what makes a "case" you lose this property, because even whether he has a choice or not depends on which of the 9 equally likely cases we have in the first place.
You might as well consider a game without any opportunity to switch ever, but consider it it part of a "case" which bad joke the host tells before opening the door you've chosen, and he has 100 jokes to tell, but only actually tells one if you happen to have chosen the prize door. Counting cases in this case would lead you to believe you have a very high chance of winning, which is of course absurd.
In the classical Monty Hall scenario, the case-counting with 9 cases is saved by the fact that if the host has a choice at all, the choice he makes is not going to change whether you win or not, assuming you have decided in advance whether you're going to switch or not.
A: There are lots of analyses of the Monty Hall problem on the web, and I won't try to reproduce one here. 
I may be able to suggest how you might explain this

The problem is I can not explain why the case when I choose the
  correct door at the beginning must be seen as one

to your nonprogrammer friend.
If you instrument your code to indicate how often this alternative occurs as well as the final outcome you will see that it's one third of the time - the same as each of the other two options. That might help convince someone that it should count as "one case" just like each of the other two.
(This is of course just your program illustrating the underlying tree of possibilities, with the probabilities of each branch attached.)
