예제 #1
0
        private void UpdateCellControls(GridState state, GridState initState = null)
        {
            for (int i = 0; i < _gridSize; i++)
            {
                for (int j = 0; j < _gridSize; j++)
                {
                    PictureBox pbDirt = (PictureBox)Controls.Find($"pbDirt_{i}_{j}", true)[0];
                    pbDirt.Visible = (state.Dirty[i, j]);

                    PictureBox pbAgent = (PictureBox)Controls.Find($"pbAgent_{i}_{j}", true)[0];
                    pbAgent.Visible = (state.AgentXPos == i && state.AgentYPos == j);

                    if (initState != null)
                    {
                        PictureBox pbInitDirt = (PictureBox)Controls.Find($"pbDirt_init_{i}_{j}", true)[0];
                        pbInitDirt.Visible = (initState.Dirty[i, j]);

                        PictureBox pbInitAgent = (PictureBox)Controls.Find($"pbAgent_init_{i}_{j}", true)[0];
                        pbInitAgent.Visible = (initState.AgentXPos == i && state.AgentYPos == j);
                    }
                }
            }
        }
예제 #2
0
 private void SetupStates(int gridSize, int agentXPos = -1, int agentYPos = -1)
 {
     _initialState = new GridState(gridSize);
     _currentState = new GridState(_initialState);
 }