Having trouble with making a 2-player Rock, Paper, Scissors

Hey all

I’m trying to make a two-player rock paper scissors game with 6 buttons which displays the result into an LED Matrix, but when I edit code that I was provided, into this to support 2 players and 6 buttons:

#include "LedControl.h"
#define DIN 9  //Data  Pin 9
#define CLK 11 //Clock Pin 11
#define CS 10  //Chip Select Pin 10
#define CHIPS 1
const int rockoffenseSwitch = 6;
const int paperoffenseSwitch = 7;
const int scissorsoffenseSwitch = 8;
const int rockdefenseSwitch = 2;
const int paperdefenseSwitch = 3;
const int scissorsdefenseSwitch = 4;  
int compare;
int rockoState = 0;
int paperoState = 0;
int scissorsoState = 0;
int rockdState = 0;
int paperdState = 0;
int scissorsdState = 0;
int uor;//Usero Rock
int uop;//Usero Paper
int uos;//Usero Scissors
int udr;//usero Rock
int udp;//userero Paper
int uds;//usero Scissors
LedControl lc = LedControl(DIN, CLK, CS, CHIPS);   //A: idk wtf this is
void setup()
{
  lc.shutdown(0, false);
  lc.setIntensity(0, 0);
  lc.clearDisplay(0);
  pinMode(rockoffenseSwitch, INPUT);
  pinMode (paperoffenseSwitch, INPUT);
  pinMode (scissorsoffenseSwitch, INPUT);
 pinMode(rockdefenseSwitch, INPUT);
 pinMode (paperdefenseSwitch, INPUT);
 pinMode (scissorsdefenseSwitch, INPUT);
}

void loop()
{
  uor = 0;
  uop = 0;
  uos = 0;
  udr = 0;
  udp = 0;
  uds = 0;
  challengeDisplay();
  rockoState = digitalRead(rockoffenseSwitch);
  paperoState = digitalRead(paperoffenseSwitch);
  scissorsoState = digitalRead(scissorsoffenseSwitch);
  rockdState = digitalRead(rockdefenseSwitch);
  paperdState = digitalRead(paperdefenseSwitch);
  scissorsdState = digitalRead(scissorsdefenseSwitch);

  if (rockoState == HIGH)
 
  {
    for (int row = 0; row < 8; row++)

      lc.setRow(0, row, RPS[0][row]);
  }
  delay (500);
  uor = 1;
  lc.clearDisplay(0);

  if (paperoState == HIGH)
    // Paper
  {
    for (int row = 0; row < 8; row++)

      //lc.setRow(0, row, RPS[1][row]);}
      delay (500);
    uop = 1;
    lc.clearDisplay(0);
  }
  if (scissorsoState == HIGH)
    // Scissors
  {
    for (int row = 0; row < 8; row++)

      //lc.setRow(0, row, RPS[2][row]);}
      delay (500);
    uos = 1;
    lc.clearDisplay(0);
  }
  if (rockdState == HIGH)
  
  {
    for (int row = 0; row < 8; row++)

      //lc.setRow(0, row, RPS[0][row]);}
      delay (500);
    udr = 1;
    lc.clearDisplay(0);
  }
  if (paperdState == HIGH)
    // Paper
  {
    for (int row = 0; row < 8; row++)

      //lc.setRow(0, row, RPS[1][row]);}
      delay (500);
    udp = 1;
    lc.clearDisplay(0);
  }
  if (scissorsdState == HIGH)
    // Scissors
  {
    for (int row = 0; row < 8; row++)
    {
      //lc.setRow(0, row, RPS[2][row]);}
      delay (500);
      uds = 1;
      lc.clearDisplay(0);

    }
  }

}

void challengeDisplay()
{
  // ?
  for (int row = 0; row < 8; row++) {
    lc.setRow(0, row, RPS[7][row]);
  }
  delay (200);
  lc.clearDisplay(0);
}

void dWins()
{
  delay (400);
  // C
{ for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[8][row]);
    }
    delay (500);
    lc.clearDisplay(0);
    // W display
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[13][row]);
    }
    delay (500);
    lc.clearDisplay(0);
    delay(1000);
    // 1st loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[9][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    // 2nd loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[10][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    // 3rd loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[11][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    //  4th loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[12][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    delay (400);
  { for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[8][row]);
      } //c
      delay (500);
      lc.clearDisplay(0);
      // W display
      for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[13][row]);
      }
      delay (500);
      lc.clearDisplay(0);
      delay(1000);
    }
  }
}

void oWins()
{
  delay (400);
  // U
{ for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[14][row]);
    }
    delay (500);
    lc.clearDisplay(0);
    // W display
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[13][row]);
    }
    delay (500);
    lc.clearDisplay(0);
    delay(1000);
    // 1st loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[9][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    // 2nd loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[10][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    // 3rd loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[11][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    //  4th loop
    for (int row = 0; row < 8; row++) {
      lc.setRow(0, row, RPS[12][row]);
    }
    delay (200);
    lc.clearDisplay(0);
    delay (400);
    // U
  { for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[14][row]);
      }
      delay (500);
      lc.clearDisplay(0);
      // W display
      for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[13][row]);
      }
      delay (500);
      lc.clearDisplay(0);
      delay(1000);
    }
  }
}
void computerchooses() {


  switch (compare) {

    case 1:
      delay (200);
      for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[8][row]);
      }
      delay (500);
      lc.clearDisplay(0);

      // Rock
    { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[0][row]);
        }
        delay (500);
        udr = 1;
        lc.clearDisplay(0);
      }

      if (udr == uor)
        //Tie
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[3][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
      }

      if (udr == uop)
        //Paper covers Rock
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[4][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        oWins();
      }
      if (udr == uos)
        //Rock smashes Scissors
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[6][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        dWins();
      }

      break;
    case 2:
      delay (200);
      for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[8][row]);
      }
      delay (500);
      lc.clearDisplay(0);

      // Paper
    { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[1][row]);
        }
        delay (500);
        udp = 1;
        lc.clearDisplay(0);
      }

      //Tie
      if (uop == udp)
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[3][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
      }

      if (udp == uos)
        //Scissors cuts Paper
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[5][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        oWins();
      }

      if (udp == uor)
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[4][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        dWins();
      }

      break;

    case 3:

      delay (200);
      for (int row = 0; row < 8; row++) {
        lc.setRow(0, row, RPS[8][row]);
      }
      delay (500);
      lc.clearDisplay(0);

      // Scissors
    { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[2][row]);
        }
        delay (500);
        uds = 1;
        lc.clearDisplay(0);
      }

      //Tie
      if (uos == uds)
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[3][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
      }

      //Rock smashes Scissors
      if (uds == uor)
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[6][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        oWins();
      }

      //Scissors cuts Paper
      if (uds == uop)
      { for (int row = 0; row < 8; row++) {
          lc.setRow(0, row, RPS[5][row]);
        }
        delay (1000);
        lc.clearDisplay(0);
        dWins();
      }

      break;

  }
}

,the challengeDisplay() function doesn’t seem to stay on indefinately. Can anyone help me debug this?

Why do you think that it should stay on indefinitely? You clear the display after 200 milliseconds, don't you?