Ejemplo n.º 1
0
        private void frmMain_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Left)
            {
                if (Soko.Left())
                {
                    PlayMoveSound();
                    ReDraw(Soko.ManLocation);
                    CheckSuccess();
                }
            }
            if (e.KeyCode == Keys.Right)
            {
                if (Soko.Right())
                {
                    PlayMoveSound();
                    ReDraw(Soko.ManLocation);
                    CheckSuccess();
                }
            }
            if (e.KeyCode == Keys.Up)
            {
                if (Soko.Up())
                {
                    PlayMoveSound();
                    ReDraw(Soko.ManLocation);
                    CheckSuccess();
                }
            }
            if (e.KeyCode == Keys.Down)
            {
                if (Soko.Down())
                {
                    PlayMoveSound();
                    ReDraw(Soko.ManLocation);
                    CheckSuccess();
                }
            }

            if (e.KeyCode == Keys.Space)
            {
                this.toolGoBack_Click(null, null);
            }

            if (e.KeyCode == Keys.Escape)
            {
                this.toolResetMap_Click(null, null);
            }

            if (Soko.GetRoadStackCount() > 0)
            {
                this.toolGoBack.Enabled = true;
            }
        }
Ejemplo n.º 2
0
        public void SetHomeSokoban(MapState[,] _OriginalMap, CSokoMan _soko)
        {
            while (_soko.GetRoadStackCount() > 0)
            {
                Operate oper = _soko.RoadStack.Pop();
                OperateList.Insert(0, oper);
            }

            OriginalMap = _OriginalMap;
            Soko.Map    = _OriginalMap;
        }