Exemple #1
0
        private void GameEnviroment_MouseUp(object sender, System.Windows.Input.MouseButtonEventArgs e)
        {
            if (SelectedTool != null)
            {
                var block = (sender as EnvBlock);
                block.Type = (EnvType)SelectedTool;

                if (block.Type == EnvType.Packman)
                {
                    int newPackmanRow = Grid.GetRow(block);
                    int newPackmanCol = Grid.GetColumn(block);

                    if (Packman != null)
                    {
                        if (Packman.Row != newPackmanRow || Packman.Column != newPackmanCol)
                        {
                            env[Packman.Row, Packman.Column].Type = EnvType.Empty;
                            Packman = new Packman(env, newPackmanRow, newPackmanCol);
                        }
                    }
                    else
                    {
                        Packman = new Packman(env, newPackmanRow, newPackmanCol);
                    }
                }
            }
        }
Exemple #2
0
        public void Show(State state)
        {
            if (env.GetLength(0) != state.RowSize
                ||
                env.GetLength(1) != state.ColumnSize)
            {
                this.RowCount    = state.RowSize;
                this.ColumnCount = state.ColumnSize;
            }

            int numberOfPackman = 0;
            int packmanRow      = -1;
            int packmanCol      = -1;


            for (int i = 0; i < state.RowSize; i++)
            {
                for (int j = 0; j < state.ColumnSize; j++)
                {
                    env[i, j].Type = (EnvType)state[i, j];
                    if (env[i, j].Type == EnvType.Packman)
                    {
                        numberOfPackman++;
                        packmanRow = i;
                        packmanCol = j;
                    }
                }
            }

            if (numberOfPackman != 1)
            {
                throw new Exception("Number of packman must be exactly one.");
            }
            else
            {
                Packman = new Packman(env, packmanRow, packmanCol);
            }
        }