many ways to do this, this is off the top of my head
a two dim array for the entire board
start with your pixels off screen position, somewhere at max x +1,y ... randomize y
before moving your pixel check the position x,y-1 against the two dim array.
if that spot is empty,
set the position to x,y-1
else
add x,y to arraylist
reset pixel position to top value(max x +1, random y)
refresh the leds to display your 2 dim array
then use interrupts for button pushes... should just modfy the x value... you can decide if it wraps or the right/left edges are boundraies.....
actually this is starting to sound interesting to me....
maybe two of these stacked for the leds?