RedFlys

Home Work 5.3

Nov 21st, 2019
404
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 5.01 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;
  6.  
  7. namespace Lesson5._3
  8. {
  9.     class Program
  10.     {
  11.         static void Main(string[] args)
  12.         {            
  13.             Render render = new Render();
  14.             Player player = new Player(1,1);
  15.             PlayerController playerController = new PlayerController();
  16.             Map map = new Map();
  17.  
  18.             Console.CursorVisible = false;
  19.  
  20.             while (true)
  21.             {
  22.                 render.RenderMap();
  23.                 render.RenderPlayer(player);
  24.  
  25.                 ConsoleKeyInfo consoleKey = Console.ReadKey();
  26.                 playerController.Controller(consoleKey, map, player);
  27.             }
  28.         }
  29.     }
  30.  
  31.     class Player
  32.     {
  33.         private int _playerPositionX;
  34.         private int _playerPositionY;
  35.         public char VisualPlayer { get; }
  36.  
  37.         public int PlayerPositionX
  38.         {
  39.             get
  40.             {
  41.                 return _playerPositionX;
  42.             }
  43.             set
  44.             {
  45.                 Map map = new Map();
  46.  
  47.                 if (value > 0 && value < map.Level.GetLength(1) - 1 && value != '#')
  48.                     _playerPositionX = value;
  49.             }
  50.         }
  51.  
  52.         public int PlayerPositionY
  53.         {
  54.             get
  55.             {
  56.                 return _playerPositionY;
  57.             }
  58.             set
  59.             {
  60.                 Map map = new Map();
  61.  
  62.                 if (value > 0 && value < map.Level.GetLength(0) - 1 && value != '#')
  63.                     _playerPositionY = value;
  64.             }
  65.         }
  66.  
  67.         public Player (int playerPositionX = 1, int playerPositionY = 1, char visualPlayer = 'X')
  68.         {
  69.             PlayerPositionX = playerPositionX;
  70.             PlayerPositionY = playerPositionY;
  71.             VisualPlayer = visualPlayer;
  72.         }
  73.     }
  74.  
  75.     class PlayerController
  76.     {
  77.         public int Controller(ConsoleKeyInfo consoleKey, Map map, Player player)
  78.         {
  79.             switch (consoleKey.Key)
  80.             {
  81.                 case ConsoleKey.LeftArrow:
  82.                     if (map.Level[ player.PlayerPositionY, player.PlayerPositionX - 1] != '#')
  83.                     {
  84.                         return player.PlayerPositionX--;
  85.                     }
  86.                     break;
  87.                 case ConsoleKey.RightArrow:
  88.                     if (map.Level[player.PlayerPositionY, player.PlayerPositionX + 1] != '#')
  89.                     {
  90.                         return player.PlayerPositionX++;
  91.                     }
  92.                     break;
  93.                 case ConsoleKey.UpArrow:
  94.                     if (map.Level[player.PlayerPositionY - 1, player.PlayerPositionX] != '#')
  95.                     {
  96.                         return player.PlayerPositionY--;
  97.                     }
  98.                     break;
  99.                 case ConsoleKey.DownArrow:
  100.                     if (map.Level[player.PlayerPositionY + 1, player.PlayerPositionX] != '#')
  101.                     {
  102.                         return player.PlayerPositionY++;
  103.                     }
  104.                     break;
  105.                 default:
  106.                     break;
  107.             }
  108.             return player.PlayerPositionX;
  109.         }        
  110.     }
  111.  
  112.     class Map
  113.     {
  114.         private int _levelNumber;
  115.         public char[,] Level { get; }
  116.  
  117.         public Map(int levelNumber = 1)
  118.         {
  119.             char[,] level1 =
  120.             {
  121.                 {'#','#','#','#','#','#','#','#','#','#','#' },
  122.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  123.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  124.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  125.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  126.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  127.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  128.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  129.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  130.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  131.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  132.                 {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  133.                 {'#','#','#','#','#','#','#','#','#','#','#' }
  134.             };
  135.  
  136.             Level = level1;
  137.         }
  138.            
  139.     }
  140.  
  141.     class Render
  142.     {      
  143.         public void RenderMap ()
  144.         {
  145.             Map map = new Map();
  146.             Console.SetCursorPosition(0, 0);
  147.             for (int i = 0; i < map.Level.GetLength(0); i++)
  148.             {
  149.                 for (int j = 0; j < map.Level.GetLength(1); j++)
  150.                 {
  151.                     Console.Write(map.Level[i, j]);
  152.                 }
  153.                 Console.WriteLine();
  154.             }
  155.         }
  156.  
  157.         public void RenderPlayer(Player player)
  158.         {
  159.             Console.SetCursorPosition(player.PlayerPositionX, player.PlayerPositionY);
  160.             Console.Write(player.VisualPlayer);
  161.         }
  162.     }
  163. }
Advertisement
Add Comment
Please, Sign In to add comment