Ejemplo n.º 1
0
        public void WFCCoreCheckIfSolvedTruePasses()
        {
            outputGrid = new OutputGrid(10, 10, patternManager.GetNumberOfPatterns());
            solver     = new CoreSolver(outputGrid, patternManager);
            var position = new Vector2Int(0, 0);

            for (int i = 0; i < 10; i++)
            {
                for (int j = 0; j < 10; j++)
                {
                    outputGrid.SetPatternOnPosition(i, j, 1);
                }
            }
            Assert.True(solver.CheckIfSolved());
        }
Ejemplo n.º 2
0
        public void TileMapOutputTestSimplePasses()
        {
            //outputGrid = new OutputGrid(3, 3, patternManager.GetNumberOfPatterns());
            //solver = new CoreSolver(outputGrid, patternManager);
            //var position = new Vector2Int(0, 0);
            //for (int i = 0; i < 3; i++)
            //{
            //    for (int j = 0; j < 3; j++)
            //    {
            //        outputGrid.SetPatternOnPosition(i, j, 1);
            //    }
            //}

            outputGrid = new OutputGrid(5, 5, patternManager.GetNumberOfPatterns());
            solver     = new CoreSolver(outputGrid, patternManager);
            var position = new Vector2Int(0, 0);

            solver.CollapseCell(position);
            solver.Propagate();

            var newPosition1 = solver.GetLowestEntropyCell();

            solver.CollapseCell(newPosition1);
            solver.Propagate();

            while (solver.CheckForConflics() == false && outputGrid.CheckIfGridIsSolved() == false)
            {
                newPosition1 = solver.GetLowestEntropyCell();
                solver.CollapseCell(newPosition1);
                solver.Propagate();
            }
            if (solver.CheckForConflics())
            {
                Debug.Log("Conflict");
                Assert.True(true);
            }
            else
            {
                outputGrid.PrintResultsToConsol();
                int[][] wfcOutput = outputGrid.GetSolvedOutputGrid();
                IOutputCreator <Tilemap> tileOutput = new TileMapOutput(valueManager, outputtilemap);
                tileOutput.CreateOutput(patternManager, wfcOutput, outputGrid.width, outputGrid.height);
                Assert.True(CheckEveryNeighbour(outputGrid));
            }
        }