An Amusement Machine using LEDs

Wow! Seems to be working.
Thanks a million Mike. I owe you something big.
So, I was overthinking it at the end - wondering how to drag all the terms up from the spin function - Instead I just need to have faith that the wheel array was ready to be called directly with fresh simple commands.
Seems a lot easier now...

//multi-array of 3 reels of 25 symbols made up of 10 different tokens
byte symbols[3][25] = {
{2, 3, 2, 4, 5, 6, 3, 2, 7, 2, 8, 9, 3, 4, 5, 2, 3, 2, 10, 2, 11, 2, 3, 9, 5 },
{10, 4, 9, 2, 3, 4, 9, 5, 6, 4, 9, 7, 8, 4, 9, 11, 9, 3, 5, 9, 5, 3, 2, 9, 4 },
{2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 3, 4, 5, 6, 7, 8 }
};

byte wheel[3] = {0, 0, 0}; //wheel array for storing the stop token for three reel spins

void setup() {
for (int i = 2; i < 12; i++) { // declare pin numbers for 10 symbols
pinMode(i, OUTPUT); //declare pins as outputs
}
pinMode(15, INPUT_PULLUP); //declare pin 15 as an input with 5V pullup resitor
Serial.begin(9600); // needs to be in setup and not loop
}

void loop() {

for (int j = 0; j < 3 ; j++ ) { //calling up 3 wheels indexing through matrix rows
// you need to call spin here and tell it what wheel it is on
wheel[j] = spin(j); // we are passing a paramater to spin so we have to
//change the spin function to cope with this

for (int i = 0; i < 5; i ++) { // flashing last symbol passed back from spin function

flash(200, 200, wheel[j]);
}
}
//Foloowing the triple call to spin function -
//Well we have those three numbers in the wheel array,
//so how about a for loop to flash each one in turn.
//Then put that code into a nested array to make it flash the three say four times.

for (int k = 0; k < 4 ; k++ ) {//k runs through the entire flash sequence
delay(1000);

for (int j = 0; j < 3 ; j++ ) {//j runs through three array places in wheel[]

for (int i = 0; i < 1; i ++) { //i gives the number of flashes

flash(1000, 100, wheel[j]);
}
}
}
}
// flash function calls up each token LED & turns on then off

void flash( int onTime, int offTime, byte token) {
digitalWrite(token, HIGH); // will turn on the LED
delay(onTime); // so you can see it
digitalWrite(token, LOW); // will turn off the LED
delay(offTime); // so you can see it off
}

int spin(int wheelToUse) { // need to tell spin to accept a symbol
// loop along 25 smbol row in array

static int spinCount [] = {0, 0, 0};

// waiting...
while (digitalRead(15) == HIGH) { } // do nothing until the switch is moved
// spin action starts here

Serial.println(" "); //start a new line on printout

while (digitalRead(15) == LOW) { //checking if input remains high before advancing count

spinCount[wheelToUse] += 1;

if (spinCount[wheelToUse] == 25) spinCount[wheelToUse] = 0; //Checking if variable spinCount needs wrapping around
flash(200, 200, symbols[wheelToUse][spinCount[wheelToUse]]); // rapid flash for each moving symbol

Serial.print(symbols[wheelToUse][spinCount[wheelToUse]]);

}
return symbols[wheelToUse][spinCount[wheelToUse]]; // send back the symbol/token it landed on
}