Beispiel #1
0
        public void TurnoJugador(Button button)

        {
            int          columnas = (int)Session["columnas"] + 1;
            int          filas    = (int)Session["filas"] + 1;
            List <Ficha> fichas   = (List <Ficha>)Session["fichas"];
            Boolean      turno    = (Boolean)Session["turno"];
            Juego        metodos  = new Juego();
            Boolean      apertura = AperturaPersonalizada(false);

            if (fichas.Count >= 4)
            {
                if (metodos.ValidadAccion(button))
                {
                    Accion(button);
                    metodos.Limpiar((int)Session["columnas"] + 1, (int)Session["filas"] + 1);
                    metodos.MovimientosPosibles((Boolean)Session["turno"], (int)Session["columnas"] + 1, (int)Session["filas"] + 1);
                    ValidarGanadores();
                }
            }
            else if (apertura)
            {
                if (metodos.ValidadAccion(button))
                {
                    Accion(button);
                    if (fichas.Count == 4)
                    {
                        metodos.MovimientosPosibles((Boolean)Session["turno"], (int)Session["columnas"] + 1, (int)Session["filas"] + 1);
                    }
                    int[,] matriz = (int[, ])Session["matriz"];
                    int[] fichasT = metodos.ContarFichas(matriz, columnas, filas);
                    ImprimirMatriz(matriz, columnas, filas);
                    int fichasJ1 = fichasT[0];
                    int fichasJ2 = fichasT[1];
                    Label10.Text = "" + (int)Session["movimientosJ1"];
                    Label18.Text = "" + (int)Session["movimientosJ2"];
                    Label8.Text  = "" + fichasJ1;
                    Label16.Text = "" + fichasJ2;
                }
            }
        }
Beispiel #2
0
        public void CargarPartida()
        {
            LinkedList <String> Listaj1 = (LinkedList <String>)Session["coloresJ1"];
            LinkedList <String> Listaj2 = (LinkedList <String>)Session["coloresJ2"];
            Juego        metodos        = new Juego();
            Ficha        ultima         = new Ficha();
            List <Ficha> fichas         = new List <Ficha>();
            XmlDocument  archivo        = new XmlDocument();

            archivo.Load(Server.MapPath("~/Xml/partidaExt.xml"));
            int     numero = 0;
            Boolean turno;
            int     jugador = 0;
            Tablero tab     = new Tablero();

            foreach (XmlElement item in archivo.DocumentElement)
            {
                Ficha fi = new Ficha();
                for (int i = 0; i < item.ChildNodes.Count; i++)

                {
                    string valor  = item.ChildNodes[i].InnerText.Trim();
                    String nombre = item.ChildNodes[i].LocalName;
                    switch (item.ChildNodes[i].LocalName.ToLower())
                    {
                    case "columnas":
                        tab.columnas = int.Parse(valor);
                        break;

                    case "filas":
                        tab.filas = int.Parse(valor);
                        break;

                    case "jugador1":
                        jugador = 1;
                        break;

                    case "jugador2":
                        jugador = 2;
                        break;

                    case "tablero":
                        jugador = 0;
                        break;

                    case "color":
                        if (jugador == 1)
                        {
                            Listaj1.AddLast(valor);
                        }
                        else if (jugador == 2)
                        {
                            Listaj2.AddLast(valor);
                        }
                        else
                        {
                            fi.color = valor;
                        }
                        break;

                    case "columna":
                        fi.columna = valor;
                        break;

                    case "fila":
                        fi.fila = valor;
                        break;

                    case "siguienteTiro":
                        fi.color = valor;
                        break;

                    case "modalidad":
                        if (valor == "inverso")
                        {
                            Session["inverso"] = true;
                            CheckBox21.Checked = true;
                        }
                        else
                        {
                            Session["inverso"] = false;
                            CheckBox21.Checked = false;
                        }
                        break;

                    default:
                        numero++;
                        Console.WriteLine(numero);
                        break;
                    }
                }
                if (fi.columna == null)
                {
                    ultima = fi;
                }
                else
                {
                    fichas.Add(fi);
                }
            }

            Session["fichas"]    = fichas;
            Session["ultima"]    = ultima;
            Session["coloresJ1"] = Listaj1;
            Session["coloresJ2"] = Listaj2;
            Session["columnas"]  = tab.columnas - 1;
            Session["filas"]     = tab.filas - 1;
            Session["inverso"]   = true;

            Tablero(tab.columnas, tab.filas);
            LimpiarTablero(fichas, tab, Listaj1, Listaj2);
            ImprimirFichas();
            if (ultima.color == "negro")
            {
                turno            = false;
                Session["turno"] = turno;
            }
            else
            {
                turno            = true;
                Session["turno"] = turno;
            }
            metodos.MovimientosPosibles(turno, tab.columnas, tab.filas);
            ValidarGanadores();
            MostrarTurno();
        }
Beispiel #3
0
        public void ValidarGanadores()
        {
            int     columnas = (int)Session["columnas"] + 1;
            int     filas    = (int)Session["filas"] + 1;
            Juego   metodos  = new Juego();
            Partida partida  = new Partida();

            int[,] matriz = (int[, ])Session["matriz"];
            int[] fichas = metodos.ContarFichas(matriz, columnas, filas);
            ImprimirMatriz(matriz, columnas, filas);
            int     fichasJ1 = fichas[0];
            int     fichasJ2 = fichas[1];
            int     fjugador1, fjugador2;
            Boolean condicion1  = fichasJ1 > fichasJ2;
            Boolean condicion2  = fichasJ1 < fichasJ2;
            Boolean modoInverso = (Boolean)Session["inverso"];

            if (modoInverso)
            {
                condicion1 = !condicion1;
                condicion2 = !condicion2;
            }
            Label10.Text = "" + (int)Session["movimientosJ1"];
            Label18.Text = "" + (int)Session["movimientosJ2"];

            fjugador1    = fichasJ1;
            fjugador2    = fichasJ2;
            Label8.Text  = "" + fichasJ1;
            Label16.Text = "" + fichasJ2;

            Boolean movOtroJ = metodos.MovimientosPosibles(!(Boolean)Session["turno"], columnas, filas);

            metodos.Limpiar(columnas, filas);

            Boolean movTurnoAct = metodos.MovimientosPosibles((Boolean)Session["turno"], columnas, filas);

            if (fichasJ1 + fichasJ2 == columnas * filas || !movTurnoAct && !movOtroJ)
            {
                string resultado = null;
                if (condicion1)
                {
                    string script = "alert('Gana Jugador 1!');";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, true);
                    resultado = "Ganador";
                }
                else if (condicion2)
                {
                    string script = "alert('Gana Jugador 2!');";

                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, true);
                    resultado = "Perdedor";
                }
                else if (fichasJ1 == fichasJ2)
                {
                    string script = "alert('Empate!');";
                    ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, true);
                    resultado = "Empate";
                }
                //partida = Datos(fjugador1, fjugador2);
                partida.resultado = resultado;
                //RegistrarPartida(partida);
            }
            else if (movTurnoAct)
            {
            }
            else if (!movTurnoAct)
            {
                Session["turno"] = !(Boolean)Session["turno"];
                string script = "alert('No puedes mover! :c');";
                ScriptManager.RegisterStartupScript(this, typeof(Page), "alerta", script, true);
                metodos.MovimientosPosibles((Boolean)Session["turno"], columnas, filas);
            }
        }