我正在制作一个Mastermind计划。
我生成一个包含4个数字字符的随机字符串(字符不能重复)。出于测试目的,它总是1234。
然后要求用户通过输入4个数字来猜测字符串。
我正在创建一个名为PerfectMatches的方法,用于检查猜测数字的正确位置和正确位置。
这是我的代码:
public static int perfectMatches (String x, String y){
int i = 0;
int perfectmatches = 0;
for (i=0; i < 4; i++){
if ((x.charAt(i)) == (y.charAt(i))){
perfectmatches++;
}
我尝试使用if语句,但我觉得它效率不高,需要更长的时间来处理程序。
答案 0 :(得分:0)
由于长度为4
,因此在这种情况下性能无关紧要。我认为perfectMatches()
方法应返回boolean
:
public static boolean perfectMatches(String x, String y) {...}
另外,避免使用幻数:
for (int i = 0; i < x.length(); i++)
最后,您可以将perfectmatches
与4
进行比较,然后返回boolean
(真或假):
return (perfectmaches == 4);
但是如果你想返回匹配数量,那么你的方法就可以了。只需返回perfectmatches
。作为和建议,您可以更改perfectmatches
的名称,因为它与方法的名称非常相似perfectMatches()
答案 1 :(得分:0)
我认为这不会造成任何性能问题。
BTW,与问题无关:我编写了MasterMind应用程序。你必须考虑删除“数字不能重复”的条件。它使游戏/拼图更容易,以及实施。
如果您想要具有挑战性的拼图以及编码,请允许复制数字。在这种情况下,您必须在单个方法中计算完美匹配和(匹配,但不在同一位置)。
答案 2 :(得分:0)
它没有真正的问题......它只是检查你的代码......
public int perfectMatches (String x, String y){
int i = 0;
int perfectmatches = 0;
for(i = 0; i < x.length(); i++){
if(x.charAt(i) == y.charAt(i)){
perfectmatches++;
}
}
return perfectmatches;
}
另一个......删除静态...