Class: GamesParadise::Solitaire::Solitaire
- Inherits:
-
Base
- Object
- Base
- GamesParadise::Solitaire::Solitaire
show all
- Defined in:
- lib/games_paradise/solitaire/solitaire.rb
Overview
GamesParadise::Solitaire::Solitaire
Constant Summary
collapse
- N_DISTINCT_CARDS =
#
N_DISTINCT_CARDS
Specify how many cards are in a given Solitaire deck.
#
52
- ARRAY_AVAILABLE_RANKS =
#
ARRAY_AVAILABLE_RANKS
#
%w(
Ace
2
3
4
5
6
7
8
9
10
Jack
Queen
King
)
Constants inherited
from Base
Base::CONTROL_C_CODE, Base::N
Class Method Summary
collapse
-
.[](i = '') ⇒ Object
# === GamesParadise::Solitaire[] ========================================================================= #.
-
.set_solitaire(i) ⇒ Object
# === Solitaire.set_solitaire ========================================================================= #.
-
.solitaire? ⇒ Boolean
# === GamesParadise::Solitaire::Solitaire.solitaire? ========================================================================= #.
Instance Method Summary
collapse
Methods inherited from Base
#cat, #commandline_arguments?, #efancy, #eparse, #first_argument?, #forestgreen, #gold, #lightblue, #lightgreen, #mediumorchid, #mediumslateblue, #opnn, #peru, #register_sigint, #rev, #royalblue, #set_commandline_arguments, #sfile, #steelblue, #teal, #tomato, #yellow
Methods included from BaseModule
#cliner, #commandline_arguments?, #first_argument?, #infer_the_namespace, #namespace?, #rename_file, #reset_the_internal_hash, #return_pwd, #set_commandline_arguments
Constructor Details
#initialize(commandline_arguments = nil, run_already = true) ⇒ Solitaire
76
77
78
79
80
81
82
83
84
85
86
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 76
def initialize(
commandline_arguments = nil,
run_already = true
)
reset
set_commandline_arguments(
commandline_arguments
)
GamesParadise::Solitaire::Solitaire.set_solitaire(self)
run if run_already
end
|
Class Method Details
.[](i = '') ⇒ Object
#
GamesParadise::Solitaire[]
#
211
212
213
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 211
def self.[](i = '')
new(i)
end
|
.set_solitaire(i) ⇒ Object
#
Solitaire.set_solitaire
#
62
63
64
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 62
def self.set_solitaire(i)
@solitaire = i
end
|
.solitaire? ⇒ Boolean
#
GamesParadise::Solitaire::Solitaire.solitaire?
#
69
70
71
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 69
def self.solitaire?
@solitaire
end
|
Instance Method Details
#array_a_full_deck? ⇒ Boolean
Also known as:
remaining_cards?
154
155
156
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 154
def array_a_full_deck?
@array_a_full_deck
end
|
#array_stacks? ⇒ Boolean
Also known as:
stacks?
197
198
199
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 197
def array_stacks?
@array_stacks
end
|
#club? ⇒ Boolean
136
137
138
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 136
def club?
CARD_CLUBS
end
|
#diamond? ⇒ Boolean
129
130
131
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 129
def diamond?
CARD_DIAMONDS
end
|
#do_create_the_stacks ⇒ Object
183
184
185
186
187
188
189
190
191
192
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 183
def do_create_the_stacks
@array_stacks = []
@use_n_piles.times {|n_iteration| n_iteration += 1
new_array = []
n_iteration.times {
new_array << draw_a_random_card
}
@array_stacks << new_array
}
end
|
#draw_a_random_card ⇒ Object
168
169
170
171
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 168
def draw_a_random_card
@array_a_full_deck.shuffle!
return @array_a_full_deck.pop
end
|
#heart? ⇒ Boolean
115
116
117
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 115
def heart?
CARD_HEARTS
end
|
#populate_the_array_a_full_deck ⇒ Object
#
populate_the_array_a_full_deck
#
143
144
145
146
147
148
149
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 143
def populate_the_array_a_full_deck
proper_order_of_the_four_ranks?.each {|card_type|
ARRAY_AVAILABLE_RANKS.each {|entry|
@array_a_full_deck << Card.new("#{card_type}#{entry}")
}
}
end
|
#proper_order_of_the_four_ranks? ⇒ Boolean
#
proper_order_of_the_four_ranks?
#
108
109
110
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 108
def proper_order_of_the_four_ranks?
[heart?, spade?, diamond?, club?]
end
|
#reset ⇒ Object
91
92
93
94
95
96
97
98
99
100
101
102
103
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 91
def reset
super()
infer_the_namespace
@array_a_full_deck = []
populate_the_array_a_full_deck
@use_n_piles = 7
end
|
#return_a_random_card ⇒ Object
161
162
163
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 161
def return_a_random_card
@array_a_full_deck.sample
end
|
#run ⇒ Object
176
177
178
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 176
def run
do_create_the_stacks
end
|
#spade? ⇒ Boolean
122
123
124
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 122
def spade?
CARD_SPADES
end
|
#stack_number(i) ⇒ Object
204
205
206
|
# File 'lib/games_paradise/solitaire/solitaire.rb', line 204
def stack_number(i)
@array_stacks[i.to_i - 1 ]
end
|