bueno, antes de que vengan a decirte que no uses gotxy() y todas esos metodos no standard (lo cual no deberias jeje), yo pienso que si tu objetivo es hacer juegos, es tambien muy importante ( o mas ) aprender que NUNCA debes de usar delay() o funciones similares, ya con eso perderas valiosos segundos de calculos que algun dia desearas tener (yo estoy pasando por algo asi ahorita con mi juego).
ahora, en este tipo de casos, hacer un ciclo asi, es algo DEMASIADO rapido, y por eso te ves forzado a usar delay().
Bueno, ahora que sabes eso, para hacer lo que tu quieres tienes 2 opciones:
1.- Hacer tu movimiento basado en el tiempo.
2.- Manejar el movimiento con el teclado y/o el mouse. (el cual tambien deberia de implementar el movimiento basado en el tiempo)
El movimiento basado en tiempo (Time Based Movement), es para que puedas mantener a cierta velocidad el movimiento de tus objetos, en este caso seria para controlar la velocidad con que se mueve la "g". Para esto debes calcular el tiempo (en segundos) entre cada frame (cada que se procesa un ciclo), luego, multiplicar el tiempo transcurrido por la velocidad que deseas.
Realmente nunca pase por tratar de aplicar algo asi a un programa en modo consola, pero en teoria deberia de poderse implementar tambien.
Lo que te recomiendo, es que si ya sabes C, y ya quieres empezar a hacer pruebas de animacion, empieces a aprender una libreria que te permita trabajar en modo de ventana. Te recomendaria usar SDL o Allegro. Con esto, ya vas a poder desplegar dibujos de forma MUY MUY sencilla (puede ser desde 1 pixel, hasta imagenes de diversos formatos), y hacer el tipo de pruebas que estas tratando ahorita....
aqui los links para allrego y sdl....
http://alleg.sourceforge.net/index.es.html http://www.libsdl.org/