Ejemplo n.º 1
0
        public bool moverUnidad(String nombre, int x, int y, String nickname)
        {
            Matriz     m = encontrarMatriz(nombre);
            NodoMatriz n = null;

            if (m != null)
            {
                n = m.getNodo(nombre);
            }

            if (n != null)
            {
                int mx = x - n.Columna;
                int my = y - n.Fila;
                int r  = Math.Abs(mx) + Math.Abs(my);
                if (n.Nave.Movimiento >= r && m.getNodo(y, x) == null && n.Nave.Mover == 0 && n.Nave.Nickname.Equals(nickname))
                {
                    m.Eliminar(nombre);
                    matriz.Insertar(y, x, nombre, n.Nave.Nickname);
                    n.Nave.Mover = 1;
                    consola      = consola + nickname + ":  movio a la unidad " + nombre + ". \n ";
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
            else
            {
                return(false);
            }
        }
Ejemplo n.º 2
0
        private Matriz generarNuevaMatriz(String nick)
        {
            Matriz m = new Matriz(1);

            if (matriz.Anterior != null)
            {
                Encabezado fila = matriz.Anterior.Filas.Cabeza;
                while (fila != null)
                {
                    NodoMatriz n = fila.Acceso;
                    while (n != null)
                    {
                        if (n.Nave.Nickname.Equals(nick))
                        {
                            m.Insertar(n.Fila, n.Columna, n.Nave.Nombre, nick);
                        }
                        n = n.Derecha;
                    }
                    fila = fila.Siguiente;
                }
            }

            return(m);
        }
Ejemplo n.º 3
0
        public String atacarUnidad(String nombre, int columna, int fila, String nickname, int nivel)
        {
            String resultado = "";
            String receptor;

            if (nickname.Equals(jugador1))
            {
                receptor = jugador2;
            }
            else
            {
                receptor = jugador1;
            }
            Matriz     m        = encontrarMatriz(nombre);
            NodoMatriz atacante = null;

            if (m != null)
            {
                atacante = m.getNodo(nombre);
            }


            m = matriz;
            if (nivel == 0)
            {
                m = m.Anterior;
            }
            else if (nivel == 2)
            {
                m = m.Siguiente;
            }
            else if (nivel == 3 && m.Siguiente != null)
            {
                m = m.Siguiente.Siguiente;
            }

            NodoMatriz victima = null;

            if (m != null)
            {
                victima = m.getNodo(fila, columna);
            }
            if (atacante != null && victima != null && String.Compare(atacante.Nave.Nickname, victima.Nave.Nickname) != 0 && String.Compare(atacante.Nave.Nickname, nickname) == 0 && atacante.Nave.Atacar == 0)
            {
                int rango = Math.Abs(atacante.Fila - fila) + Math.Abs(atacante.Columna - columna);
                if (rango <= atacante.Nave.Alcance)
                {
                    if (nombre.ToLower().Contains("fragata"))
                    {
                        if (rango >= 2 && rango <= 6)
                        {
                            atacante.Nave.Atacar = 1;
                            victima.Nave.Vida    = victima.Nave.Vida - atacante.Nave.Daño;
                            if (victima.Nave.Vida <= 0)
                            {
                                m.Eliminar(victima.Nave.Nombre);
                                resultado = victima.Nave.Nombre;
                                historial.Insertar(columna, fila, nombre, 0, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                                consola = consola + nickname + ": ataco a la unidad " + victima.Nave.Nombre + ". \n";
                            }
                            else
                            {
                                resultado = "1," + victima.Nave.Nombre;
                                consola   = consola + nickname + ": derrivo a la unidad " + victima.Nave.Nombre + ". \n";
                                historial.Insertar(columna, fila, nombre, 1, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                            }
                        }
                        else
                        {
                            resultado = "error";
                        }
                    }
                    else if (nombre.ToLower().Contains("bombardero") || nombre.ToLower().Contains("neosatelite"))
                    {
                        if (atacante.Abajo == victima)
                        {
                            atacante.Nave.Atacar = 1;
                            victima.Nave.Vida    = victima.Nave.Vida - atacante.Nave.Daño;
                            if (victima.Nave.Vida <= 0)
                            {
                                m.Eliminar(victima.Nave.Nombre);
                                resultado = victima.Nave.Nombre;
                                historial.Insertar(columna, fila, nombre, 0, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                            }
                            else
                            {
                                resultado = "1," + victima.Nave.Nombre;
                                historial.Insertar(columna, fila, nombre, 1, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                            }
                        }
                        else
                        {
                            resultado = "error";
                        }
                    }
                    else
                    {
                        atacante.Nave.Atacar = 1;
                        victima.Nave.Vida    = victima.Nave.Vida - atacante.Nave.Daño;
                        if (victima.Nave.Vida <= 0)
                        {
                            m.Eliminar(victima.Nave.Nombre);
                            resultado = victima.Nave.Nombre;
                            historial.Insertar(columna, fila, nombre, 0, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                        }
                        else
                        {
                            resultado = "1," + victima.Nave.Nombre;
                            historial.Insertar(columna, fila, nombre, 1, victima.Nave.Nombre, nickname, receptor, DateTime.Today.ToString(), tiempo2, 0);
                        }
                    }
                }
                else
                {
                    resultado = "error";
                }
            }
            else
            {
                resultado = "error";
            }

            return(resultado);
        }