static void Main(string[] args) { int score = 0; Walls walls = new Walls(119, 29); walls.Draw(); Point snakeTail = new Point(5, 5, 's'); Snake snake = new Snake(snakeTail, 10, Direction.RIGHT); snake.Draw(); FoodGenerator foodGenerator = new FoodGenerator(119, 29, '$'); Point food = foodGenerator.GenerateFood(); food.Draw(); while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { break; } if (snake.Eat(food)) { food = foodGenerator.GenerateFood(); food.Draw(); Random rnd = new Random(); int num = rnd.Next(1, 3); if (num == 1) { score = score + 2; } else { score--; } } else { snake.Move(); } if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKeys(key.Key); } Thread.Sleep(300); } string str_score = Convert.ToString(score); WriteGameOver(str_score); Console.ReadLine(); }
}// Main() static void Loop(object obj) { if (walls.IsHit(snake.GetHead()) || snake.IsHit(snake.GetHead())) { time.Change(0, Timeout.Infinite); } else if (snake.Eat(foodFactory.food)) { foodFactory.CreateFood(); } else { snake.Move(); } }// Loop()
static void Loop(object obj)//Функция движения { if (walls.IsHit(snake.Head()) || snake.IsHit(snake.Head())) { time.Change(0, Timeout.Infinite); } else if (snake.Eat(food.food)) { food.CreateFood(); } else { snake.Move(); } }
static void Main(string[] args) { int score = 0; Walls walls = new Walls(80, 25); walls.Draw(); Point snakeTail = new Point(15, 15, 's'); Snake snake = new Snake(snakeTail, 5, Direction.RIGHT); snake.Draw(); FoodGenerator foodGenerator = new FoodGenerator(80, 25, '$'); Point food = foodGenerator.GenerateFood(); food.Draw(); while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { break; } if (snake.Eat(food)) { food = foodGenerator.GenerateFood(); food.Draw(); score++; } else { snake.Move(); } if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKays(key.Key); } Thread.Sleep(300); } string str_score = Convert.ToString(score); WriteGameOver(str_score); Console.ReadLine(); }
static void Main(string[] args) { string name; while (true) { Console.Write("Type your name: "); name = Console.ReadLine(); if (name.Length < 3) { Console.Clear(); Console.WriteLine("Name will be longer than 3 symbols."); continue; } else { Console.Clear(); break; } } bool soundSwitch; while (true) { Console.Write("Do you want to turn on sounds? (Y/N): "); ConsoleKeyInfo answerkey = Console.ReadKey(); if (answerkey.Key == ConsoleKey.Y) { Console.Clear(); soundSwitch = true; break; } else if (answerkey.Key == ConsoleKey.N) { Console.Clear(); soundSwitch = false; break; } else { Console.WriteLine("\nPress \'Y\' or \'N\' key."); continue; } } Score score = new Score(9); Level level = new Level(1); Params settings = new Params(); Sounds sound = new Sounds(settings.GetResourceFolder()); Sounds pointsound = new Sounds(settings.GetResourceFolder()); if (soundSwitch == true) { sound.Play(level.level); } Console.SetWindowSize(80, 26); Walls walls = new Walls(80, 25); walls.Draw(); Point p = new Point(4, 5, '*'); Snake snake = new Snake(p, 4, Direction.RIGHT); Console.ForegroundColor = ConsoleColor.Red; snake.Draw(); Console.ForegroundColor = ConsoleColor.White; FoodCreator foodCreator = new FoodCreator(80, 25, '$'); Point food = foodCreator.CreateFood(); Console.ForegroundColor = ConsoleColor.Yellow; food.Draw(); Console.ForegroundColor = ConsoleColor.White; while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { break; } if (snake.Eat(food, score, level, sound, soundSwitch)) { if (soundSwitch == true) { pointsound.Play("point"); } food = foodCreator.CreateFood(); Console.ForegroundColor = ConsoleColor.Yellow; food.Draw(); Console.ForegroundColor = ConsoleColor.White; } else { Console.ForegroundColor = ConsoleColor.Red; snake.Move(); Console.ForegroundColor = ConsoleColor.Yellow; } if (level.level == 1) { Thread.Sleep(100); } else if (level.level == 2) { Thread.Sleep(75); } else if (level.level == 3) { Thread.Sleep(50); } else { Thread.Sleep(40); } if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKey(key.Key); } } Messages gameover = new Messages(); gameover.WriteGameOver(name, score.score, level.level); if (soundSwitch == true) { sound.Stop(level.level); pointsound.Play("lose"); } ConsoleKeyInfo _key = Console.ReadKey(); if (_key.Key == ConsoleKey.Enter) { Application.Restart(); } }
static void Main(string[] args) { //Console.SetBufferSize(80, 25); Walls walls = new Walls(80, 25); walls.Draw(); //Рамочка HorizontalLines upline = new HorizontalLines(0, 78, 0, '+'); HorizontalLines downline = new HorizontalLines(0, 78, 24, '+'); VerticalLines leftline = new VerticalLines(0, 24, 0, '+'); VerticalLines rightline = new VerticalLines(0, 24, 78, '+'); upline.Draw(); downline.Draw(); leftline.Draw(); rightline.Draw(); // отрисовка точек Point p = new Point(4, 5, '*'); Snake snake = new Snake(p, 4, Direction.RIGHT); snake.Draw(); FoodCreator foodCreator = new FoodCreator(80, 25, ''); Point food = foodCreator.CreateFood(); food.Draw(); while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { break; } if (snake.Eat(food)) { food = foodCreator.CreateFood(); food.Draw(); } else { snake.Move(); } Thread.Sleep(100); if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKey(key.Key); } } while (true) { if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKey(key.Key); } Thread.Sleep(100); snake.Move(); } }
static void Main(string[] args) { Console.SetWindowSize(80, 24); Console.SetBufferSize(80, 24); Menu(); // отрисовка рамки Walls walls = new Walls(80, 24); walls.Draw(); Point p = new Point(4, 4, '*'); Snake snake = new Snake(p, 4, Direction.RIGHT); snake.Drow(); FoodCreator foodCreator = new FoodCreator(78, 22, '$'); Point food = foodCreator.CreateFood(); food.Draw(); while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { Console.ForegroundColor = ConsoleColor.Red; WriteAt("G A M E O V E R", 34, 12); Console.ResetColor(); Console.ReadLine(); break; } if (snake.Eat(food)) { food = foodCreator.CreateFood(); food.Draw(); } else { snake.Move(); } Thread.Sleep(70); if (Console.KeyAvailable) { ConsoleKeyInfo key = Console.ReadKey(); snake.HandleKey(key.Key); } Thread.Sleep(70); } Console.ReadKey(); }
static void Loop(object obj) { if (walls.IsHit(snake.GetHead()) || snake.IsHit(snake.GetHead())) { time.Change(0, Timeout.Infinite); GameOver(); GameOverMenu(); } else if (snake.Eat(foodFactory.Food)) { foodFactory.CreateFood(diflevel); if (diflevel == 0) // система начисления очков для легкого уровня { scores++; if (scores % 3 == 0) { if (scores <= 6) { time.Change(0, snakeSpeed -= 40); } // увеличиваем скорость змеи, если съели до 6 яблок else if (snakeSpeed >= 0) { time.Change(0, snakeSpeed -= 10); } // немного увеличиваем после 6 яблок level++; } } else if (diflevel == 1) // система начисления очков для среднего уровня { scores += 2; if (scores % 4 == 0) { if (scores <= 6) { time.Change(0, snakeSpeed -= 30); } // увеличиваем скорость змеи, если съели до 6 яблок else if (snakeSpeed >= 0) { time.Change(0, snakeSpeed -= 10); } // немного увеличиваем после 6 яблок level++; } } else if (diflevel == 2) // система начисления очков для тяжелого уровня { scores += 4; if (scores % 8 == 0) { if (scores <= 12) { time.Change(0, snakeSpeed -= 20); } // увеличиваем скорость змеи, если съели до 12 яблок else if (snakeSpeed >= 0) { time.Change(0, snakeSpeed -= 10); } // еще ускоряемся после 12 яблок level++; } } } else { snake.Move(); SetCursorPosition(0, 28); GameInfo(); // вывод игрового табло с инфой } }
private static void Start() { Walls walls = new Walls(Width, Height); walls.Draw(); Point p = new Point(4, 5, '@'); Snake snake = new Snake(p, 4, Direction.RIGHT); snake.Draw(); FoodCreator foodCreator = new FoodCreator(Width, Height, '$'); Point food = foodCreator.CreateFood(snake); food.Draw(); int[,] s = new int[Width, Height]; while (true) { if (walls.IsHit(snake) || snake.IsHitTail()) { break; } if (snake.Eat(food)) { do { food = foodCreator.CreateFood(snake); } while (IsColision(snake, food)); food.Draw(); } else { for (int i = 0; i < Width; i++) { for (int j = 0; j < Height; j++) { s[i, j] = (int)Figures.EmptySpace; } } foreach (var item in walls.Points) { s[item.x, item.y] = (int)Figures.Barrier; } s[food.x, food.y] = (int)Figures.Destination; foreach (var item in snake.Points) { var first = snake.Points.Last(); if (item == first) { s[item.x, item.y] = (int)Figures.StartPosition; } else { s[item.x, item.y] = (int)Figures.Barrier; } } var li = new LeeAlgorithm(s); System.Drawing.Point head = new System.Drawing.Point(0, 0); System.Drawing.Point nextstep; if (!li.PathFound) { food = foodCreator.CreateFood(snake); } else { foreach (var item in li.Path) { if (item == li.Path.Last()) { s[item.Item1, item.Item2] = (int)Figures.StartPosition; head = new System.Drawing.Point(item.Item1, item.Item2); } else if (item == li.Path.First()) { s[item.Item1, item.Item2] = (int)Figures.Destination; } else { s[item.Item1, item.Item2] = (int)Figures.Path; } } nextstep = new System.Drawing.Point(li.Path[li.Path.Count - 2].Item1, li.Path[li.Path.Count - 2].Item2); var dir = GetDirection(head, nextstep); switch (dir) { case Direction.LEFT: snake.HandleKey(ConsoleKey.LeftArrow); break; case Direction.RIGHT: snake.HandleKey(ConsoleKey.RightArrow); break; case Direction.UP: snake.HandleKey(ConsoleKey.UpArrow); break; case Direction.DOWN: snake.HandleKey(ConsoleKey.DownArrow); break; } } int speed = 1; snake.Move(); Thread.Sleep(speed); } } WriteGameOver(); Console.ReadLine(); }