我想知道是否有人可以帮助我,我有一个游戏,计算机生成一个随机的 4 位代码,每个数字的范围是 0-5。然后用户猜测这段代码,计算机返回一个数组,我打印出一个字符串。数组应该包含一个 6 代表猜测中的每个数字,即正确位置的正确数字,一个 7 代表猜测中的每个正确数字但位置错误的数字,最后一个 5 代表任何完全不正确的数字.
例如,如果代码是:0143
而用户的猜测是:0451
,那么数组应该是:6775
这是因为 0 完全正确,1 和 4 在代码中,但被猜错了,而 5 完全不正确。此外,每个数字都在数组的单独部分中。
这是我到目前为止所拥有的:
for (int i = 0; i < 4; i++) {
if (combo[i] == guess[i]) {
Pegs[peg] = 6;
peg++;
}
}
for (int i = 0; i < 4; i++) {
for (int x = 0; x < 4; x++) {
if (guess[i] == combo[x] && guess[i] != combo[i]) {
Pegs[peg] = 7;
peg++;
}
}
}
for (int i = 0; i < 4; i++) {
if (Pegs[i] == 0) {
Pegs[i] = 5;
}
}
数组guess 存储用户的猜测,数组combo 是正确的代码,Pegs[] 是存储比较数组的位置,int peg 只是说明在数组中存储值的位置。这样做的问题是它并不总是将数组正确地返回到它要做的事情。