kwest87

Untitled

Apr 15th, 2022
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 3.47 KB | None | 0 0
  1. [StartCode]
  2. using System;
  3. using System.Collections.Generic;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using System.IO;
  8.  
  9. namespace ConsoleApp14
  10. {
  11.     internal class Program
  12.     {
  13.         static void Main(string[] args)
  14.         {
  15.             Console.CursorVisible = false;
  16.             bool isPlay = true;
  17.             int duckСoordinatesX = 1;
  18.             int duckСoordinatesY = 1;
  19.             int duckСoordinatesDirectionX = 0;
  20.             int duckСoordinatesDirectionY = 0;
  21.             char[,] map = ReadMap("map1.txt");
  22.             DrawMap(map);
  23.  
  24.             while (isPlay)
  25.             {
  26.                 if (Console.KeyAvailable)
  27.                 {
  28.                     ConsoleKeyInfo key = Console.ReadKey(true);
  29.                     ChangeDirection(key,ref duckСoordinatesDirectionX,ref duckСoordinatesDirectionY);
  30.  
  31.                     if (map[duckСoordinatesX + duckСoordinatesDirectionX, duckСoordinatesY + duckСoordinatesDirectionY] != '*')
  32.                     {
  33.                         MoveObject(ref duckСoordinatesX, ref duckСoordinatesY, duckСoordinatesDirectionX, duckСoordinatesDirectionY);
  34.                     }
  35.                 }
  36.             }
  37.         }
  38.  
  39.         static void ChangeDirection(ConsoleKeyInfo key,ref int objectСoordinatesDirectionX,ref int objectСoordinatesDirectionY)
  40.         {
  41.             switch (key.Key)
  42.             {
  43.                 case ConsoleKey.UpArrow:
  44.                     objectСoordinatesDirectionX = -1;
  45.                     objectСoordinatesDirectionY = 0;
  46.                     break;
  47.                 case ConsoleKey.DownArrow:
  48.                     objectСoordinatesDirectionX = 1;
  49.                     objectСoordinatesDirectionY = 0;
  50.                     break;
  51.                 case ConsoleKey.LeftArrow:
  52.                     objectСoordinatesDirectionX = 0;
  53.                     objectСoordinatesDirectionY = -1;
  54.                     break;
  55.                 case ConsoleKey.RightArrow:
  56.                     objectСoordinatesDirectionX = 0;
  57.                     objectСoordinatesDirectionY = 1;
  58.                     break;
  59.             }
  60.         }
  61.  
  62.         static void MoveObject(ref int objectСoordinatesX,ref int objectСoordinatesY, int objectСoordinatesDirectionX, int objectСoordinatesDirectionY)
  63.         {
  64.             Console.SetCursorPosition(objectСoordinatesY, objectСoordinatesX);
  65.             Console.Write(' ');
  66.             objectСoordinatesX += objectСoordinatesDirectionX;
  67.             objectСoordinatesY += objectСoordinatesDirectionY;
  68.             Console.SetCursorPosition(objectСoordinatesY, objectСoordinatesX);
  69.             Console.Write("2");
  70.         }
  71.  
  72.         static char[,] ReadMap(string mapName)
  73.         {
  74.             string[] newFile = File.ReadAllLines("maps/" + mapName);
  75.             char[,] map = new char[newFile.Length, newFile[0].Length];
  76.  
  77.             for (int i = 0; i < map.GetLength(0); i++)
  78.             {
  79.                 for (int j = 0; j < map.GetLength(1); j++)
  80.                 {
  81.                     map[i,j] = newFile[i][j] ;
  82.                 }
  83.             }
  84.  
  85.             return map;
  86.         }
  87.  
  88.         static void DrawMap(char[,] map)
  89.         {
  90.             for (int i = 0; i < map.GetLength(0); i++)
  91.             {
  92.                 for (int j = 0; j < map.GetLength(1); j++)
  93.                 {
  94.                     Console.Write (map[i,j]);
  95.                 }
  96.  
  97.                 Console.WriteLine();
  98.             }
  99.         }
  100.     }
  101. }
  102. [EndCode]
Advertisement
Add Comment
Please, Sign In to add comment