我是Ruby编程的新手。这是我的第二个OOP项目。在一定的条件下,我在计算白皮钉时有困难。维基百科说:
-A黑键钉被放置在每个代码钉上,从猜出哪个颜色和位置都是正确的。
-A白键夹表示有正确的颜色码栓放置在错误的位置。
我相信我的黑钉情况是正确的,但我不能正确地数我的白钉。下面是函数代码片段:
def check_guess(code, guess)
@white_peg = 0
@black_peg = 0
index = 0
while index < code.length
if code[index] == guess[index]
@black_peg += 1
puts "Black => #{@black_peg}"
elsif guess.any? { |c| code.include?(c) } && code[index] != guess[index]
@white_peg += 1
puts "White => #{@white_peg}"
end
index += 1
end
puts "There are #{@white_peg} white peg and #{@black_peg} black peg"
is_win?
end
end我在这个条件下调用上面的函数
def codebreaker_attempt
guess_array = @codebreaker.guess_code
@codebreaker.check_guess(@codemaker.code, guess_array)
end最后,我的game方法是为了停止游戏
def play
codemaker_choose
(1..12).each do |i|
puts "#{i}. GUESS\n"
#puts "Guess array is #{guess}"
break if codebreaker_attempt == true
end我要离开这里,如果你想检查的话,我要把我所有的代码都写好了。https://replit.com/@Burakkepuc/Mastermind#main.rb
发布于 2022-02-07 14:41:02
-A白键夹表示有正确的颜色码夹放置在错误的位置。
我找到了答案。白钉针代码控件应该是
elsif code.include?(guess[index]) && code[index] != guess[index]https://stackoverflow.com/questions/71009608
复制相似问题