[英]Mastermind Scoring Algorithm in C
我正在使用C进行客户端/服务器策划游戏,到目前为止我已经完成了。 我的程序正在运行,它平均6-7次猜测解决了这个秘密。 然后我看着互联网,发现Donals Knuths的方法:
我在这里要说的是我使用了5个位置和8种颜色。
当我试图优化我的程序时,我很难理解第3步,特别是计算什么猜测会消除最多的可能性,看起来如何。
我所知道的是我必须查看每个元素并将其与其他元素进行比较,但我不确定如何比较它,因为我没有任何白/黑值。 我想知道如何判断满足某些条件的条目将消除最大可能性。
我在我的博客上讨论算法并给出一个实现(在Scheme中,而不是C)。 棘手的部分是minimax函数中的这个谓词:
(or (< size min-size)
(and (= size min-size)
(member (car ps) pool)
(not (member min-probe pool))))
你必须阅读整篇博文来弄清楚细节,但基本上这会实现Knuth的“受制于”要求:如果探针是新的最小值,或者如果它等于当前的最小值,则是pool,当前最小值不是池的成员,将其保持为新的最小值,否则循环到下一个探测器。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.