Esempio n. 1
0
        //Действия при нажатии Enter
        public static void PlayerEnterAction(Field field, ref bool isEnter, string[] allWords)
        {
            if (!isEnter)
            {
                Printer.DrawText(new string(' ', Console.WindowWidth - (field.XSize * 4 + 2)), Player.WordsList.Count);

                if (field.CellColor[Player.X, Player.Y] == Settings.FieldColor)
                {
                    Printer.DrawFieldItem(Player.X, Player.Y, ColorsSet.ColorsList[Settings.PickedWordColor, 0],
                                          ColorsSet.ColorsList[Settings.PickedWordColor, 1], field);
                    Player.WordNow += field.CellLetter[Player.X, Player.Y];
                    Printer.DrawText(Player.WordNow, Player.WordsList.Count);
                    Player.CoordStory.Add(new int[] { Player.X, Player.Y });
                }
                else
                {
                    isEnter = !isEnter;
                }
            }
            else
            {
                if (field.WordsList.Contains(Player.WordNow) &&
                    field.WordPos[field.WordsList.IndexOf(Player.WordNow)][Player.WordNow.Length - 1].X == Player.X)
                {
                    int color;
                    if (Settings.IsRandomGuessedWordColor)
                    {
                        color = ColorsSet.GetRandomColorIndex();
                    }
                    else
                    {
                        color = Settings.GuessedWordColor;
                    }

                    LogicMethods.ActionsIfWordSelected(field, color);

                    Printer.DrawScore(Player.Score);
                }
                else
                {
                    if (field.WordsList.Contains(Player.WordNow))
                    {
                        Printer.DrawText("Попробуйте записать это слово наоборот или найти ещё одно такое же на поле", Player.WordsList.Count);
                    }
                    else
                    if ((allWords as IList <string>).Contains(Player.WordNow))
                    {
                        Printer.DrawText("Это не одно из слов, которое вам нужно отгодать на данном поле ):", Player.WordsList.Count);
                    }
                    else
                    {
                        Printer.DrawText("Такого слова нет в словаре", Player.WordsList.Count);
                    }
                }

                BrakeFilling(field);
            }

            isEnter = !isEnter;
        }
Esempio n. 2
0
        private static void CheckWin(Field field, out bool isBreak)
        {
            isBreak = false;

            if (Player.WordsList.Count == field.WordsList.Count)
            {
                LogicMethods.ActionsIfWin(field);

                Printer.DrawPopupWindow("Вы отгодали все слова!");
                Console.ReadKey(true);

                isBreak = true;
            }
        }