我想通過一個Go Fish Card Card遊戲中我的玩家列表來給玩家發牌。我想傳入已經制作好的玩家數組作爲交易方法的參數/參數。將預製數組作爲Ruby中的參數/參數傳遞?
我知道我不得不使用圖示操作中的參數一個變量量通過,但我怎麼傳遞一個預製的陣列的不同元素?
def deal_to_players
是我正在修改的功能。我想將@player
數組傳遞給deal_to_players number_of_players
。
謝謝!代碼:
require_relative 'FishDeck.rb'
require_relative 'FishHand.rb'
require_relative 'FishPlayers.rb'
class FishGame
attr_accessor :player
attr_accessor :top_card_container, :next_turn #next turn stores who's turn it is next
#How will I use that with the server?
def initialize(number_of_fish_players)
@player = []
i = 0 ##Revise so i can be 0?
number_of_fish_players.times do #like 5.times do
#puts "iteration i is: #{i}"
@player[i] = FishPlayer.new #Revise to PLAYER CLASS
i += 1
end
#puts "PLAYER ARRAY: #{@player}"
#puts "players 0: #{@player[0].player_hand.player_cards}, players 1: #{@player[1]}"
end
def deal_to_players(deck_name, number_of_players) #!!!!!!!!!!!!!!!!!Need to pass the @player array to nuber_of_players so I can perform .each on it 5 times
5.times do
top_card = deck_name.pop_top_card
@player1.player_cards << top_card
top_card = deck_name.pop_top_card
@player2.player_cards << top_card
top_card = deck_name.pop_top_card
@player3.player_cards << top_card
top_card = deck_name.pop_top_card
@player4.player_cards << top_card
top_card = deck_name.pop_top_card
@player5.player_cards << top_card
end
end
def deck_to_player(game_deck, player_to)
player_to.player_cards << top_card_container = game_deck.pop_top_card
#Pops top deck card and shovels onto player_to 's cards
player_to.looks_for_books
end
def player_to_player(game_deck, wanted_card, player_asked, player_asking) #player_asking wants "wanted_card" from player_asked
card_holder = player_asked.return_cards_requested(wanted_card) #player in game's return card method and stores
#puts "card holder[0] is: #{card_holder[0]}"
#puts "wanted card is #{wanted_card}"
if card_holder[0] == wanted_card #element 0 will be the wanted_card or hold nothing
player_asking.player_cards.concat(card_holder)
card_holder.clear
player_asking.looks_for_books
@next_turn = "player_asking"
#puts "next turn if player_asked has player_asking \'s wanted card"
else
card_from_deck = deck_to_player(game_deck, player_asking)
if card_from_deck == wanted_card
@next_turn = "player_asking"
# puts "next turn if card from deck == card wanted: #{@next_turn}"
else
@next_turn = "NEXT PLAYER"
# puts "next turn if card from deck did NOT == card wanted: #{@next_turn}"
end
end
end
end
爲什麼你就不能說'@player.each {...}'在'deal_to_players'裏面? –
像史恩說的那樣?因爲它是類中的一個實例變量,我不需要通過它? – Yallo
右,實例變量被附加到'self',以便它們始終可用。您可能希望在進入時將其重命名爲「@ players」,它包含若干項內容,因此使用複數名稱是有道理的。 –