Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- namespace Home_Work
- {
- class Program
- {
- static void Main(string[] args)
- {
- Console.CursorVisible = false;
- bool isWorking = true;
- string userInput;
- while (isWorking)
- {
- ShowMainMenu();
- userInput = Console.ReadLine();
- Console.Clear();
- switch (userInput)
- {
- case "1":
- PlayInGame();
- break;
- case "2":
- isWorking = false;
- break;
- }
- Console.Clear();
- }
- }
- static void ShowMainMenu()
- {
- Console.WriteLine("Приветствуем вас в игре \"Лабиринт\"!" +
- "\nВаша задача пройти до выхода - X, собрав все монетки." +
- "\nУправление реализовано клавишами WASD или стрелочками." +
- "\nНажмите 1 для игры и 2, если хотите выйти");
- }
- static void PlayInGame()
- {
- int level = 1;
- int maxLevel = 3;
- int gamePoint = 0;
- bool isFinishPosition;
- char[,] map;
- int userPositionX;
- int userPositionY;
- while (level <= maxLevel)
- {
- int levelPoint = 0;
- LoadMap(level, out map);
- GetUserPosition(map, out userPositionX, out userPositionY);
- isFinishPosition = false;
- while (isFinishPosition == false)
- {
- DrawMap(map);
- DrawPlayer(userPositionX, userPositionY);
- Move(map, ref userPositionX, ref userPositionY);
- TryGetPoint(map, userPositionX, userPositionY, ref levelPoint);
- isFinishPosition = IsFinishPosition(map, userPositionX, userPositionY);
- }
- gamePoint += levelPoint;
- level++;
- }
- Console.Clear();
- Console.WriteLine("Поздравляем, вы прошли игру.");
- Console.WriteLine("Вы набрали " + gamePoint + " монет.");
- Console.ReadKey();
- }
- static void LoadMap(int level, out char[,] map)
- {
- switch (level)
- {
- default:
- case 1:
- map = new char[,] {
- { '#','#','#','#','#','#','#','#','#','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ','$',' ',' ',' ','$',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ','@',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','X'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ','$',' ',' ',' ','$',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#','#','#','#','#','#','#','#','#','#'} };
- break;
- case 2:
- map = new char[,] {
- { '#','#','#','#','#','#','#','#','#','#'},
- { '#','#','#','#','$','#','#','#','#','#'},
- { '#','#','#','#',' ','#','#','#','#','#'},
- { '#','#','#','#',' ','#','#','#','#','#'},
- { '#','#','#','#',' ','#','#','#','#','#'},
- { '#','#','#','#',' ','#','#','#','#','#'},
- { '#','#','#','#',' ',' ',' ',' ','$','#'},
- { '#','#','#','#','@',' ','#','#','#','#'},
- { '#','$',' ',' ',' ',' ','#','#',' ','X'},
- { '#','#','#','#','#',' ','#','#',' ','#'},
- { '#','#','#','#','#',' ','#','#',' ','#'},
- { '#','#','#','#','#',' ','#','#',' ','#'},
- { '#','#','#','#','#',' ','#','#',' ','#'},
- { '#','#','#','#','#',' ','#','#',' ','#'},
- { '#',':',')','#','#','$',' ',' ',' ','#'},
- { '#','#','#','#','#','#','#','#','#','#'} };
- break;
- case 3:
- map = new char[,] {
- { '#','#','#','#','#','#','#','#','#','#'},
- { '#','$','#',' ',' ',' ',' ',' ',' ','#'},
- { '#',' ',' ',' ','#',' ','#','#',' ','#'},
- { '#','#','#','#',' ',' ','#','#',' ','#'},
- { '#',' ','$','#',' ','#','$',' ',' ','#'},
- { '#',' ','#','#',' ','#','#','#','#','#'},
- { '#',' ',' ',' ','@',' ',' ',' ','$','#'},
- { '#',' ','#','#','#','#','#','#','#','#'},
- { '#',' ','#',' ',' ',' ','#',' ',' ','X'},
- { '#',' ',' ',' ','#',' ','#',' ','#','#'},
- { '#','#','#','#',' ',' ',' ',' ','#','#'},
- { '#','#','$','#',' ','#','#','#','#','#'},
- { '#',' ',' ','#',' ','#','$',' ',' ','#'},
- { '#',' ','#','#',' ','#','#','#',' ','#'},
- { '#',' ',' ',' ',' ',' ',' ',' ',' ','#'},
- { '#','#','#','#','#','#','#','#','#','#'} };
- break;
- }
- }
- static void GetUserPosition(char[,] map, out int userPositionX, out int userPositionY)
- {
- userPositionX = 0;
- userPositionY = 0;
- for (int i = 0; i < map.GetLength(0); i++)
- {
- for (int j = 0; j < map.GetLength(1); j++)
- {
- if (map[i, j] == '@')
- {
- userPositionX = j;
- userPositionY = i;
- map[i, j] = ' ';
- }
- }
- }
- }
- static bool IsFinishPosition(char[,] map, int userPositionX, int userPositionY)
- {
- return map[userPositionY, userPositionX] == 'X';
- }
- static void DrawMap(char [,] map)
- {
- Console.SetCursorPosition(0, 0);
- for ( int i = 0; i < map.GetLength(0); i++ )
- {
- for (int j = 0; j < map.GetLength(1); j++)
- {
- Console.Write(map[i, j]);
- }
- Console.WriteLine();
- }
- }
- static void DrawPlayer(int userPositionX, int userPositionY)
- {
- Console.SetCursorPosition(userPositionX, userPositionY);
- Console.Write('@');
- }
- static void Move(char[,] map, ref int userPositionX, ref int userPositionY)
- {
- ConsoleKeyInfo key = Console.ReadKey(true);
- switch (key.Key)
- {
- case ConsoleKey.UpArrow:
- case ConsoleKey.W:
- if (map[userPositionY - 1, userPositionX] != '#')
- {
- userPositionY--;
- }
- break;
- case ConsoleKey.DownArrow:
- case ConsoleKey.S:
- if (map[userPositionY + 1, userPositionX] != '#')
- {
- userPositionY++;
- }
- break;
- case ConsoleKey.LeftArrow:
- case ConsoleKey.A:
- if (map[userPositionY, userPositionX - 1] != '#')
- {
- userPositionX--;
- }
- break;
- case ConsoleKey.RightArrow:
- case ConsoleKey.D:
- if (map[userPositionY, userPositionX + 1] != '#')
- {
- userPositionX++;
- }
- break;
- }
- }
- static void TryGetPoint(char[,] map, int userPositionX, int userPositionY, ref int levelPoint)
- {
- if (map[userPositionY, userPositionX] == '$')
- {
- map[userPositionY, userPositionX] = ' ';
- levelPoint++;
- }
- }
- }
- }
Add Comment
Please, Sign In to add comment