static void Loop(object obj) { if (walls.IsHit(snake.Head) || snake.IsHitItself) { gg.WriteTextLine(); time.Dispose(); ConsoleKeyInfo k; do { k = Console.ReadKey(); }while (k.Key != ConsoleKey.Enter); Init(); } else if (FoodFactory.IsEaten(snake.Head)) { foodFactory.CreateFood(); } else { snake.Move(); if (snake.counter >= snake.str.Length) { TextLine won = new TextLine("YOU WIN!!! :)", (x - "YOU WIN!!! :)".Length) / 2, y / 2 - 1); TextLine w = new TextLine(snake.str, (x - snake.str.Length) / 2, y / 2 + 1); time.Dispose(); snake.Dispose(); won.WriteTextLine(); w.WriteTextLine(); } } }
static void Init() { FoodFactory.Food.Clear(); snake?.Dispose(); gg?.Clear(); walls = new Walls(x, y, '#'); foodFactory.CreateFood(); snake = new Snake(x / 2, y / 2, 4); time = new Timer(Loop, null, 0, 95); }