Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Ayuda con programacion de juego.

Estas en el tema de Ayuda con programacion de juego. en el foro de Visual Basic clásico en Foros del Web. Gracias de antemano por la ayuda que puedan prestarme. El problema consiste en que he programado un clon del juego Winlines y esta casi terminado, ...
  #1 (permalink)  
Antiguo 17/08/2006, 17:32
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 17 años, 8 meses
Puntos: 0
Exclamación Ayuda con programacion de juego.

Gracias de antemano por la ayuda que puedan prestarme.
El problema consiste en que he programado un clon del juego Winlines y esta casi terminado, solo que no he logrado la funcion que determina si una de las bolas puede viajar de una posicion (A) a un destino (B) destino que le asignemos.
me explico mejor, el juego consiste en un puzzle de bolas de diferentes colores en un tablero de 9x9 casillas y se eliminan al colocar 5 o + de un mismo color ya sea vert, horiz o diagonal, pero para trasladarse de una posicion a otra en el tablero debe cumplirse la condicion que exista una ruta entre el origen y el destino, libre de otras bolas,teniendo en cuenta que las bolas no se desplazan diagonalmente.
Por tanto necesito un algoritmo o funcion que me verifique si existe un camino valido al destino o no. He probado infinidad de metodos pero nada me soluciona el problema y es una lastima dejar el juego casi terminado solo por esa razon, por ello si pueden ayudarme lo agradeceria.
tengo la imprecion que el camino se encuentra en las matrices multidimencionales, pero como les explique no tengo nada en la mano concreto. Saludos KArel
  #2 (permalink)  
Antiguo 17/08/2006, 22:13
 
Fecha de Ingreso: agosto-2006
Mensajes: 13
Antigüedad: 17 años, 8 meses
Puntos: 1
ayuda

Hola me gustaia ayudarte pero no tengo exactamente claro lo q queres decir

Cita:
Iniciado por KAMA Ver Mensaje
Gracias de antemano por la ayuda que puedan prestarme.
El problema consiste en que he programado un clon del juego Winlines y esta casi terminado, solo que no he logrado la funcion que determina si una de las bolas puede viajar de una posicion (A) a un destino (B) destino que le asignemos.
me explico mejor, el juego consiste en un puzzle de bolas de diferentes colores en un tablero de 9x9 casillas y se eliminan al colocar 5 o + de un mismo color ya sea vert, horiz o diagonal, pero para trasladarse de una posicion a otra en el tablero debe cumplirse la condicion que exista una ruta entre el origen y el destino, libre de otras bolas,teniendo en cuenta que las bolas no se desplazan diagonalmente.
Por tanto necesito un algoritmo o funcion que me verifique si existe un camino valido al destino o no. He probado infinidad de metodos pero nada me soluciona el problema y es una lastima dejar el juego casi terminado solo por esa razon, por ello si pueden ayudarme lo agradeceria.
tengo la imprecion que el camino se encuentra en las matrices multidimencionales, pero como les explique no tengo nada en la mano concreto. Saludos KArel
  #3 (permalink)  
Antiguo 17/08/2006, 22:14
 
Fecha de Ingreso: agosto-2006
Mensajes: 13
Antigüedad: 17 años, 8 meses
Puntos: 1
seria bueno saber exactemente como es el tablero en en el q se mueven las bolas gracias
  #4 (permalink)  
Antiguo 18/08/2006, 05:41
 
Fecha de Ingreso: agosto-2006
Mensajes: 6
Antigüedad: 17 años, 8 meses
Puntos: 0
El tablero

Hola Gracias por interesarte , el tablero es sencillo, solo como un tablero de ajedrez pero sin la diferencia de colores y de 9 por 9 casillas por lo que es cuadrado. Espero que esto te aclare.
en relidad conforma una matrice de 9x9 elementos solo que no tengo experiencia en trabajo con matrices en visualbasic. estuve buscando en internet y encontre un codigo que hace esto pero escrito en C++ y de ese lenguaje no tengo mucha experiencia, logre traducir algo, pero utilizan una variable llamada (copia )de tipo (puntero), es decir que apunta a otra variable y ahi se trabo todo mi entendimiento, aqui les pongo el codigo por si les ayuda de algo. Gracias

bool CTablero::PuedeMoverse(int x1,int y1,int x2,int y2,int** copia)
{
if(x1==x2 && y1==y2)
return true;

if(x1<=dimension-2 && copia[x1+1][y1]==0) //derecha
{
copia[x1][y1]=1;
if(PuedeMoverse(x1+1,y1,x2,y2,copia)==true)
return true;
}

if(y1>=1 && copia[x1][y1-1]==0)
{
copia[x1][y1]=1;
if(PuedeMoverse(x1,y1-1,x2,y2,copia)==true)
return true;
}

if(x1>=1 && copia[x1-1][y1]==0)
{
copia[x1][y1]=1;
if(PuedeMoverse(x1-1,y1,x2,y2,copia)==true)
return true;
}

if(y1<=dimension-2 && copia[x1][y1+1]==0)
{
copia[x1][y1]=1;
if(PuedeMoverse(x1,y1+1,x2,y2,copia)==true)
return true;
}
return false;
}

//----------------------------------------------------------------

void CTablero::Mover(int x1,int y1,int x2,int y2)
{
casilla[x2][y2]=casilla[x1][y1];
casilla[x1][y1]=0;
}

//---------------------------------------------------------------------------

void CTablero::CopiarTablero()
{
for(int y=0;y<dimension;y++)
for(int x=0;x<dimension;x++)
{
if (casilla[x][y]!=0)
copia[x][y]=1;
else
copia[x][y]=0;
}
}

//---------------------------------------------------------------------------

int CTablero::ContCopia(int x,int y)
{
return copia[x][y];
}
//---------------------------------------------------------------------------

KAMA

Última edición por KAMA; 18/08/2006 a las 08:23
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 08:21.