mercredi 14 septembre 2016

Arduino gets me out wrong numbers

I made a little script, that gives me random a number between 0 and 3 and writes them into an array.

The code should make, that only a specific times, numbers can be the same after thereself. So for example, if there were a 3 two times before, he has to take another number... but that logical thing seems not to work? Does anybody has an idea? :/

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;

}

Aucun commentaire:

Enregistrer un commentaire