gpt4 book ai didi

tdd - 如何使用TDD解决答案未知的谜题?

转载 作者:行者123 更新时间:2023-12-04 04:00:39 25 4
gpt4 key购买 nike

最近,我编写了一个Ruby程序来确定"Scramble Squares"拼图游戏的解决方案:

我使用TDD来实现其中的大部分功能,从而导致了如下所示的测试:

it "has top, bottom, left, right" do
c = Cards.new
card = c.cards[0]
card.top.should == :CT
card.bottom.should == :WB
card.left.should == :MT
card.right.should == :BT
end

这对于较低级别的“帮助器”方法非常有效:识别图块的“侧面”,确定图块是否可以有效地放置在网格中,等等。

但是我在编码实际算法以解决难题时遇到了一个问题。由于我不知道该问题的有效解决方案,因此 我不知道如何首先编写测试。

我最终写了一个非常丑陋,未经测试的算法来解决这个问题:
  def play_game
working_states = []
after_1 = step_1
i = 0
after_1.each do |state_1|
step_2(state_1).each do |state_2|
step_3(state_2).each do |state_3|
step_4(state_3).each do |state_4|
step_5(state_4).each do |state_5|
step_6(state_5).each do |state_6|
step_7(state_6).each do |state_7|
step_8(state_7).each do |state_8|
step_9(state_8).each do |state_9|
working_states << state_9[0]
end
end
end
end
end
end
end
end
end

所以我的问题是: 在您不知道有效输出的情况下如何使用TDD编写方法?

如果您有兴趣,代码在GitHub上:
  • 测试:https://github.com/mattdsteele/scramblesquares-solver/blob/master/golf-creator-spec.rb
  • 生产代码:https://github.com/mattdsteele/scramblesquares-solver/blob/master/game.rb
  • 最佳答案

    这不是直接的答案,但这使我想起了Peter Norvig和Ron Jeffries编写的Sudoku解算器之间的the comparison。罗恩·杰弗里斯(Ron Jeffries)的方法使用了经典的TDD,但他从来没有真正找到好的解决方案。另一方面,在没有TDD的情况下,Norvig可以非常优雅地解决它。

    基本问题是:使用TDD能否出现一种算法?

    关于tdd - 如何使用TDD解决答案未知的谜题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4540265/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com