Mam taki problem. Napisałem sobie prosty system chodzenia po konsoli (taki zalążek pod zrobienie snejka) teraz mam problem bo nie wiem w jaki sposób zablokować możliwość wychodzenia "bohaterem" poza okno konsoli.
Wymiary konsoli są ustawione poprzez: Console.SetWindowSize
.
Napisałem coś takiego:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Snake
{
class Character
{
public int X;
public int Y;
public int sizeX = 90;
public int sizeY = 35;
public void Snake()
{
Console.SetCursorPosition(X, Y);
Console.WriteLine("#");
}
public void Movement()
{
ConsoleKeyInfo keyInfo;
while ((keyInfo = Console.ReadKey(true)).Key != ConsoleKey.Escape)
{
switch (keyInfo.Key)
{
case ConsoleKey.UpArrow:
Y--;
UpdatePosition();
break;
case ConsoleKey.RightArrow:
X++;
UpdatePosition();
break;
case ConsoleKey.DownArrow:
Y++;
UpdatePosition();
break;
case ConsoleKey.LeftArrow:
X--;
UpdatePosition();
break;
}
}
}
public void UpdatePosition()
{
Console.Clear();
CheckPosition();
Console.SetCursorPosition(X, Y);
Console.WriteLine("#");
}
public bool CheckPosition()
{
if (X < 0 || X >= Console.WindowWidth)
return false;
if (Y < 0 || Y >= Console.WindowHeight)
return false;
return true;
}
}
}