Using a timer instead of Thread.sleep()

Changed Player to an interface instead of an abstract class