entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

3votos

Cómo puedo llenar y recorrer un árbol en C# recursivamente

Saludos. Estoy desarrollando una aplicación para entrenar ajedrez. La idea es cargar un archivo PGN Portable Game Notation (no PNG que es formato imagen), que es un archivo donde se almacenan los datos de una partida y además las movidas.

Cada jugada puede tener cero, una o más variaciones. Estoy hecho un lío para llenar el árbol y luego para recorrerlo.

A continuación la clase que he creado:

public class Movida 
    {
        private int numeroMovida;
        private string algebraicMove;
        private int token;
        private string comentario;
        private List<Movida> variaciones = new List<Movida>();        
        public Movida(int numeroMovida, string algebraicMove, int token, string comentario, List<Movida> variaciones) {
            this.numeroMovida = numeroMovida;
            this.algebraicMove = algebraicMove;
            this.token = token;
            this.comentario = comentario;
            this.variaciones = null;
        }
        public void agregarMovida(Movida movida) {
            variaciones.Add(movida);
        }
        public List<Movida> obtenerVariaciones() {
            return variaciones;
        }
    }

Creo que necesito hacer una función para ingresar llenar el árbol recursivamente, igual para obtener las movidas de vuelta. Cualquier ayuda se agradece.

0voto

carlossevi comentado

La clase que has creado tiene buena pinta, ya veo que la has basado en las respuestas que te dieron en este hilo (http://stackoverflow.com/questions/28409958/pgn-chess-parser-how-to-deal-with-variations).

Ahora te falta leer el archivo PGN y empezar a procesarlo creando objetos. En la Wikipedia se encuentra información sobre el formato del fichero PGN. Efectivamente te hace falta una función que lea el fichero y comience a "entenderlo". ¿Tienes algo de código hecho o quieres que te lo hagamos entero?

0voto

ctapiamori comentado

En tu constructor no asignaste las variaciones, this.variaciones = null; debería ser this.variaciones = variaciones;, el codigo esta bien implementado, no se cual sea tu problema? indicas que necesitas algo para llenar el arbol, y como te lo indica @carlossevi deberías crear un metodo que lea el archivo y llene este objto, si tienes mas de tu codigo apra poder ver que realizas, seria bueno para poder apoyarte.

0voto

ALFREDISIMOKID comentado

Amigo gracias, voy a intentarlo y te muestro. He visto también la opción de expresiones regulares REGEX en C#. Cacharreo y te cuento. Estoy hecho un lío pero seguiré luchando .Mil gracias por tu interés y ayuda.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta