another problem is that the function timer(); cant be called after the loop of having the first winner, again, it just waits for another input to happen.
You haven't posted new code or described what changes you have made to the hardware.
should i use interrupts?
What would trigger the interrupt? What would you do when the interrupt occurred. Typically, the need to use interrupts is quite obvious. If you aren't sure, you probably don't need interrupts.