2016-09-08 7 views
0

ここでは、勝ったコンピュータの数とユーザが獲得したルビープログラムがあります。ここでのアイデアは、誰が5勝を得たかです。最初は勝者になり、特別なメッセージが出力されます。「5回優勝したのは本当に勝者です! :Ruby - 完全なカウンタ方法を作るには

VALID_CHOICES = { 
'l' => 'light', 
'p' => 'prost', 
'k' => 'kronge', 
} 

def display(message) 
    Kernel.puts("=>#{message}") 
end 

def test_win?(first, second) 
    (first == 'l' && second == 'p') || 
    (first == 'p' && second == 'k') || 
    (first == 'k' && second == 'p') || 
end 

player_count = 0 
computer_count = 0 
end 

カウンターしてください。

私は両側の勝利を数えるので、私はこれについて適切な論理を得られることを確かめることができますか?

+0

あなたはoutput_resultsを呼び出さなかった –

+0

実際にそこにあります。 –

+0

「このプログラムをxで実行すると、出力yが期待できますが、いつも「blah」が得られます」 – Ninigi

答えて

1

これを試しましたか?

def output_results(player, computer) 

     if win?(player, computer) 
     player_count+= 1 
     if player_count == 5 
     display("You won!") 
     end 
     elsif win?(computer, player) 
     computer_count+= 1 
     if computer_count == 5 
      display("Computer won! You loose!") 
     end 
     else 
     display("It's a tie! No one wins!") 
     end 

    end 
+0

これは実際には同じことです。あなたは答えを知っていますか? –

0

[OK]を、私は実際には問題が何であるかを理解していない、しかし、あなたが投稿したコードに基づいて、ここでの実施例である - 決してそれは「完璧」である、それは単なる出発点です。あなたがあなたのコマンドプロンプトでruby my_game.rbでそれを実行することができます「my_game.rb」としてこのファイルを保存すると仮定すると、

VALID_CHOICES = { 
'l' => 'light', 
'p' => 'prost', 
'k' => 'kronge', 
} 

@player_count = 0 
@computer_count = 0 
@end_game = false 

def display(message) 
    Kernel.puts("=>#{message}") 
end 

def test_win?(first, second) 
    (first == 'l' && second == 'p') || 
    (first == 'p' && second == 'k') || 
    (first == 'k' && second == 'p') 
end 

def output_results(player, computer) 
    if test_win?(player, computer) 
    @player_count += 1 
    if @player_count == 5 
     @end_game = true 
     display("You won the game!") 
    else 
     display("You won this round!") 
    end 
    elsif test_win?(computer, player) 
    @computer_count += 1 
    if @computer_count == 5 
     @end_game = true 
     display("Computer won! You loose!") 
    else 
     display("Computer won this round!") 
    end 
    else 
    display("It's a tie! No one wins!") 
    end 

    display("Player: #{@player_count}") 
    display("Computer: #{@computer_count}") 
end 

until @end_game 
    computer_choice = VALID_CHOICES.keys.sample 
    display("==================================================================") 
    display("Choose your weapon (type l for Light, p for Prost, k for Kronge): ") 
    choice = Kernel.gets().chomp() 
    display("==================================================================") 


    display("You chose: #{VALID_CHOICES[choice]}, computer choose: #{VALID_CHOICES[computer_choice]}") 
    output_results(choice, computer_choice) 
end 

(あなたが正しいフォルダにする必要が)。

編集:これがあなたを助けたり、より多くの質問がある場合はチャットを開くことができます。

関連する問題