Advertisement
Ash_HeLiX

Home4

Oct 17th, 2019
271
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.93 KB | None | 0 0
  1. using System;
  2.  
  3. //4 Brave new world. 9 баллов.
  4. //Сделать игровую карту с помощью двумерного массива.Сделать функцию рисования карты.
  5. //Помимо этого, дать пользователю возможность перемещаться по карте и взаимодействовать с
  6. //элементами (например пользователь не может пройти сквозь стену)
  7. //Все элементы являются обычными символами
  8.  
  9. namespace Home4
  10. {
  11. class Program
  12. {
  13. static void Main(string[] args)
  14. {
  15. int userX = 3;
  16. int userY = 3;
  17.  
  18. char[,] map = {
  19. {'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#' },
  20. {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  21. {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  22. {'#',' ',' ',' ','X',' ',' ','#',' ',' ',' ','X',' ',' ',' ','#' },
  23. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  24. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  25. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  26. {'#',' ','#','#','#','#','#','#','#','#','#','#','#','X',' ','#' },
  27. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  28. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  29. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  30. {'#',' ','X',' ',' ','X',' ','#',' ',' ',' ',' ','X',' ',' ','#' },
  31. {'#',' ',' ',' ',' ',' ',' ','#',' ',' ',' ',' ',' ',' ',' ','#' },
  32. {'#',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ','#' },
  33. {'#','#','#','#','#','#','#','#','#','#','#','#','#','#','#','#' }
  34. };
  35.  
  36. while (true)
  37. {
  38. ShowMap(map, userX, userY);
  39.  
  40. MoveUser(map, ref userX, ref userY);
  41.  
  42. PickUpGold(map, userX, userY);
  43. }
  44. }
  45. static void ShowMap(char[,] map, int x, int y)
  46. {
  47. Console.SetCursorPosition(0, 0);
  48.  
  49. for (int i = 0; i < map.GetLength(0); i++)
  50. {
  51. for (int j = 0; j < map.GetLength(1); j++)
  52. {
  53. Console.Write(map[i, j]);
  54. }
  55. Console.WriteLine();
  56. }
  57. Console.SetCursorPosition(y, x);
  58. Console.Write('@');
  59. }
  60.  
  61. static void MoveUser(char[,] map, ref int userX, ref int userY)
  62. {
  63. ConsoleKeyInfo userInput = Console.ReadKey(true);
  64.  
  65. switch (userInput.Key)
  66. {
  67. case ConsoleKey.UpArrow:
  68. if (map[userX - 1, userY] != '#')
  69. {
  70. userX--;
  71. }
  72. break;
  73. case ConsoleKey.DownArrow:
  74. if (map[userX + 1, userY] != '#')
  75. {
  76. userX++;
  77. }
  78. break;
  79. case ConsoleKey.LeftArrow:
  80. if (map[userX, userY - 1] != '#')
  81. {
  82. userY--;
  83. }
  84. break;
  85. case ConsoleKey.RightArrow:
  86. if (map[userX, userY + 1] != '#')
  87. {
  88. userY++;
  89. }
  90. break;
  91. }
  92. }
  93. static void PickUpGold(char[,] map, int userX, int userY)
  94. {
  95. if (map[userX, userY] == 'X')
  96. {
  97. map[userX, userY] = 'o';
  98. }
  99. }
  100. }
  101. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement