Рубиновый блэкджек и петли
Я строю командную строку, используя методы. Я дошел до того, что игрок может ударить или застрять (после раздачи 2 карт). Сейчас я, кажется, не могу перейти к мысли логически о том, как ограничить моего игрока только четырьмя попаданиями. делать
Это говорит мне о том, что моя проблема заключается в зацикливании - то есть я неправильно подхожу к циклической части программы.
Вот мой код до сих пор:
def blackjack
promt
end
def promt
puts "Welcome! Would you like to play a game of blackjack? Enter Yes or No"
play = gets.chomp.downcase
if play == "yes"
game_plan
elsif play =="no"
puts "That's too bad. Come back when you feel like playing"
else
puts "Sorry but I don't understand your respones. Please type and enter yes to play Or no to to quit"
blackjack
end
end
def game_plan
wants_to_play = true
hand = []
total = first_move(hand)
wants_to_play = hit_me(hand)
if wants_to_play == true
hit_me(hand)
end
end
def first_move(hand)
deal(hand)
deal(hand)
total(hand)
end
def deal(hand)
card = rand(12)
puts "You have been dealt a card with a value of #{card}"
hand << card
end
def total(hand)
total = 0
hand.each do |count|
total += count
end
puts "The sum of the cards you have been dealt is #{total}"
total
end
def hit_me(hand)
puts "Would you like to hit or stick?"
yay_or_nah = gets.chomp.downcase
if yay_or_nah == "stick" && total(hand) < 21
puts "Sorry! The sum of the cards you have been dealt is less than 21. You lost this round!"
else
deal(hand)
total(hand)
playing = true
end
end
blackjack
То, что я хочу сделать, это ограничить моего игрока 2 ударами (после первого первого удара, который разыгрывает 2 карты). Я знаю, что это совершенно раздражающий вопрос новичка, но я действительно буду признателен за любые отзывы, которые помогут мне найти правильное решение.
PS: хотя я понимаю, как работают циклы, я боюсь знать, как и когда их реализовывать… поэтому любая обратная связь будет очень цениться. Спасибо!
1 ответ
Вы ищете что-то подобное?
MAX_HITS = 2
hits = 0
loop do
break if hits > MAX_HITS
puts "Would you like to hit or stick?"
…
else
hits += 1
…
end
end