【发布时间】:2017-01-22 10:40:10
【问题描述】:
我做了一个小脚本,它给了我一个 0 到 3 之间的随机数并将它们写入一个数组。
代码应该使,只有特定的时间,数字可以是相同的。例如,如果之前有两次是 3,他必须取另一个数字……但逻辑上的事情似乎行不通?有人有想法吗? :/
int gameCount = 0;
int setupCount = 0;
long game[50];
int maxRepeat = 2;
void setup() {
Serial.begin(9600);
for (int i = 0; i < 50; i++) {
getNumber();
}
Serial.println("");
for (int i = 0; i < 50; i++) {
Serial.print(game[i]);
}
}
void loop() {
}
int getNumber() {
randomSeed(analogRead(A0));
int number = random(1, 32)%4;
if (setupCount < maxRepeat) {
game[setupCount] = number;
setupCount++;
} else {
int hits = 0;
for (int i = setupCount; i < setupCount+maxRepeat; i++) {
if (game[i] == number) {
hits++;
}
}
if (hits == maxRepeat) {
if (number == 0) {
number = 1;
Serial.println("It was a 0!!!");
}
else if (number == 1) {
number = 2;
Serial.println("It was a 1!!!");
}
else if (number == 2) {
number = 3;
Serial.println("It was a 2!!!");
}
else if (number == 3) {
number = 0;
Serial.println("It was a 3!!!");
}
}
game[setupCount] = number;
setupCount++;
}
return number;
}
【问题讨论】:
标签: arrays if-statement arduino logical-operators