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); } }
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; }