Просто фидбэк с#
Нету знакомых кто мог бы понять и запустить, но очень хочется с кем-то поделиться! Учусь пару недель, пока прошел только массивы и циклы, да и этого было достаточно, чтобы сделать, что-то интересное. Было бы неплохо найти кого-нибудь, кто посмотрел бы на все это и сказал то, что думает по этой штуке. Спасибо.
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
→ Ссылка
Как по мне для начала это очень хорошо, даже отлично. Тут вы показываете свой уровень владения циклами и массивами, что достаточно хорошо, а так же отлично ориентируетесь в коде (Судя по его размерам)
Дальше попробуйте упростить ваш код, изучайте дальше методы и как с ними работать, вынесите соответствующие куски кода в методы и увидите разницу