void getNextCommand()
    {
        mazeCoverageStr = exploration.GetCoverage().ToString();
        pointsScoredStr = exploration.GetPoints().ToString();
        mazeCoverage    = Int32.Parse(mazeCoverageStr);
        pointsScored    = Int32.Parse(pointsScoredStr);
        if (checkRunTimeStatus())
        {
            int matrixSize = (currentSensor == 1 || currentSensor == 5)? 3:5;
            sensor.Update_Maze_Data(getMazeData(matrixSize), robotDirection);
            updateUISensorData(getMazeData(matrixSize));
            int[,] sensorReading = sensor.Get_Obstacle_Matrix();
            updateUISensorData(sensorReading);
            String robotCommand = exploration.GetNextCommand(sensorReading, currentSensor, currentAlgorithm);
            moveInDirection(robotCommand);
        }

        else
        {
            CancelInvoke("getNextCommand");
            isSimulationComplete = true;
            endTime = DateTime.Now.ToString(@"hh\:mm\:ss");
            runTime = calculateRunTime();
            backButton.interactable = true;
            Debug.Log("END TIME : " + runTime);
            Debug.Log("Battery Life : " + batteryLife);
            Debug.Log("Points : " + pointsScored);
            sendDateToExpDesign();
            Debug.Log("Maze Coverage : " + mazeCoverage);
        }
    }
Beispiel #2
0
    void Update()
    {
        string direction;

        if (Input.GetKeyDown(KeyCode.W))
        {
            if (maze[currentX - 1, currentY + 0] == 1)
            {
                return;
            }
            int matrixSize = (currentSensor == 1 || currentSensor == 5)? 3:5;
            sensor.Update_Maze_Data(getMazeData(matrixSize), "North");
            int[,] sensorReading = sensor.Get_Obstacle_Matrix();
            updateUISensorData(sensorReading);
            exploration.GenerateDataset(sensorReading, "North", currentSensor);
            robotDirection = "North";
            moveInDirection("North");
        }
        if (Input.GetKeyDown(KeyCode.D))
        {
            if (maze[currentX, currentY + 1] == 1)
            {
                return;
            }
            int matrixSize = (currentSensor == 1 || currentSensor == 5)? 3:5;
            sensor.Update_Maze_Data(getMazeData(matrixSize), "East");
            int[,] sensorReading = sensor.Get_Obstacle_Matrix();
            updateUISensorData(sensorReading);
            exploration.GenerateDataset(sensorReading, "East", currentSensor);
            robotDirection = "East";
            moveInDirection("East");
        }
        if (Input.GetKeyDown(KeyCode.A))
        {
            if (maze[currentX, currentY - 1] == 1)
            {
                return;
            }
            int matrixSize = (currentSensor == 1 || currentSensor == 5)? 3:5;
            sensor.Update_Maze_Data(getMazeData(matrixSize), "West");
            int[,] sensorReading = sensor.Get_Obstacle_Matrix();
            updateUISensorData(sensorReading);
            exploration.GenerateDataset(sensorReading, "West", currentSensor);
            robotDirection = "West";
            moveInDirection("West");
        }

        if (Input.GetKeyDown(KeyCode.S))
        {
            if (maze[currentX + 1, currentY + 0] == 1)
            {
                return;
            }
            int matrixSize = (currentSensor == 1 || currentSensor == 5)? 3:5;
            sensor.Update_Maze_Data(getMazeData(matrixSize), "South");
            int[,] sensorReading = sensor.Get_Obstacle_Matrix();
            updateUISensorData(sensorReading);
            exploration.GenerateDataset(sensorReading, "South", currentSensor);
            robotDirection = "South";
            moveInDirection("South");
        }
    }