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; } }
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; }