Guest User

Untitled

a guest
Apr 20th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.94 KB | None | 0 0
  1. class WaterJug
  2.  
  3. def initialize
  4. @jaroA = 3
  5. @jaroB = 2
  6. @a = 0
  7. @b = 0
  8. @goal = 1
  9. end
  10.  
  11. def checkGoal
  12. fin = 0
  13.  
  14. while(fin != 1)
  15. fin = 1 if @a.eql?(@goal) || @b.eql?(@goal)
  16.  
  17. if @a.eql? 0
  18. fillA
  19. elsif @a > 0 && (@b != @jaroB)
  20. transferAtoB
  21. elsif @a > 0 && (@b.eql? @jaroB)
  22. emptyB
  23. end
  24. end
  25. end
  26.  
  27. private
  28.  
  29. def fillA
  30. @a = @jaroA
  31. puts "enche A => (A=#{@a}, B=#{@b})"
  32. end
  33.  
  34. def fillB
  35. @b = @jaroB
  36. puts "enche B => (A=#{@a}, B=#{@b})"
  37. end
  38.  
  39. def transferAtoB
  40. fin = 0
  41.  
  42. while(fin != 1)
  43. @b += 1
  44. @a -= 1
  45.  
  46. fin = 1 if @b.eql?(@jaroB) || @a.eql?(0)
  47. end
  48.  
  49. puts "transfere de A para B => (A=#{@a}, B=#{@b})"
  50. end
  51.  
  52. def emptyA
  53. @a = 0
  54. puts "esvazia A => (A=#{@a}, B=#{@b})"
  55. end
  56.  
  57. def emptyB
  58. @b = 0
  59. puts "esvazia B => (A=#{@a}, B=#{@b})"
  60. end
  61.  
  62. end
  63.  
  64. WaterJug.new().checkGoal
Add Comment
Please, Sign In to add comment