public void Undo(Graphics g) { if (stk_CacNuocDaDi.Count != 0) { //lấy quân cờ ra khỏi stack OCo oco = stk_CacNuocDaDi.Pop(); //thêm quân cờ đã lấy vào redo stk_CacNuocUndo.Push(new OCo(oco.Dong, oco.Cot, oco.ViTri, oco.SoHuu)); _MangOCo[oco.Dong, oco.Cot].SoHuu = 0; _BanCo.XoaQuanCo(g, oco.ViTri, sbXoa); //quay lai luot choi cua ng choi trc if (_LuotDi == 1) { _LuotDi = 2; } else { _LuotDi = 1; } } // VeBanCo(g); // VeLaiQuanCo(g); }
public void Undo(Graphics g) { if (stk_CacNuocDaDi.Count != 0) { OCo oco = stk_CacNuocDaDi.Pop(); stk_Redo.Push(new OCo(oco.Dong, oco.Cot, oco.ViTri, oco.SoHuu)); _MangOCo[oco.Dong, oco.Cot].SoHuu = 0; _BanCo.XoaQuanCo(g, oco.ViTri, sbSnow); if (_LuotDi == 1) { _LuotDi = 2; } else { _LuotDi = 1; } _Undo++; } if (_Undo == 3) { stk_CacNuocDaDi = new Stack <OCo>(); _Undo = 0; } }