new TimeSpan(0, 0, 0, 0, 200) }; // величина задержки между автоматическими падениями фигуры (миллисекунды) static void Main(string[] args) { MenuItem[] menu; BL.InitializeApplication(out menu); UI.Initialize(SCREEN_WIDTH, SCREEN_HEIGHT); #if !DEBUG UI.ShowSplashScreen(SPLASH_SCREEN_DELAY); #endif ConsoleColor[] shapeColors = { ConsoleColor.Black, ConsoleColor.Yellow, ConsoleColor.Green, ConsoleColor.Cyan, ConsoleColor.Blue, ConsoleColor.Magenta, ConsoleColor.DarkYellow, ConsoleColor.Red }; // цвета фигур Game game = BL.InitializeGame(FIELD_WIDTH, FIELD_HEIGHT, NEXT_SHAPE_FIELD_WIDTH, NEXT_SHAPE_FIELD_HEIGHT); GameView view = new GameView(GAME_FIELD_LEFT, GAME_FIELD_TOP, NEXT_SHAPE_FIELD_LEFT, NEXT_SHAPE_FIELD_TOP, SCORE_LEFT, SCORE_TOP, LEVEL_LEFT, LEVEL_TOP, shapeColors); GameMenu menuItemSelected; int currentItem = 0; bool gameOver = false; do { menuItemSelected = UI.GetMenuSelection(menu, ref currentItem); switch (menuItemSelected) { case GameMenu.StartGame: game = BL.InitializeGame(FIELD_WIDTH, FIELD_HEIGHT, NEXT_SHAPE_FIELD_WIDTH, NEXT_SHAPE_FIELD_HEIGHT); gameOver = PlayGame(ref game, view); menu[(int)GameMenu.ResumeGame].Enabled = !gameOver; if (gameOver) { UI.ShowGameOver(view, game); } else { currentItem = (int)GameMenu.ResumeGame; // если игра не завершена, то переключаемся на пункт GameMenu.ResumeGame } break; case GameMenu.ResumeGame: gameOver = PlayGame(ref game, view); menu[(int)GameMenu.ResumeGame].Enabled = !gameOver; if (gameOver) { currentItem = (int)GameMenu.StartGame; // в завершённую игру запрещено возвращаться. переключаемся на пункт GameMenu.StartGame UI.ShowGameOver(view, game); } break; case GameMenu.ShowHelp: UI.ShowHelp(); break; case GameMenu.ShowCredits: UI.ShowCredits(); break; default: break; } } while (menuItemSelected != GameMenu.QuitApplication); }