예제 #1
0
    public Field(int fieldWidth, int row, int column, bool walkable)
    {
        this.row        = row;
        this.column     = column;
        this.walkable   = walkable;
        this.fieldWidth = fieldWidth;
        this.gCost      = 0;
        this.hCost      = 0;
        numOfAlg        = 0;
        if (SetUpOptions.getInstanc().IsAStar)
        {
            ++numOfAlg;
        }
        if (SetUpOptions.getInstanc().IsBFS)
        {
            ++numOfAlg;
        }
        //Debug.Log(" BROJ ALGORITAM JE :" + numOfAlg);

        surfaceOfField = new GameObject[numOfAlg];
        //Utils.CreateWorldText("["+row+","+column+"]", null, getWorldPosition(row, column), 20, Color.white, TextAnchor.MiddleCenter);

        float partWidth = fieldWidth / numOfAlg;
        float leftCoord = -fieldWidth / 2 + partWidth / 2;

        for (int i = 0; i < numOfAlg; i++)
        {
            surfaceOfField[i] = Utils.CreateWorldSprite("Field", Resources.Load("Sprites/Square", typeof(Sprite)) as Sprite,
                                                        getWorldPosition(row, column) + new Vector3(leftCoord, 0, 0), new Vector3(partWidth, fieldWidth), 30, Color.white);
            leftCoord += partWidth;
        }

        //surfaceOfField[0] = Utils.CreateWorldSprite("Field", Resources.Load("Sprites/Square",typeof(Sprite)) as Sprite, getWorldPosition(row, column)/* + new Vector3(3.5f, 0, 0)*/, new Vector3(fieldWidth, fieldWidth),30, Color.white);
        //field[1] = Utils.CreateWorldSprite("Field", Resources.Load("Sprites/Square",typeof(Sprite)) as Sprite, getWorldPosition(row, column) - new Vector3(3.5f,0,0), new Vector3(7,14),30, Color.white);
    }
예제 #2
0
    private void onFindPath(float time, int number)
    {
        Result r = new Result(grid.Column, SetUpOptions.getInstanc().NumOfObs, alg.AlgName, number, time);

        resultManager.add(r);
        Debug.Log("RESULT: " + r);
    }
 public static SetUpOptions getInstanc()
 {
     if (instanc == null)
     {
         instanc = new SetUpOptions();
     }
     return(instanc);
 }
    public void Start()
    {
        SetUpOptions options = SetUpOptions.getInstanc();

        gridSize.text = options.GridSize.ToString();
        startX.text   = options.StartX.ToString();
        startY.text   = options.StartY.ToString();
        endX.text     = options.EndX.ToString();
        endY.text     = options.EndY.ToString();
        numOfObs.text = options.NumOfObs.ToString();

        isAStar.isOn = options.IsAStar;
        isBFS.isOn   = options.IsBFS;
    }
예제 #5
0
    private void Start()
    {
        Debug.Log("Desio se Start() ->Testing");
        setUpOptions = SetUpOptions.getInstanc();

        int fieldSize = 14;

        grid = new Grid(setUpOptions.GridSize, setUpOptions.GridSize, fieldSize);

        GameObject.Find("Main Camera").transform.position = new Vector3(grid.Row * fieldSize / 2, -(grid.Row * fieldSize / 2), -10);
        GameObject.Find("Main Camera").GetComponent <Camera>().orthographicSize = (int)((grid.Row * fieldSize / 2) + fieldSize);

        grid.setStartPosition(new Vector2(setUpOptions.StartX, setUpOptions.StartY));
        grid.setEndPosition(new Vector2(setUpOptions.EndX, setUpOptions.EndY));

        StopAllCoroutines();
        currentCorutines = new List <IEnumerator>();
        IEnumerator current = addObstacle(grid, SetUpOptions.getInstanc().NumOfObs);

        currentCorutines.Add(current);
        StartCoroutine(current);

        runners = new List <Runner>();

        // Runner BFSRunner;
        // Runner AStarRunner;
        if (setUpOptions.IsBFS)
        {
            var BFSRunner = Instantiate(runnerPrefab);
            BFSRunner.transform.position = new Vector3(grid.getStartField().getWorldPosition().x, grid.getStartField().getWorldPosition().y);
            BFSRunner.Initialize(grid, new BFS(), ResultManager.getInstance());
            runners.Add(BFSRunner);
        }

        if (setUpOptions.IsAStar)
        {
            var AStarRunner = Instantiate(runnerPrefab);
            AStarRunner.transform.position = new Vector3(grid.getStartField().getWorldPosition().x, grid.getStartField().getWorldPosition().y);
            AStarRunner.GetComponent <SpriteRenderer>().color = Color.black;
            AStarRunner.Initialize(grid, new AStar(), ResultManager.getInstance());
            runners.Add(AStarRunner);
        }
    }
예제 #6
0
 public void goToNextLevel()
 {
     closePopUp();
     ++SetUpOptions.getInstanc().NumOfObs;
     SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex);
 }
예제 #7
0
 public void Awake()
 {
     setUpOptions = SetUpOptions.getInstanc();
 }