Пример #1
0
        private static void IfEscapePressed(Field field, ConsoleKeyInfo key, ref bool isEnter, out bool isBreak)
        {
            isBreak = false;

            if (key.Key == ConsoleKey.Escape)
            {
                if (isEnter)
                {
                    AdditionalPrinterMetods.BrakeFilling(field);
                    Printer.DrawText(new string(' ', Console.WindowWidth - (field.XSize * 4 + 2)), Player.WordsList.Count);

                    isEnter = false;
                }
                else
                {
                    Printer.DrawPopupWindow("Вы уверены, что хотите выйти? (прогресс будет сохранён)");

                    key = Console.ReadKey(true);
                    if (key.Key == ConsoleKey.Enter || key.Key == ConsoleKey.Spacebar)
                    {
                        DataWorker.SaveField(field, DataWorker.FieldSavePath);
                        DataWorker.SavePlayer(DataWorker.PlayerSavePath);
                        isBreak = true;
                    }
                    else
                    {
                        Console.Clear();
                        Printer.DrawField(field);
                        Printer.DrawFieldItem(Player.X, Player.Y, ConsoleColor.DarkGray, ConsoleColor.White, field);
                        for (int i = 0; i < Player.WordsList.Count; i++)
                        {
                            Printer.DrawText(Player.WordsList[i], i);
                        }
                    }
                }
            }
        }
Пример #2
0
        private static void DoGameActions(Field field)
        {
            string[] allWords = DataWorker.WordsSet.AllWords;

            Printer.DrawField(field);
            Printer.DrawFieldItem(0, 0, ColorsSet.ColorsList[Settings.UnderCursorColor, 0],
                                  ColorsSet.ColorsList[Settings.UnderCursorColor, 1], field);
            Printer.DrawScore(Player.Score);
            for (int i = 0; i < Player.WordsList.Count; i++)
            {
                Printer.DrawText(Player.WordsList[i], i);
            }

            ConsoleKeyInfo key;
            bool           isEnter       = false;
            bool           isCheatActive = false;

            do
            {
                Player.PreX = Player.X;
                Player.PreY = Player.Y;

                key = Console.ReadKey(true);

                MoveCursorInField(field, key);

                if (Player.PreX != Player.X || Player.PreY != Player.Y)
                {
                    AdditionalPrinterMetods.PlayerMoveAction(field, isEnter);
                }

                if (key.Key == ConsoleKey.Enter || key.Key == ConsoleKey.Spacebar)
                {
                    AdditionalPrinterMetods.PlayerEnterAction(field, ref isEnter, allWords);
                }

                bool isBreak;
                IfEscapePressed(field, key, ref isEnter, out isBreak);
                if (isBreak)
                {
                    break;
                }

                CheckWin(field, out isBreak);
                if (isBreak)
                {
                    break;
                }

                //Чит
                if (key.Key == ConsoleKey.C)
                {
                    isCheatActive = true;
                    ActivateCheat(field);
                }
                else if (isCheatActive)
                {
                    isCheatActive = false;
                    DeactivateCheat(field);
                }
            } while (true);
        }