language: Ruby (ruby-1.9.2)
date: 108 days 1 hour ago
link:
visibility: public
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class MontyHall 
  
  def initialize
        @doors = Array.new(3, :goat)
        @doors[rand(3)] = :car
        @chosen_door = rand(3)
        @open_door = rand(3)
        while @open_door == @chosen_door or @doors[@open_door] == :car
          @open_door = rand(3)
        end
  end
  
  def win?
        @doors[@chosen_door] == :car
  end
  
  def switch!
        @chosen_door = ([0, 1, 2] - [@chosen_door, @open_door])[0]
  end
end
 
cases_num = gets.to_i
 
wins = 0
cases_num.times do
  game = MontyHall.new
  wins += 1 if game.win?
end
 
puts "No switch: #{wins} wins in #{cases_num} cases"
 
wins = 0
cases_num.times do
  game = MontyHall.new
  game.switch!
  wins += 1 if game.win?
end
 
puts "Switch: #{wins} wins in #{cases_num} cases"