我只是想让NumberWizard
在java上工作,而我却无法得到它。或者你可以不在java中这样做吗?我很困难,因为我只能猜一次。
我正在使用Processing 3,我的代码如下所示:
int max = 1000, min = 1, guess = 500;
void setup() {
size(400, 400);
background(0);
println("welcome to NumberGuesser ");
println("In this game you're gonna think of a ");
println("number and im gonna guess it as fast as possible ");
println(" \n ");
println("Now pick of a number between " + min + "and" + max);
println("Great! now that you have picked a number ");
println("Press the up-arrow if its more");
println("and the down-arrow if it's less ");
println("is it less or more than "+ guess + "? \nif more press up-arrow, if less press down-arrow");
}
void draw() {
if (key == CODED) {
if (keyCode == 38) { // up-arrow
min = guess;
nextGuess();
} else if (keyCode == 40) { //down-arrow
max = guess;
nextGuess();
} else if (keyCode == 13) { //return
win();
}
}
}
void nextGuess() {
frameRate(1);
guess = (max + min) /2;
println("Is it less or more than "+ guess + "? \nif more press up-arrow, if less press down-arrow ");
}
void win() {
println("that was'nt hard at all, ezz pezz! ");
noLoop();
}
答案 0 :(得分:0)
请注意,draw()
功能每秒触发60次。即使在您致电frameRate(1)
之后,draw()
功能每秒触发一次。请注意,您的所有逻辑都在draw()
函数中。所以猜测会在一段时间内发生。
您还没有检查当前是否按下了该键。请注意,key
和keyCode
变量包含最近按下的键。您仍然需要检查当前是否按下了该键。您可以使用keyPressed
变量或keyPressed()
函数。
如果我是你,我会修改我的程序,使用keyPressed()
函数来检测用户输入,而不是在draw()
函数中轮询它。
此外,你需要养成debugging your code的习惯。尝试将问题隔离到与您的预期不同的特定代码行,而不是发布您的完整程序并说它不起作用。