(not a ) switch case question (anymore...)

This bit of code does things in the wrong order:

      state++;
      {
        lcd.begin(16,2);
        lcd.print("DigiDice - D");
        lcd.print(dValue[state]);
      }
    }
    if (state > 6)

You print the new dice value before you do the 'if(state > 6)' check to reset it to zero. The '1' you're seeing on the display is just whatever happens to be in the memory location after the last dice.

A better way to do this would be like this:

      // DICE_COUNT is the number of elements in the dValue array
      state = (state+1) % DICE_COUNT;
      lcd.begin(16,2);
      lcd.print("DigiDice - D");
      lcd.print(dValue[state]);