1
私は0と3の間の数字をランダムに与えて、それらを配列に書き込みます。Arduinoが私に間違った数字を教えてくれる
コードは、特定の時間だけ、その数字の後に同じことができます。たとえば、2回前に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;
}
を 'randomSeed(analogRead(A0))は、' OKかどうか議論しないでください。) – datafiddler
あなたのタスクはかなり*特定の*であるので、私はそれが作成する価値があるとは思いません配列サイズ、ランダム範囲、シーケンス数、またはこのサンプルが使用する暗黙的な設定の可変パラメータを持つ「汎用ソリューション」です。 – datafiddler
ありがとうございました!まさに私が探したもの! – dessi