2016-08-21 43 views
0

我正在學習一個learn.co實驗室二十一點cli線是https://learn.co/tracks/web-development-fundamentals/intro-to-ruby/looping/blackjack-cli?batch_id=166&track_id=10415然而,需要通過的15個例子,我不斷收到一個錯誤6我主要有麻煩initial_round方法和命中?方法。在我的二十一點cli ruby​​中的錯誤消息

i keep getting an error in the initial round method asking me to call on the display_card_total method to print the sum of cards and the hit? confuses me a little as to what exact its asking

def deal_card 
rand(11) + 1 
end 

def display_card_total(card) 
    puts "Your cards add up to #{card}" 
end 

def prompt_user 
    puts "Type 'h' to hit or 's' to stay" 
end 

def get_user_input 
    gets.chomp 
end 

def end_game(card_total) 
    puts "Sorry, you hit #{card_total}. Thanks for playing!" 
end 

def initial_round 
    deal_card 
    deal_card 
    return deal_card + deal_card 
    puts display_card_total 
end 

def hit? 
    prompt_user 
end 

def invalid_command 
    puts "Please enter a valid command" 
end 

希望這是足夠的信息

回答

0

您沒有按照分配。

它指定hit?方法應該利用目前卡總的說法,所以它應該是...

def hit?(current_card_total) 

然後,它規定你應該做prompt_userget_user_input,然後測試結果爲「h」或「s」或其他,並採取適當的措施。

如果你爲命中做一個「h」,current_card_total將會增加,否則如果你做一個「s」它沒有改變,但你需要返回值,不管它是否被改變。

如果用戶輸入其他旁邊的「H」或「S」是你叫invalid_command方法和正確的值再次提示(prompt_user),你可以用get_user_input

再次嘗試這樣得到迴應,這樣的事情...

def hit?(current_card_value) 
    prompt_user 
    user_input = get_user_input 
    while user_input != "h" && user_input != "s" 
    invalid_command 
    prompt_user 
    user_input = get_user_input 
    end 
    if user_input == "h" 
    current_card_value += deal_card 
    end 
    return current_card_value 
end 

有幾件事情錯了你initial_deal只是下手,你需要跟蹤deal_card結果的一個變量

current_card_total = deal_card 
current_card_total += deal_card 

那樣current_card_total已累計。正在做

deal_card 
deal_Card 

不存儲任何地方的結果deal_card

+0

這讓我有如此多的感覺,我真的覺得好像有時我想我需要努力閱讀錯誤消息的能力更多 – Daquon

+0

我仍然遇到初始問題 – Daquon