Ver Mensaje Individual
  #2 (permalink)  
Antiguo 13/11/2015, 17:50
Avatar de xKuZz
xKuZz
 
Fecha de Ingreso: febrero-2015
Ubicación: nullptr
Mensajes: 183
Antigüedad: 9 años, 10 meses
Puntos: 27
Respuesta: Problema con laberinto de asteriscos

Cita:
Estoy que no sé si crear una clase
¿A qué llamas clase en C?

Recomendación: Antes de pararte a escribir código acostúmbrate a tener claro qué es lo que vas a hacer, coge papel y lápiz y a dibujar, te ayudará, sobre todo cuando las cosas sean más complicadas que esta.

En cuanto a tu problema, yo encapsularía la colisión en una función que devuelva un entero. Si tu haces if sobre una expresión que devuelva 0 eso es verdadero si no es falso.

Código C:
Ver original
  1. int puedoMoverme(char direccion)

Siempre que te cueste ver algo intenta abstraerte centrate en un problema más chico. Para que puedas seguir trabajando tú sólo (muy buena actitud, espero verte más por el foro ) y que no te pierdas debes resolver dos cosas.

En la parte de desplazamiento:
  • ¿Cuáles son los requisitos para llamar a puedoMoverme?, es decir ¿dónde debes llamarla?.
  • ¿Qué debo usar para que si algo me devuelve verdadero se ejecute un trozo de código en c cuando compruebo que una expresión sea verdadera?


Recomendación: Divide el problema, en problemas más chicos, asegúrate de que cada trozo pequeño funciona correctamente y al juntarlo todo funcionará perfectamente.

En la parte en la compruebas la colisión:
  • Olvídate del resto del código.
  • Tú sabes qué recibes una dirección y tienes acceso a la posición actual. Devuelve 1 cuando te puedas mover, devuelve 0 si no puedes.
Advertencia: Tu programa podría empezar encima de una estrella, eso debes modificarlo cuando puedas para que no ocurra.