I am new to coding and I would appreciate it if someone could translate this to Pseudo-code so I could understand each line.
(This was taken from: A Simple Simon Says Game | Arduino Project Hub)
const int MAX_LEVEL = 100;
int sequence[MAX_LEVEL];
int your_sequence[MAX_LEVEL];
int level = 1;
int velocity = 1000;
void setup() {
pinMode(A0, INPUT);
pinMode(A1, INPUT);
pinMode(A2, INPUT);
pinMode(A3, INPUT);
pinMode(2, OUTPUT);
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
}
void loop()
{
if (level == 1)
generate_sequence();//generate a sequence;
if (digitalRead(A4) == LOW || level != 1) //If start button is pressed or you're winning
{
show_sequence(); //show the sequence
get_sequence(); //wait for your sequence
}
}
void show_sequence()
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
for (int i = 0; i < level; i++)
{
digitalWrite(sequence*, HIGH);*
delay(velocity);
digitalWrite(sequence*, LOW);*
delay(200);
}
}
void get_sequence()
{
int flag = 0; //this flag indicates if the sequence is correct
for (int i = 0; i < level; i++)
{
flag = 0;
while(flag == 0)
{
if (digitalRead(A0) == LOW)
{
digitalWrite(5, HIGH);
your_sequence = 5;
flag = 1;
delay(200);
if (your_sequence != sequence*)*
{
wrong_sequence();
return;
}
digitalWrite(5, LOW);
}
if (digitalRead(A1) == LOW)
{
digitalWrite(4, HIGH);
your_sequence = 4;
flag = 1;
delay(200);
if (your_sequence != sequence*)*
{
wrong_sequence();
return;
}
digitalWrite(4, LOW);
}
if (digitalRead(A2) == LOW)
{
digitalWrite(3, HIGH);
your_sequence = 3;
flag = 1;
delay(200);
if (your_sequence != sequence*)*
{
wrong_sequence();
return;
}
digitalWrite(3, LOW);
}
if (digitalRead(A3) == LOW)
{
digitalWrite(2, HIGH);
your_sequence = 2;
flag = 1;
delay(200);
if (your_sequence != sequence*)*
{
wrong_sequence();
return;
}
digitalWrite(2, LOW);
}
}
}
right_sequence();
}
void generate_sequence()
{
randomSeed(millis()); //in this way is really random!!!
for (int i = 0; i < MAX_LEVEL; i++)
{
sequence = random(2,6);
}
}
void wrong_sequence()
{
for (int i = 0; i < 3; i++)
{
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(250);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(250);
}
level = 1;
velocity = 1000;
}
void right_sequence()
{
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(250);
digitalWrite(2, HIGH);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(2, LOW);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
delay(500);
if (level < MAX_LEVEL);
level++;
velocity -= 50; //increase difficulty
}