Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: Firefoxes en 18 Diciembre 2017, 00:29 am



Título: Problema siempre me entra en una estructura if aunque no cumpla la condición, C
Publicado por: Firefoxes en 18 Diciembre 2017, 00:29 am
Buenas, este es mi primer post en este foro. Llevo muy poco programando y me propuse hacer un juego simple como el mítico snake por simple satisfacción personal y prácticar un poco.

Debido a mi poca experiencia quizás he planteado el problema de una manera un tanto enrevesada y farragosa aunque parece que le concepto funciona.

Mi problema comienza en la función que he creado para detectar si ha comido una fruta o no la serpiente, en dicha función siempre entra en el segundo bloque 'if'  aunque no cumpla la condición lo cual no tiene sentido aparente.

Lo más seguro es que esté pasando por alto algún error obvio en el código que tras tanto tiempo delante del ordenador ya me es incapaz de detectarlo.

Os dejo aquí el código : https://pastebin.com/p86TDXiP (https://pastebin.com/p86TDXiP)


Por haceros un breve resumen de la utilidad de cada función:


imprimeCampo - Imprime la matriz del campo y limpia el terminal

moveCabeza - Mueve las coordenadas x e y dependiendo de la dirección y devuelve si se ha movido hacía un obstaculo o una casilla libre (obstáculo devuelve 1, libre devuelve 0)

borraCola
- borra el ultimo componente de la serpiente cuando la cabeza avanza

comp - comprueba que la dirección introducida no va en sentido contrario a la dirección en la que se mueve la serpiente (sentido contrario devuelve 2, sentido correcto devuelve 0)

fruta - genera una fruta de forma aleatoria en el campo

comefruta
- detecta si en la coordenada a donde dispone moverse la cabeza hay una fruta o no (en caso positivo devuelve 1, caso negativo devuelve 0)

Como información adicional estoy usando Code::Blocks y el compilador GNU GCC

Gracias :)