Your lettering of the segments is wrong, making it a trifle difficult to check the digit patterns. There is a standard way of denoting them.
_a_
/ /
f /_g_/ b
/ /
e /___/ c
d
While you are at it, go back and "modify" your first post to correct the "quote" tags to "code".
Now, whilst your circuit proposes to have the common cathode of the 7-segment display grounded, you photograph suggests it is in fact connected to an Arduino (output) pin and you have an eighth pin defined, presumably as the decimal. I have a funny suspicion that you have been fiddling with the wiring and the code trying to get it to work with this wiring mistake and actually have the common cathode connected to that eighth pin which you are setting high in your muddled case 9 which is pulling the common cathode (which is in all other cases pulled low and sinking the current for all the segments) high and - blanking the display.
You need to pull it apart - I suggest you re-do your wiring to match the standard pattern, put in the 470 ohm resistors and clean up the code to match (use pins starting at 2, re-do the segment patterns, "case" starting at zero), connect the cathode pin to an actual ground, and you should be in business.
I don't know what int i=0,X; means either.