verwenden könnte
würde meine Empfehlung nur das Deck passieren zu In eine Methode einreihen und ein Array mit [player1, player2, deck] zurückgeben. Wenn Sie nur von der "Oberseite" des Decks zeichnen, können Sie einfach shift
verwenden, um das erste Element aus dem Array zu entfernen.
The Long Lösung
deck = [[2,"spades"],[3,"hearts"],[6,"diamonds"],[10,"clubs"],[8,"hearts"],[9,"clubs"]]
def drawTwo(arr)
if arr.count >= 4
player_one = [deck.shift, deck.shift]
player_two = [deck.shift, deck.shift]
return [player_one, player_two, deck]
else
return "Not enough cards in deck, please provide a new deck"
end
end
round = drawTwo(deck)
player_one = round[0]
player_two = round[1]
deck = round[2]
puts "Player one: #{player_one}"
puts "Player two: #{player_two}"
puts "Deck: #{deck}"
Ich versuchte ziemlich detailliert und diesen Code nicht viel zu verschleiern, so dass es ziemlich erklärend lesen sollte.
Man könnte es ein bisschen kürzer machen, indem es so umschreiben, wollte ich es nur verständlich sein, was passiert war:
Die kondensierte Lösung
deck = [[2,"spades"],[3,"hearts"],[6,"diamonds"],[10,"clubs"],[8,"hearts"],[9,"clubs"]]
def drawTwo(arr)
arr.count >= 4 ? [[arr.shift, arr.shift], [arr.shift, arr.shift]] : raise "Not enough cards..."
end
player_one, player_two = drawTwo(deck)
puts "Player one: #{player_one}"
puts "Player two: #{player_two}"
puts "Deck: #{deck}"
sicher sein, ein deck.shuffle
enthalten, wenn Sie Erzeuge zuerst das Deck.
Auch ich weiß nicht, was Sie mit dem Deck zu erzeugen, aber da ich hatte Spaß mit ihm:
Erzeugung eines Shuffled Deck
def newShuffledDeck
ranks = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "J", "Q", "K", "A"]
suits = ["hearts", "spades", "clubs", "diamonds"]
deck = ranks.product(suits)
deck.shuffle
end
Beachten Sie, dass die Tatsache, dass jeder Element von "Deck" ist ein Array ist irrelevant. Dieselbe Lösung würde gelten, wenn "deck = [: card1,: card2, ...,: card6]". Meinst du übrigens "Spaten" oder "Leerzeichen"? Wie gesagt, 'Spaten' müssen eine Variable oder eine Methode sein. –
@max paspa hat eine der angegebenen Antworten für Sie funktioniert? Wenn dies der Fall ist, wählen Sie bitte eine Antwort aus, damit diese als eine Frage mit einer Antwort angezeigt wird, wenn Benutzer suchen. Vielen Dank! – OneNeptune