fully functional connect 4 implemented