Stack level too deep in Ruby trying to draw a random card

前端 未结 2 692
南旧
南旧 2021-01-25 16:54

I\'m getting an error \"stack level too deep\" running the code below. If the random card picked is not there it picks another random card. I suppose I should chance the code so

2条回答
  •  遥遥无期
    2021-01-25 17:59

    I think it's safe to say the recursion is causing the error. Seems to me you don't need recursion, you could just loop until you get drawn_card != 0, e.g.,

    drawn_card = 0
    while drawn_card == 0
      choice_of_card = rand($deck.length); #choose a random card out of the deck
      drawn_card = $deck[choice_of_card]; #draw that random card from the deck
    end
    

提交回复
热议问题