Gamuino, an Arduino-powered coin game

...And third...

void doSmiley() {
  mymatrix.write(1, 1, smiley);
}

void doUnSmiley() {
  mymatrix.write(1, 1, unsmiley);
}

void setup() {
  pinMode(power, INPUT);
  pinMode(push, INPUT);
  pinMode(sole1, OUTPUT);
  pinMode(sole2, OUTPUT);
  mymatrix.clear();
  mymatrix.setBrightness(7);
}

void loop() {
  mymatrix.clear();
  while (r == 0) {
    startUp();
    r = 1;
  }
  if (digitalRead(power) == LOW) {
    if (gamemode == 1) {//game one
      if (q == 0) {
        intro();
        countDown();
        mymatrix.clear();
        delay(500);
        q = 1;
      }
      if (t == 0) {
        mymatrix.write(1, 1, n1);
        delay(1000);
        t = 1;
      }
      mymatrix.clear();
      delaytime = analogRead(analog);
      randomizeLeds();
      delay(delaytime);
      if (digitalRead(push) == LOW) {
        getMoney();
        clearBlinkingLeds();
        if ((valx1 == 0 && valy1 == 0) || (valx2 == 0 && valy2 == 0) ||
        (valx3 == 0 && valy3 == 0)) {
          p = 1; 
        }
        else {
          p = 0;
        }
        if (p == 1) {
          doSmiley();
          delay(1000);
          winner();
          payOut2();
          mymatrix.clear();
        }
        else {
          doUnSmiley();
          delay(1000);
          mymatrix.clear();
        }
        p =0;
      }
    }
    if (gamemode == 2) {//game two
      if (w == 0) {
        intro2();
        countDown();
        mymatrix.clear();
        delay(500);
        w = 1;
      }
      if (t = 0) {
        mymatrix.write(1, 1, n2);
        delay(1000);
        t = 1;
      }
      mymatrix.clear();
      randomizeLeds2();
      delay(100);
      clearBlinkingLeds2();
      if (digitalRead(push) == LOW) {
        for (int i = 0; i < 40; i++) {
          randomizeLeds2();
          multiply = i * 10;
          leddelay = 100 + multiply;
          delay(leddelay);
          clearBlinkingLeds2();
        }
        randomizeLeds2();
        for (int a = 0; a < 4; a++) {
          blinkLeds();
          delay(500);
          clearBlinkingLeds2();
          delay(500);
        }
        getMoney();
        if ((valx1 == valx2 && (valx2 == valx3 || valx2 == valx4)) ||
        ((valx1 == valx3 || valx2 == valx3) && valx3 == valx4) ||
        (valy1 == valy2 && (valy2 == valy3 || valy2 == valy4)) ||
        ((valy1 == valy3 || valy2 == valy3) && valy3 == valy4)) {
          p = 1;
        }
        else {
          p = 0;
        }
        if (p == 1) {
          doSmiley();
          delay(1000);
          winner();
          payOut();
          mymatrix.clear();
        }
        else {
          doUnSmiley();
          delay(1000);
          mymatrix.clear();
        }
        p = 0;
      }
    }
    if (gamemode == 3) {//game three
      if (m == 0) {
        intro3();
        countDown();
        mymatrix.clear();
        delay(500);
        m = 1;
      }
      if (t == 0) {
        mymatrix.write(1, 1, n3);
        delay(1000);
        mymatrix.clear();
        t = 1;
      }
      mymatrix.clear();
      for (int i = 0; i < 8; i++) {
        while (digitalRead(push) == HIGH) {
          u++;
          if (u == 8) {
            u = 0;
          }
          vary[i] = u;
          mymatrix.write(i, u, HIGH);
          delaytime = analogRead(analog)/15;
          if (delaytime < 15) delaytime = 15;
          delay(delaytime);
          mymatrix.write(i, u, LOW);
        }
        mymatrix.write(i, vary[i], HIGH);
        delay(500);
      }
      getMoney();
      delay(1000);
      if (vary[0] == vary[1] && vary[1] == vary[2] && vary[2] == vary[3] &&
      vary[3] == vary[4] && vary[4] == vary[5] && vary[5] == vary[6] &&
      vary[6] == vary[7]) {
        p = 1;
      }
      else {
        p = 0;
      }
      mymatrix.clear();
      if (p == 1) {
        doSmiley();
        delay(1000);
        winner();
        payOut();
      }
      if (p == 0) {
        doUnSmiley();
        delay(1000);
      }
      p = 0; 
    }
    if (gamemode == 4) {//game four
      if (j == 0) {
        intro4();
        countDown();
        mymatrix.clear();
        delay(500);
        j = 1;
      }
      if (t == 0) {
        mymatrix.write(1, 1, n4);
        delay(1000);
        mymatrix.clear();
        t = 1;
      }
      mymatrix.clear();
      mymatrix.write(3, 1, linecut);
      while (digitalRead(push) == HIGH) {
        xvar--;
        if (xvar == -1) {
          xvar = 7;
        }
        randomdelay = random(15, 80);
        mymatrix.write(xvar, 3, HIGH);
        delay(randomdelay);
        mymatrix.write(xvar, 3, LOW);
      }
      mymatrix.write(xvar, 3, HIGH);
      delay(1000);
      getMoney();
      mymatrix.clear();
      if (xvar == 3) {
        p = 1;
        xvar = 7;
      }
      else {
        p = 0;
      }
      if (p == 1) {
        doSmiley();
        delay(1000);
        winner();
        payOut();
        mymatrix.clear();
      }
      else {
        doUnSmiley();
        delay(1000);
        mymatrix.clear();
      }
      p = 0;
    }