static void Main(string[] args)
        {
            bool     endgame = false;
            Operator op      = new Operator();

            opinterfaz.UI.Link(op);
            opinterfaz.UI.ShowMessage("Debido a la imposibilidad de cambiar de etapa cuandose cumple el objetivo, para pasar a otra etapa hay que pulsar redo");
            while (op.mapacargado == false)
            {
            }
            while (endgame == false)
            {
                while (op.mapacargado == false)
                {
                }
                Console.WriteLine("Se cargaron todos los mapas");
                Lista etapas = op.etapas;
                for (int i = 0; i < etapas.Largo; i++)
                {
                    Thread.Sleep(1000);
                    op.win    = false;
                    op.defeat = false;
                    op.reload = false;
                    Etapa etapaActual = (Etapa)etapas.buscar(i);
                    opinterfaz.portalB = etapaActual.portalB;
                    opinterfaz.portalO = etapaActual.portalO;
                    op.etapaActual     = etapaActual;
                    opinterfaz.UI.NewBoard(etapaActual.eradio);
                    opinterfaz.draw(etapaActual.Listanodos);
                    opinterfaz.UI.DrawNextMoves(etapaActual.pushes);
                    opinterfaz.UI.ShowMessage("Nombre de la etapa: " + etapaActual.name + "\n" + "Numero de movimientos máximos: " + etapaActual.pushes.Length + "\n" + "Objetivo :" + etapaActual.objetivo);
                    while (!op.win && !op.defeat && !op.reload)
                    {
                    }
                }
                op.reload = false;
                op        = new Operator();
                opinterfaz.UI.Link(op);
            }
        }
Exemple #2
0
        public void OpenFile(string path) //Armar todas las estructuras, y luego ir presentandolas
        {
            Console.WriteLine("55");
            XmlDocument xDoc = new XmlDocument();

            try
            {
                xDoc.Load(path);
                this.reload = true;
            }
            catch (ArgumentException)
            {
                Console.WriteLine("ERROR - error 00002");
                return;
            }
            XmlNodeList dat = xDoc.SelectNodes("//stageList/stage");

            //Asigancion de nodos a sus posiciones iniciales...
            foreach (XmlNode stage in dat) //Leer etapas, crear una estructura hex para cada etapa, se cargan en una lista, luego se cargan individualmente
            {
                int                     i         = 0;
                XmlNodeList             Compstage = stage.ChildNodes;
                XmlNodeList             pushList  = Compstage[2].ChildNodes;
                LibreriaT3.PetalColor[] tmppushes = new LibreriaT3.PetalColor[pushList.Count];
                //Cargando los pushes
                #region
                foreach (XmlNode push in pushList)
                {
                    switch (push.Attributes[0].Value)
                    {
                    case "blue":
                        tmppushes[i] = LibreriaT3.PetalColor.Blue;
                        break;

                    case "pink":
                        tmppushes[i] = LibreriaT3.PetalColor.Pink;
                        break;

                    case "green":
                        tmppushes[i] = LibreriaT3.PetalColor.Green;
                        break;

                    case "orange":
                        tmppushes[i] = LibreriaT3.PetalColor.Orange;
                        break;

                    default:
                        Console.WriteLine("[!] No se reconoció un pushpetal en el XML");
                        break;
                    }
                    i++;
                }
                #endregion
                Etapa tempetapa = new Etapa(int.Parse(stage.Attributes[1].Value), stage.Attributes[0].Value, Compstage[3].ChildNodes[0].Attributes[0].Value, tmppushes);
                etapas.Add(tempetapa);
                XmlNodeList petalList = Compstage[0].ChildNodes;
                //Cargando los petalos
                #region
                foreach (XmlNode petal in petalList)
                {
                    int   bx       = int.Parse(petal.Attributes[2].Value); //d=x
                    int   by       = int.Parse(petal.Attributes[1].Value); //h=y
                    Celda celdatmp = tempetapa.Listanodos.buscar(bx, by);
                    switch (petal.Attributes[0].Value)
                    {
                    case "bluePetal":
                        celdatmp.pcolor = LibreriaT3.PetalColor.Blue;
                        celdatmp.ptipo  = LibreriaT3.PetalType.Normal;
                        break;

                    case "greenPetal":
                        celdatmp.pcolor = LibreriaT3.PetalColor.Green;
                        celdatmp.ptipo  = LibreriaT3.PetalType.Normal;
                        break;

                    case "pinkPetal":
                        celdatmp.pcolor = LibreriaT3.PetalColor.Pink;
                        celdatmp.ptipo  = LibreriaT3.PetalType.Normal;
                        break;

                    case "orangePetal":
                        celdatmp.pcolor = LibreriaT3.PetalColor.Orange;
                        celdatmp.ptipo  = LibreriaT3.PetalType.Normal;
                        break;

                    case "bomb":
                        celdatmp.ptipo  = LibreriaT3.PetalType.Explosive;
                        celdatmp.pcolor = null;
                        break;

                    case "rasho":
                        celdatmp.ptipo  = LibreriaT3.PetalType.Lightning;
                        celdatmp.pcolor = null;
                        break;

                    case "gravity":
                        celdatmp.ptipo  = LibreriaT3.PetalType.Gravity;
                        celdatmp.pcolor = null;
                        break;
                    }
                }
                #endregion
                XmlNodeList cellList = Compstage[1].ChildNodes;
                //Cargando las celdas especiales
                #region
                foreach (XmlNode celda in cellList)
                {
                    int   by       = int.Parse(celda.Attributes[2].Value);
                    int   bx       = int.Parse(celda.Attributes[1].Value);
                    Celda celdatmp = tempetapa.Listanodos.buscar(bx, by);
                    switch (celda.Attributes[0].Value)
                    {
                    case "ArrowS":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowS;
                        break;

                    case "ArrowNE":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowNE;
                        break;

                    case "ArrowNW":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowNW;
                        break;

                    case "ArrowSE":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowSE;
                        break;

                    case "ArrowSW":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowSW;
                        break;

                    case "ArrowN":
                        celdatmp.celdatipo = LibreriaT3.CellType.ArrowN;
                        break;

                    case "PortalO":
                        celdatmp.celdatipo = LibreriaT3.CellType.PortalO;
                        tempetapa.portalO  = celdatmp;
                        break;

                    case "PortalB":
                        celdatmp.celdatipo = LibreriaT3.CellType.PortalB;
                        tempetapa.portalB  = celdatmp;
                        break;

                    case "Hole":
                        celdatmp.celdatipo = LibreriaT3.CellType.Hole;
                        break;
                    }
                }
                #endregion
            }
            this.mapacargado = true;
        }