Пример #1
0
 public static void MoveToNextRow(object source, ElapsedEventArgs e)
 {
     if (!Moves.canBeMoved("down", FigureHolder.myFigure, Field.field, Indexes.currX, Indexes.currY))
     {
         if (Indexes.currX == 0)
         {
             Console.WriteLine("GameOver");
             ImportantGameVariables.gameOver = true;
             return;
         }
         else
         {
             FieldSaver.saveField(FigureHolder.myFigure, Field.field, Indexes.currX, Indexes.currY);
             LaneRemover.RemoveLane(Field.field, Indexes.currX, Indexes.currY);
             FigureHolder.myFigure = GenerateFigure.Generate();
             Indexes.currX         = 0;
             Indexes.currY         = 0;
             if (!Validator.IsInRange(FigureHolder.myFigure, Field.field, Indexes.currX, Indexes.currY))
             {
                 ImportantGameVariables.gameOver = true;
                 return;
             }
         }
     }
     else
     {
         Indexes.currX++;
     }
     Printer.Print(FigureHolder.myFigure, Field.field, Indexes.currX, Indexes.currY);
 }
Пример #2
0
        public static void MakeAMove(Figure figure, int[,] field, int currX, int currY)
        {
            if (ImportantGameVariables.gameOver)
            {
                return;
            }
            else
            {
                var key = Console.ReadKey(true);
                switch (key.Key)
                {
                case ConsoleKey.RightArrow:
                    if (Moves.canBeMoved("right", figure, field, currX, currY))
                    {
                        Indexes.currY++;
                    }
                    break;

                case ConsoleKey.LeftArrow:
                    if (Moves.canBeMoved("left", figure, field, currX, currY))
                    {
                        currY--;
                        Indexes.currY--;
                    }
                    break;

                case ConsoleKey.UpArrow:
                    if (CanBeRotated(figure, field, currX, currY))
                    {
                        figure.rotate();
                    }
                    break;

                case ConsoleKey.DownArrow:
                    if (Moves.canBeMoved("down", figure, field, currX, currY))
                    {
                        currX++;
                        Indexes.currX++;
                    }
                    break;

                case ConsoleKey.Spacebar:
                    while (Moves.canBeMoved("down", figure, field, currX, currY))
                    {
                        currX++;
                        Indexes.currX++;
                    }
                    break;
                }
                Printer.Print(figure, field, currX, currY);
            }
        }