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); } } } }
private void SetupStates(int gridSize, int agentXPos = -1, int agentYPos = -1) { _initialState = new GridState(gridSize); _currentState = new GridState(_initialState); }