コード例 #1
0
 void IИгра.ФигуруСбросить()
 {
     lock (SyncRoot)
     {
         while (ФигуруСменить(Фигура?.СдвинутьВниз()))
         {
             ;
         }
     }
 }
コード例 #2
0
 bool СоздатьНовуюФигуру()
 {
     lock (SyncRoot)
     {
         Фигура = ГенераторФигур.Получить(ИгровоеПоле.НачальнаяПозицияФигуры);
         while (!ИгровоеПоле.Содержит(Фигура))
         {
             Фигура = Фигура.СдвинутьВниз();
         }
         ИгровоеПоле.Добавить(Фигура);
         return(ИгровоеПоле.ПроверитьСостояние());
     }
 }
コード例 #3
0
        bool ОпуститьФигуруВниз()
        {
            lock (SyncRoot)
            {
                var смещённаяФигура = Фигура.СдвинутьВниз();
                var успех           = ИгровоеПоле.Содержит(смещённаяФигура);
                if (!успех)
                {
                    return(false);
                }

                успех = ИгровоеПоле.СменитьФигуру(Фигура, смещённаяФигура);
                if (успех)
                {
                    Фигура = смещённаяФигура;
                }
                //#if DEBUG
                //				else
                //					System.Diagnostics.Debugger.Break();
                //#endif
                return(успех);
            }
        }