Hola,
Revisar ese código es bastante complejo y encontrar el posible error es todavía mas difícil sin tener todo el código, y depurar un programa para ME le agrega mas complicaciones.
Pero si me permites darte un consejo, evidentemente estás usando un Vector para almacenar arreglos y eso evidentemente hace mas complejo algo que es mucho mas simple. Lo que deberías de manejar es una matriz, puesto que cada posición en la pantalla va a significar un cuadro.
Es decir, si tienes una matriz, por ejemplo:
Código:
char[][] pantalla = new char[25][80];
para accesar una posición solamente tienes que llevar una serie de coordenadas X y Y. La primera posición sería X = 0 y Y = 0, si quieres bajar solamente tienes que sumar 1 a Y y marcar la posición del vector como ocupado o algo.
Y te eliminas este tipo de construcciones que son difíciles de depurar:
Código:
int z[]=(int[])Vector_snake.elementAt(x-1);
Vector_snake.removeElementAt(x);
Vector_snake.insertElementAt(z, x);
En otros casos son muy útiles las colecciones.
Saludos,
ps:
El mejor ejemplo que he visto de este tipo de juegos fue Nibbles de Microsoft, que venía como ejemplo en QBasic en 1988 o algo así. Todavía puedes encontrar el código en algún lugar de la red, si deseas leerlo. Aunque se manejaba la parte superior de cada lugar de la matriz como superior ▀ e inferior ▄ y lleno █ lo cual hacía mas complejo el código, es el mejor ejemplo que yo personalmente haya visto de este juego. Y usaron una matriz.