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); }
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); } }