/// <summary>
        /// Moves block down
        /// </summary>
        public void Stepper()
        {
            while (Tetris.Running)
            {
                ThreadCounter = 800;
                Tetris.Step();
                Writer.DrawField(ref _drawLock, Lines, Points, Tetris.Container.GetLength(0) + 5, Tetris.Level, Tetris.Next);

                //Increase Speed when Lines are made
                while (ThreadCounter < 1000 - Lines * 3 && Tetris.Running)
                {
                    Thread.Sleep(Step);
                    ThreadCounter += Step;
                }
            }
        }
        /// <summary>
        /// Core method of the game
        /// </summary>
        public void StartGame()
        {
            //Default Values and Game initialization
            Console.Clear();
            Console.ForegroundColor = ConsoleColor.White;
            Console.BackgroundColor = ConsoleColor.Black;
            Console.CursorVisible   = false;
            Console.WindowWidth     = 55;
            Console.WindowHeight    = 22;
            Lines  = 0;
            Points = 0;

            _drawLock         = false;
            Tetris            = new Tetris(10, 20);
            Tetris.LinesDone += T_LinesDone;

            Writer.PrintStart();
            Console.ReadKey(true);
            Console.Clear();

            Tetris.Start();
            Mover = new Thread(Stepper)
            {
                IsBackground = false
            };
            Mover.Start();

            while (Tetris.Running)
            {
                Thread.Sleep(10);
                if (Console.KeyAvailable)
                {
                    lock (Tetris)
                    {
                        switch (Console.ReadKey(true).Key)
                        {
                        case ConsoleKey.LeftArrow:
                            Tetris.KeyPressing(Tetris.Key.Left);
                            break;

                        case ConsoleKey.RightArrow:
                            Tetris.KeyPressing(Tetris.Key.Right);
                            break;

                        case ConsoleKey.UpArrow:
                            Tetris.KeyPressing(Tetris.Key.Up);
                            break;

                        case ConsoleKey.DownArrow:
                            Tetris.KeyPressing(Tetris.Key.Down);
                            break;

                        case ConsoleKey.Spacebar:
                            Tetris.KeyPressing(Tetris.Key.Space);
                            break;

                        case ConsoleKey.Escape:
                            Tetris.GameOver();
                            break;
                        }
                        Writer.DrawField(ref _drawLock, Lines, Points, Tetris.Container.GetLength(0) + 5, Tetris.Level, Tetris.Next);
                    }
                }
            }
            Thread.Sleep(100);
            Console.Clear();
            Writer.PrintEnd(Lines, Points);
            Console.ResetColor();
        }