void IИгра.ФигуруСбросить() { lock (SyncRoot) { while (ФигуруСменить(Фигура?.СдвинутьВниз())) { ; } } }
bool СоздатьНовуюФигуру() { lock (SyncRoot) { Фигура = ГенераторФигур.Получить(ИгровоеПоле.НачальнаяПозицияФигуры); while (!ИгровоеПоле.Содержит(Фигура)) { Фигура = Фигура.СдвинутьВниз(); } ИгровоеПоле.Добавить(Фигура); return(ИгровоеПоле.ПроверитьСостояние()); } }
bool ОпуститьФигуруВниз() { lock (SyncRoot) { var смещённаяФигура = Фигура.СдвинутьВниз(); var успех = ИгровоеПоле.Содержит(смещённаяФигура); if (!успех) { return(false); } успех = ИгровоеПоле.СменитьФигуру(Фигура, смещённаяФигура); if (успех) { Фигура = смещённаяФигура; } //#if DEBUG // else // System.Diagnostics.Debugger.Break(); //#endif return(успех); } }