Advertisement
NikaBang

Brave new world

Oct 20th, 2024 (edited)
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.97 KB | None | 0 0
  1. using System;
  2.  
  3. namespace FunctionsHW
  4. {
  5.     internal class Program
  6.     {
  7.         static void Main(string[] args)
  8.         {
  9.             Console.CursorVisible = false;
  10.  
  11.             char[,] map = {
  12.                 { '╔', '═', '╦', '═', '═', '═', '═', '═', '═', '╗' },
  13.                 { '║', ' ', '║', '*', '*', '*', '*', '*', '*', '║' },
  14.                 { '║', '*', '║', '*', '║', '*', '╔', '═', '═', '╣' },
  15.                 { '║', '*', '*', '*', '║', '*', '║', '*', '*', '║' },
  16.                 { '║', '*', '║', '*', '║', '*', '║', '*', '╔', '╣' },
  17.                 { '║', '*', '║', '*', '║', '*', '║', '*', '╚', '╣' },
  18.                 { '║', '*', '║', '*', '║', '*', '║', '*', '*', '║' },
  19.                 { '║', '*', '║', '*', '║', '*', '*', '*', '═', '╣' },
  20.                 { '║', '*', '║', '*', '║', '*', '║', '*', '*', '║' },
  21.                 { '╚', '═', '╩', '═', '╩', '═', '╩', '═', '═', '╝' }
  22.             };
  23.  
  24.             char player = '@';
  25.             char star = '*';
  26.             char road = ' ';
  27.  
  28.             int playerPosotionX = 1;
  29.             int playerPositionY = 1;
  30.             int score = 0;
  31.  
  32.             ConsoleKeyInfo pressedKey;
  33.  
  34.             while (true)
  35.             {
  36.                 Console.Clear();
  37.  
  38.                 Console.ForegroundColor = ConsoleColor.Blue;
  39.                 DrawMap(map);
  40.  
  41.                 Console.ForegroundColor = ConsoleColor.Green;
  42.                 Console.SetCursorPosition(playerPosotionX, playerPositionY);
  43.                 Console.Write(player);
  44.  
  45.                 Console.ForegroundColor = ConsoleColor.Red;
  46.                 Console.SetCursorPosition(0, 11);
  47.                 Console.Write("Очки: " + score);
  48.  
  49.                 pressedKey = Console.ReadKey();
  50.  
  51.                 HandleInput(pressedKey, star, road, map, ref playerPosotionX, ref playerPositionY, ref score);
  52.             }
  53.         }
  54.  
  55.         static void DrawMap(char[,] map)
  56.         {
  57.             for (int i = 0; i < map.GetLength(0); i++)
  58.             {
  59.                 for (int j = 0; j < map.GetLength(1); j++)
  60.                 {
  61.                     Console.Write(map[i, j]);
  62.                 }
  63.  
  64.                 Console.WriteLine();
  65.             }
  66.         }
  67.  
  68.         static void HandleInput(ConsoleKeyInfo pressedKey, char star, char road, char[,] map, ref int playerX, ref int playerY, ref int score)
  69.         {
  70.             int[] direction = GetDirection(pressedKey);
  71.             int nextPlayerPositionX = playerX + direction[0];
  72.             int nextPlayerPositionY = playerY + direction[1];
  73.  
  74.             if (map[nextPlayerPositionY, nextPlayerPositionX] == star)
  75.             {
  76.                 score += 1;
  77.                 map[nextPlayerPositionY, nextPlayerPositionX] = road;
  78.             }
  79.  
  80.             if (map[nextPlayerPositionY, nextPlayerPositionX] == road)
  81.             {
  82.                 playerX = nextPlayerPositionX;
  83.                 playerY = nextPlayerPositionY;
  84.             }
  85.         }
  86.  
  87.         static int[] GetDirection(ConsoleKeyInfo pressedKey)
  88.         {
  89.             ConsoleKeyInfo upArrow = new ConsoleKeyInfo('↑', ConsoleKey.UpArrow, false, false, false);
  90.             ConsoleKeyInfo downArrow = new ConsoleKeyInfo('↓', ConsoleKey.DownArrow, false, false, false);
  91.             ConsoleKeyInfo leftArrow = new ConsoleKeyInfo('←', ConsoleKey.LeftArrow, false, false, false);
  92.             ConsoleKeyInfo rightArrow = new ConsoleKeyInfo('→', ConsoleKey.RightArrow, false, false, false);
  93.  
  94.             int[] direction = { 0, 0 };
  95.  
  96.             if (pressedKey.Key == upArrow.Key)
  97.                 direction[1] = -1;
  98.             else if (pressedKey.Key == downArrow.Key)
  99.                 direction[1] = 1;
  100.             else if (pressedKey.Key == leftArrow.Key)
  101.                 direction[0] = -1;
  102.             else if (pressedKey.Key == rightArrow.Key)
  103.                 direction[0] = 1;
  104.  
  105.             return direction;
  106.         }
  107.     }
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement