コード例 #1
0
        public void TestPuntoMasCercano()
        {
            Punto2D[] puntos  = new Punto2D[] { new Punto2D(0, 0), new Punto2D(0, 7), new Punto2D(0, 2) };
            Linea2D   linea2D = new Linea2D(puntos);

            Assert.AreEqual(puntos[0], linea2D.PuntoMasCercano(new Punto2D(0, 1)));
        }
コード例 #2
0
	// Update is called once per frame
	private void Update () {
		if (Input.GetKeyDown (KeyCode.E) && !MazeRunner) {
			Asignaciones ();
			CrearLaberinto ();

            Punto2D posicionCopa = getPosicionAleatoriayLibre();
            Debug.Log(" posicionCopa " + posicionCopa);

            muros[posicionCopa.x, posicionCopa.y] = 2;
			copaGameObject.transform.position = new Vector3 (posicionCopa.x, 0, posicionCopa.y);

            //Posicion de Harry
            Punto2D posicionHarry = getPosicionAleatoriayLibre();
            Debug.Log(" posicionHarry " + posicionHarry);

            muros[posicionHarry.x, posicionHarry.y] = 3;
            harryPower.SetPosicion(posicionHarry.x, posicionHarry.y);

			Punto2D posicionCedric = getPosicionAleatoriayLibre ();
			Debug.Log (" posicionCedric " + posicionCedric);

            cedric.SetPosicionCedric(posicionCedric.x, posicionCedric.y);
            muros[posicionCedric.x, posicionCedric.y] = 4;

            copaPos = posicionCopa;

			cedric.CalcularRuta (posicionCedric, posicionCopa);

            StartCoroutine(Evolucion());
		}
	}
コード例 #3
0
        public void TestLongitud()
        {
            Punto2D[] puntos  = new Punto2D[] { new Punto2D(0, 0), new Punto2D(0, 7), new Punto2D(0, 2) };
            Linea2D   linea2D = new Linea2D(puntos);

            Assert.AreEqual(6, linea2D.Longitud());
        }
コード例 #4
0
        static void Main(string[] args)
        {
            Punto2D p1 = new Punto2D(5.4, 6.2);
            Punto2D p2 = new Punto2D(5.9, 8.2);

            double distanza = p1.CalcolaDistanza(p2);

            Console.WriteLine("La distanza tra i due punti è: " + distanza);
        }
コード例 #5
0
	// Update is called once per frame
	void Update () {
        int paso = 1;
		positionActual = this.transform.position;
		Vector3 positionNueva;
        Punto2D nuevaPosMapa;
        Punto2D posActualMapa = new Punto2D((int)positionActual.x, (int)positionActual.z);

        //Las teclas para mover a Harry en sus 4 coordenadas son D,A,W,S
        //Para cada coordenada se verifica si está dentro del mapa y si existe una posición libre.

		if (Input.GetKeyDown(KeyCode.D)) {
            positionNueva = new Vector3(positionActual.x + paso, positionActual.y, positionActual.z);
            nuevaPosMapa.x = (int)positionNueva.x;
            nuevaPosMapa.y = (int)positionNueva.z;
            if (maze.isDentroDelMapa(nuevaPosMapa.x, nuevaPosMapa.y) && maze.isPosicionLibre(nuevaPosMapa.x, nuevaPosMapa.y))
            {
                maze.moverJugador(posActualMapa, nuevaPosMapa, 3);
                this.transform.position = positionNueva;
            }
		}
		if (Input.GetKeyDown(KeyCode.A)) {
            positionNueva = new Vector3(positionActual.x - paso, positionActual.y, positionActual.z);
            nuevaPosMapa.x = (int)positionNueva.x;
            nuevaPosMapa.y = (int)positionNueva.z;
            if (maze.isDentroDelMapa(nuevaPosMapa.x, nuevaPosMapa.y) && maze.isPosicionLibre(nuevaPosMapa.x, nuevaPosMapa.y))
            {
                maze.moverJugador(posActualMapa, nuevaPosMapa, 3);
                this.transform.position = positionNueva;
            }
		}
		if (Input.GetKeyDown(KeyCode.W)) {
            positionNueva = new Vector3(positionActual.x, positionActual.y, positionActual.z + paso);
            nuevaPosMapa.x = (int)positionNueva.x;
            nuevaPosMapa.y = (int)positionNueva.z;
            if (maze.isDentroDelMapa(nuevaPosMapa.x, nuevaPosMapa.y) && maze.isPosicionLibre(nuevaPosMapa.x, nuevaPosMapa.y))
            {
                maze.moverJugador(posActualMapa, nuevaPosMapa, 3);
                this.transform.position = positionNueva;
            }
		}
		if (Input.GetKeyDown(KeyCode.S)) {
            positionNueva = new Vector3(positionActual.x, positionActual.y, positionActual.z - paso);
            nuevaPosMapa.x = (int)positionNueva.x;
            nuevaPosMapa.y = (int)positionNueva.z;
            if (maze.isDentroDelMapa(nuevaPosMapa.x, nuevaPosMapa.y) && maze.isPosicionLibre(nuevaPosMapa.x, nuevaPosMapa.y))
            {
                maze.moverJugador(posActualMapa, nuevaPosMapa, 3);
                this.transform.position = positionNueva;
            }
		}

        //float velo = (transform.position - positionActual).magnitude / Time.deltaTime;
        //Debug.LogWarning("velo " + velo);

        
	}
コード例 #6
0
            public double CalcolaDistanza(Punto2D p)
            {
                double distanza = 0; double p_x = 0; double p_y = 0;

                p_x = Math.Pow(X - p.X, 2);
                p_y = Math.Pow(Y - p.Y, 2);

                distanza = Math.Sqrt(p_x + p_y);

                return(distanza);
            }
コード例 #7
0
ファイル: Cedric.cs プロジェクト: dracobk201/CopaTresMagos
    /// <summary>
    /// Este método es usado para calcular la ruta de cedric a la copa.
    /// </summary>
    /// <param name="posicionIncial">Posición actual de Cedric</param>
    /// <param name="copa">Posición de la copa.</param>
    public void CalcularRuta(Punto2D posicionIncial, Punto2D copa)
    {
        moviendo = false;
        DoBFS(posicionIncial.x, posicionIncial.y, copa.x, copa.y);
        casillaActual = 0;
        //SetPosicionCedric(posicionIncial.x, posicionIncial.y);

        Debug.Log("longitud camino " + caminoACopa.Count);

        //for (int i = 0; i < caminoACopa.Count; i++)
        //{
        //    Debug.Log("punto " + caminoACopa[i]);
        //}

        moviendo = true;
    }
コード例 #8
0
ファイル: Cedric.cs プロジェクト: dracobk201/CopaTresMagos
 /// <summary>
 /// Dada una posición x,y se devuelve true si esta posición está contenida
 /// en el camino de cedric a la copa.
 /// </summary>
 /// <param name="nuevaPared">La posición x,y a verificar</param>
 /// <returns>True si hay que recalcular la ruta de cedric hacia la copa.</returns>
 public bool isDebemosRecalcularRuta(Punto2D nuevaPared)
 {
     if (caminoACopa.Count == 0) return true;
     for (int i = casillaActual; i < caminoACopa.Count; i++)
     {
         if (caminoACopa[i].x == nuevaPared.x && caminoACopa[i].y == nuevaPared.y)
             return true;
     }
     return false;
 }
コード例 #9
0
        public override bool Equals(object obj)
        {
            Punto2D p = obj as Punto2D;

            return((this.X == p.X) && (this.Y == p.Y));
        }
コード例 #10
0
    /// <summary>
    /// Obtiene una posicion dentro del mapa de forma aleatoria.
    /// </summary>
    /// <returns>Una posición 2D.</returns>
    Punto2D getPosicionAleatoria()
    {
        Punto2D punto = new Punto2D();

        punto.x = Random.Range(0, n);
        punto.y = Random.Range(0, m);

        return punto;
    }
コード例 #11
0
    /// <summary>
    /// Mueve un jugador de una posición a otra.
    /// </summary>
    /// <param name="posicionAnterior">Posición actual.</param>
    /// <param name="posicionNueva">Posición nueva.</param>
    /// <param name="tipoJugador">Indicar si es Harry o Cedric</param>
    public void moverJugador(Punto2D posicionAnterior, Punto2D posicionNueva, int tipoJugador)
    {
        muros[posicionAnterior.x, posicionAnterior.y] = 0;

        muros[posicionNueva.x, posicionNueva.y] = tipoJugador;
    }