我必须为一项任务制作一个策划游戏。我陷入了接受用户输入并需要将它们与随机数进行比较的部分。然后我需要将(用户输入)数字放在网格上的正确位置(自下而上)。
另外,我必须显示该号码是否为:
- 正确且处于正确位置,显示 4,
- 通过显示 2 来显示正确但错误的位置,
- 显示 0 是错误的
此外,我需要不断询问用户输入,直到他们达到最大尝试次数 10 次或猜出正确答案。
这是我的代码
...
public static void main(String[] args) {
PlayMasterMind.computerNum();
PlayMasterMind.printBoard();
PlayMasterMind.userInput();
PlayMasterMind.compare();
}
public void printBoard(){
System.out.println(" _______________________");
System.out.println("| " + gotIt + " | " + gotIt + " | " + gotIt + " | " + gotIt + " | ");
System.out.println(" _______________________ ____");
for (j = 0; j < 10; j++) {
for (int k = 0; k < 4; k++) {
guess[j][k] = " ";
answer[k] = " ";
}
System.out.println("| " + guess[j][0] + "| " + guess[j][1] + "| " + guess[j][2] + "| "
+ guess[j][3] + "|==|" + answer[0] + answer[1] + answer[2] + answer[3]
+ "|");
System.out.println(" _______________________ ____");
}
}
}
我在上面的部分遇到问题,我需要将用户输入从下往上放入网格中。
此时我得到的是:
输入4个数字:2342
| 2342 | 2342 2342 | 2342 2342 | 2342 2342 | 2342
___________________________ ____
| | | | |==| |
___________________________ ____
| | | | |==| |
___________________________ ____
...
但我实际上需要按以下顺序排列的数字:
如果这些数字是正确的。我想按以下方式输出它们:
如果 1 个数字错误,则有 2 个数字正确且位置正确,以及 1 个数字正确但位置错误(正确和错误的数字顺序并不重要。说如果正确的数字is 2342, but用户输入1242)然后我会这样展示:
但不要在下面的框中得到任何东西。它不断覆盖“X”或“X”位置的信息。
任何帮助将非常感激。
先感谢您!!!
为了找到代码中的问题,我将其粘贴到编辑器中并尝试编译它。我还重新格式化它以使其更清晰。这就是我得到的
class Test73 {
public static final int MAX_GUESSES = 10;
public static final int NB_COLUMNS= 4;
private String guess[][];
private String answer[];
private String gotIt;
public static void main(String[] args) {
Test73 t = new Test73();
}
public Test73() {
gotIt = " "; // should probably be an array?
guess = new String[MAX_GUESSES][NB_COLUMNS];
answer = new String[NB_COLUMNS];
printBoard();
}
public void printBoard() {
System.out.println(" _______________________");
System.out.println( // assumes gotIt to be of length 1
"| " + gotIt +
" | " + gotIt +
" | " + gotIt +
" | " + gotIt +
" | ");
System.out.println(" _______________________ ____");
for (int j = 0; j < MAX_GUESSES; j++) {
for (int k = 0; k < NB_COLUMNS; k++) {
guess[j][k] = " ";
answer[k] = " ";
}
System.out.println(
"| " + guess[j][0] +
"| " + guess[j][1] +
"| " + guess[j][2] +
"| " + guess[j][3] +
"|==|" + answer[0] +
answer[1] +
answer[2] +
answer[3] + "|");
System.out.println(" _______________________ ____");
}
}
}
我编译并运行了它。这就是我得到的
_______________________
| | | | |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
| | | | |==| |
_______________________ ____
以下是一些观察结果
变量gotIt
可能应该是一个数组,否则你只能打印相同的值四次。
在打印表格之前,将值guess
and answer
被设置为空字符串。虽然游戏一开始还可以,但是后面就不行了。它应该出现在程序的其他位置(在初始化部分)。
重要:班级Test
只是为了测试这部分程序而创建的,它不会出现在您的最终程序中。对程序的其他部分执行相同的操作(您可以重复使用 Test 类)。
祝你好运!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)