Просто фидбэк с#

Нету знакомых кто мог бы понять и запустить, но очень хочется с кем-то поделиться! Учусь пару недель, пока прошел только массивы и циклы, да и этого было достаточно, чтобы сделать, что-то интересное. Было бы неплохо найти кого-нибудь, кто посмотрел бы на все это и сказал то, что думает по этой штуке. Спасибо.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace miniGame
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Console.CursorVisible = false;
            Console.WindowHeight = 35;
            Console.WindowWidth = 160;
            Console.WriteLine("Короче, это микро игра основана на рандоме. Так что если тебе сгенерировало беспобедный варик, то тебе не повезло.");
            Console.WriteLine("Игрок 'Я' должен каким-то образом попасть к победе 'W'. ");
            Console.WriteLine("На карте в рандомном месте (недалеко от игрока) геренируется кирка 'K' которая может ломать стены.");
            Console.WriteLine("двигаться на 'WSDA' пользоваться киркой на 'пробел'.");
            Console.WriteLine("Нажми что-нибудь чтобы продолжить");
            Console.ReadKey();
            Console.Clear();
            Console.WriteLine("ЗАГРУЗКА...");
            Thread.Sleep(1500);
            Console.Clear();
            Random rand = new Random();
            char[,] playground = new char[30, 150];
            for (int i = 0; i < playground.GetLength(0); i++)
            {
                for (int j = 0; j < playground.GetLength(1); j++)
                {

                    if (i == 0 || i == playground.GetLength(0) - 1)
                    {
                        playground[i, j] = '#';
                    }
                    else
                    {
                        playground[i, j] = ' ';
                    }
                    if (j == 0 || j == playground.GetLength(1) - 1)
                    {
                        playground[i, j] = '#';
                    }
                }
            }
            for (int i = rand.Next(0, 3); i < (playground.GetLength(0) - 1); i += rand.Next(1, 7))
            {
                for (int j = rand.Next(0, 3); j < (playground.GetLength(1) - 1); j += rand.Next(15, 30))
                {
                    int wallLenght;
                    int direction = rand.Next(0, 5);
                    if (direction <= 1)
                    {
                        wallLenght = rand.Next(3, 20);
                    }
                    else
                    {
                        wallLenght = rand.Next(10, 25);
                    }
                    switch (direction)
                    {
                        case 0:
                            int counter = 0;
                            for (int k = 0; k < wallLenght; k++)
                            {
                                counter++;
                                if (i <= 0 || i >= (playground.GetLength(0) - 1) || j <= 0 || j >= (playground.GetLength(1) - 1))
                                {
                                    break;
                                }
                                else
                                {
                                    playground[i, j] = '#';
                                    i++;
                                }
                            }
                            i -= counter;
                            break;
                        case 1:
                            int counter1 = 0;
                            for (int k = 0; k < wallLenght; k++)
                            {
                                counter1++;
                                if (i <= 0 || i >= (playground.GetLength(0) - 1) || j <= 0 || j >= (playground.GetLength(1) - 1))
                                {
                                    break;
                                }
                                else
                                {
                                    playground[i, j] = '#';
                                    i--;
                                }
                            }
                            i += counter1;
                            break;
                        case 2:
                            int counter2 = 0;
                            for (int k = 0; k < wallLenght; k++)
                            {
                                counter2++;
                                if (i <= 0 || i >= (playground.GetLength(0) - 1) || j <= 0 || j >= (playground.GetLength(1) - 1))
                                {
                                    break;
                                }
                                else
                                {
                                    playground[i, j] = '#';
                                    j--;
                                }
                            }
                            j += counter2;
                            break;
                        case 3:
                            int counter3 = 0;
                            for (int k = 0; k < wallLenght; k++)
                            {
                                counter3++;
                                if (i <= 0 || i >= (playground.GetLength(0) - 1) || j <= 0 || j >= (playground.GetLength(1) - 1))
                                {
                                    break;
                                }
                                else
                                {
                                    playground[i, j] = '#';
                                    j--;
                                }
                            }
                            j += counter3;
                            break;
                    }
                }
            }
            int playerX = 2, playerY = 2;
            int spudX = rand.Next(1, playground.GetLength(1) - 115);
            int spudY = rand.Next(1, playground.GetLength(0) - 15);
            int spud = 0;
            int win = 0;
            playground[spudY, spudX] = 'K';
            playground[playground.GetLength(0) - 2, playground.GetLength(1) - 2] = 'W';
            while (win == 0)
            {
                playground[playerY, playerX] = 'Я';
                for (int i = 0; i < playground.GetLength(0); i++)
                {
                    for (int j = 0; j < playground.GetLength(1); j++)
                    {
                        Console.Write(playground[i, j]);
                    }
                    Console.WriteLine();
                }
                ConsoleKeyInfo key = Console.ReadKey();
                switch (key.Key)
                {
                    case ConsoleKey.W:
                        if (playground[playerY - 1, playerX] != '#')
                        {
                            if (playground[playerY - 1, playerX] == 'W')
                            {
                                win++;
                            }
                            if (playground[playerY - 1, playerX] == 'K')
                            {
                                spud++;
                            }
                            playerY -= 1;
                            playground[playerY + 1, playerX] = ' ';
                        }
                        break;
                    case ConsoleKey.S:
                        if (playground[playerY + 1, playerX] != '#')
                        {
                            if (playground[playerY + 1, playerX] == 'W')
                            {
                                win++;
                            }
                            if (playground[playerY + 1, playerX] == 'K')
                            {
                                spud++;
                            }
                            playerY += 1;
                            playground[playerY - 1, playerX] = ' ';
                        }
                        break;
                    case ConsoleKey.A:
                        if (playground[playerY, playerX - 1] != '#')
                        {
                            if (playground[playerY, playerX - 1] == 'W')
                            {
                                win++;
                            }
                            if (playground[playerY, playerX - 1] == 'K')
                            {
                                spud++;
                            }
                            playerX -= 1;
                            playground[playerY, playerX + 1] = ' ';
                        }
                        break;
                    case ConsoleKey.D:
                        if (playground[playerY, playerX + 1] != '#')
                        {
                            if (playground[playerY, playerX + 1] == 'W')
                            {
                                win++;
                            }
                            if (playground[playerY, playerX + 1] == 'K')
                            {
                                spud++;
                            }
                            playerX += 1;
                            playground[playerY, playerX - 1] = ' ';
                        }
                        break;
                    case ConsoleKey.Spacebar:

                        if (spud == 1)
                        {
                            if (playerX != 1 && playerY != 1)
                            {
                                playground[playerY - 1, playerX - 1] = ' ';
                            }
                            if (playerX != 1)
                            {
                                playground[playerY, playerX - 1] = ' ';
                            }
                            if (playerX != 1 && playerY != playground.GetLength(0) - 2)
                            {
                                playground[playerY + 1, playerX - 1] = ' ';
                            }
                            if (playerY != playground.GetLength(0) - 2)
                            {
                                if (playground[playerY + 1, playerX] == 'W')
                                {
                                    win--;
                                }
                                playground[playerY + 1, playerX] = ' ';
                            }
                            if (playerX != playground.GetLength(1) - 2 && playerY != playground.GetLength(0) - 2)
                            {
                                if (playground[playerY + 1, playerX + 1] == 'W')
                                {
                                    win--;
                                }
                                playground[playerY + 1, playerX + 1] = ' ';
                            }
                            if (playerX != playground.GetLength(1) - 2)
                            {

                                if (playground[playerY, playerX + 1] == 'W')
                                {
                                    win--;
                                }

                                playground[playerY, playerX + 1] = ' ';
                            }
                            if (playerX != playground.GetLength(1) - 2 && playerY != 1)
                            {
                                playground[playerY - 1, playerX + 1] = ' ';
                            }
                            if (playerY != 1)
                            {
                                playground[playerY - 1, playerX] = ' ';
                            }
                        }
                        break;
                    case ConsoleKey.E:
                        break;
                }
                Console.SetCursorPosition(0, 0);
            }
            switch (win)
            {
                case 1:
                    Console.Clear();
                    Thread.Sleep(1500);
                    Console.WriteLine("Изи катка");
                    Thread.Sleep(1500);
                    Console.WriteLine("Победка");
                    Console.ReadKey();
                    break;
                case -1:
                    Console.Clear();
                    Thread.Sleep(1500);
                    Console.WriteLine("Зачем ты сломал победу?");
                    Thread.Sleep(1500);
                    Console.WriteLine("Ну ты и голова!");
                    Console.ReadKey();
                    break;
            }
        }
    }
}

Ответы (1 шт):

Автор решения: Faraday

Как по мне для начала это очень хорошо, даже отлично. Тут вы показываете свой уровень владения циклами и массивами, что достаточно хорошо, а так же отлично ориентируетесь в коде (Судя по его размерам)

Дальше попробуйте упростить ваш код, изучайте дальше методы и как с ними работать, вынесите соответствующие куски кода в методы и увидите разницу

→ Ссылка