Пример #1
0
 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);
 }
Пример #2
0
 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;
     }
 }