用Java编写Mastermind

时间:2016-09-03 16:37:11

标签: java string char

我想知道如何用Java编写游戏代码Mastermind,但事情有所提升(我想告诉用户不仅有多少钉子是对还是错,而且还有多少钉子在错误的广告位中猜对了。

例如,假设数字1-6的5位数的RNG答案是:

22354

...用户的猜测是:

32624

导致:

  • 两个猜错了(2和4)
  • 两个猜测部分正确(2和3)
  • 一个猜错了(6)。

这是我的代码,用于告知用户他们的内容是正确的:

String answer = "22354";
String guess = "32624";
int correctPegs = 0;

for (int i = 0; i < 5; i++) {
    char a = answer.charAt(i);
    char g = guess.charAt(i);

    if (a == g) {
        correctPegs++;
    }
}

System.out.println(correctPegs);

我如何找到部分正确的?

...并且为了计算用户猜错的数量,我在考虑使用基本代数在找到正确且部分正确的之后找到剩余的字符

1 个答案:

答案 0 :(得分:5)

我会把&#39; 0&#39;进入他们匹配的弦乐。然后对于每个不为零的字符,我会再次查看答案字符串。如果答案字符串中的任何字符匹配,我会将它们都设为零,并递增outOfPlacePegs。

这可以防范我认为你不想要的两个角落:

一个是你有&#39; 323&#39;作为答案和&#39; 223&#39;作为输入。你不想要第一个&#39; 2&#39;被记录为不合适。

其次是当你有&#39; 223&#39;作为答案和&#44;&#39;作为输入。你不希望这个记录为两个不合适的数字。