// Kayla Frost
// 300390878
// Arduino Final Project Phase 1
// Nov. 7, 2025
// This snippet tests that the single digit 7-segment display can keep track of the numbers of game rounds the player has played
// define pins for each of the LEDs in the 7-segment display
const int B = 13;
const int A = 12;
const int F = 11;
const int G = 10;
const int E = 9;
const int D = 8;
const int C = 7;
const int MAX_ROUNDS = 9;//maximum round number possible that the single digit display can show
int roundNum = 0; // round number
void setup() {
// put your setup code here, to run once:
// let each LED in display be an output and turn it off initially
for(int x = 7; x <= 13; x++) //LED pins go from 7-13
{
pinMode(x, OUTPUT);
digitalWrite(x, LOW);
}
// print announcement of the game beginning
delay(1000);
Serial.begin(9600);
Serial.println("\n\nGAME BEGINS\n\n");
delay(4000);
roundNum = 1; // intially begin at round 1
}
void loop() {
// put your main code here, to run repeatedly:
// below, HIGH turns LED on and LOW turns LED off
if(roundNum == 1) // if it is round 1
{
// display number 1
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
else if(roundNum == 2) // else if it is round 2
{
// display number 2
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
}
else if(roundNum == 3) // else if it is round 3
{
// display number 3
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
}
else if(roundNum == 4) // else if it is round 4
{
// display number 4
digitalWrite(A, LOW);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
else if(roundNum == 5) // else if it is round 5
{
// display number 5
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
else if(roundNum == 6) // else if it is round 6
{
// display number 6
digitalWrite(A, HIGH);
digitalWrite(B, LOW);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
else if(roundNum == 7) // else if it is round 7
{
// display number 7
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
}
else if(roundNum == 8) // else if it is round 8
{
// display number 8
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
else if(roundNum == 9) // else if it is round 9
{
// display number 9
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
}
else if (roundNum == MAX_ROUNDS + 1) // else if it is round 10 (which doesn't exist)
{
// print "end game to mimic the game ending in 9 successful rounds"
Serial.println("END GAME - WINNER!");
while(roundNum == MAX_ROUNDS + 1) // while game is over
{
// blink number 9
digitalWrite(A, LOW);
digitalWrite(B, LOW);
digitalWrite(C, LOW);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
delay(300);
digitalWrite(A, HIGH);
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, HIGH);
digitalWrite(G, HIGH);
delay(300);
}
}
// print the round number that is displayed on the 7-segment display
Serial.print("ROUND ");
Serial.println(roundNum);
Serial.print('\n');
delay(2000);
roundNum++; // increment round number on display after each round is completed
}