whole gameplay logic exported to separate method gameplay()