Class: Yahtzee::Turn

Inherits:
Object
  • Object
show all
Defined in:
lib/yahtzee.rb

Instance Method Summary collapse

Constructor Details

#initializeTurn

Returns a new instance of Turn.



60
61
62
63
64
65
66
67
68
# File 'lib/yahtzee.rb', line 60

def initialize
  @dice     = roll_dice 5
  
  @reroll_count = 0
  @reroll_max   = 2
  
  @joker = false
  @done  = false
end

Instance Method Details

#can_reroll?Boolean

Returns:

  • (Boolean)


80
81
82
# File 'lib/yahtzee.rb', line 80

def can_reroll?
  return true if @reroll_count < @reroll_max
end

#done?Boolean

Returns:

  • (Boolean)


112
113
114
# File 'lib/yahtzee.rb', line 112

def done?
  return @done
end

#finishObject



116
117
118
# File 'lib/yahtzee.rb', line 116

def finish
  @done = true
end

#get_diceObject



96
97
98
# File 'lib/yahtzee.rb', line 96

def get_dice
  return @dice
end

#get_preserveObject



92
93
94
# File 'lib/yahtzee.rb', line 92

def get_preserve
  return @preserve
end

#get_reroll_countObject



100
101
102
# File 'lib/yahtzee.rb', line 100

def get_reroll_count
  return @reroll_count
end

#joker?Boolean

Returns:

  • (Boolean)


104
105
106
# File 'lib/yahtzee.rb', line 104

def joker?
  return @joker
end

#reroll(preserve) ⇒ Object

1,1,1,1,1

preserves all



120
121
122
123
124
125
126
127
128
129
130
# File 'lib/yahtzee.rb', line 120

def reroll preserve # [1,1,1,1,1] preserves all
  if @reroll_count < @reroll_max
    a = roll_dice 5
    5.times do |i|
      if preserve[i] == 0
        @dice[i] = a[i]
      end
    end
  end
  @reroll_count += 1
end

#roll_dice(num_dice) ⇒ Object



70
71
72
73
74
75
76
77
78
# File 'lib/yahtzee.rb', line 70

def roll_dice num_dice
  a = []
  
  num_dice.times do
    a.push Random.rand(6) + 1
  end
  
  return a
end

#set_dice(a) ⇒ Object



88
89
90
# File 'lib/yahtzee.rb', line 88

def set_dice a
  @dice = a
end

#set_joker(value) ⇒ Object



108
109
110
# File 'lib/yahtzee.rb', line 108

def set_joker value
  @joker = value
end

#set_preserve(pr) ⇒ Object



84
85
86
# File 'lib/yahtzee.rb', line 84

def set_preserve pr
  @preserve = pr
end