Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class WaterJug
- def initialize
- @jaroA = 3
- @jaroB = 2
- @a = 0
- @b = 0
- @goal = 1
- end
- def checkGoal
- fin = 0
- while(fin != 1)
- fin = 1 if @a.eql?(@goal) || @b.eql?(@goal)
- if @a.eql? 0
- fillA
- elsif @a > 0 && (@b != @jaroB)
- transferAtoB
- elsif @a > 0 && (@b.eql? @jaroB)
- emptyB
- end
- end
- end
- private
- def fillA
- @a = @jaroA
- puts "enche A => (A=#{@a}, B=#{@b})"
- end
- def fillB
- @b = @jaroB
- puts "enche B => (A=#{@a}, B=#{@b})"
- end
- def transferAtoB
- fin = 0
- while(fin != 1)
- @b += 1
- @a -= 1
- fin = 1 if @b.eql?(@jaroB) || @a.eql?(0)
- end
- puts "transfere de A para B => (A=#{@a}, B=#{@b})"
- end
- def emptyA
- @a = 0
- puts "esvazia A => (A=#{@a}, B=#{@b})"
- end
- def emptyB
- @b = 0
- puts "esvazia B => (A=#{@a}, B=#{@b})"
- end
- end
- WaterJug.new().checkGoal
Add Comment
Please, Sign In to add comment