Шахматы 9 на 9. Индекс находится вне границ массива
Индекс находится вне границ массива
(Figure)lines[8 - y][x]; Тут ошибка.
Я делаю особенные шахматы, они 9 на 9 и 1 новая фигура
namespace Chess
{
class Board
{
public string fen { get; private set; }
Figure[,] figures;
public Color moveColor { get; private set; }
public int moveNumber { get; private set; }
public Board (string fen)
{
this.fen = fen;
figures = new Figure[9, 9];
Init();
}
void Init ()
{
//"rnbqjkbnr/pppp3pp/9/9/9/9/PPPPPPPPP/RNBQJKBNR w KQkq - 0 1"
// 0 1 2 3 4 5
string[] parts = fen.Split();
if (parts.Length != 6) return;
InitFigures(parts[0]);
moveColor = (parts[1] == "b") ? Color.black : Color.white;
moveNumber = int.Parse(parts[5]);
}
void InitFigures (string data)
{
for (int j = 9; j >= 2; j--)
data = data.Replace(j.ToString(), (j - 1).ToString() + "1");
data = data.Replace("1", ".");
string[] lines = data.Split('/');
for (int y = 8; y >= 0; y--)
for (int x = 0; x < 9; x++)
figures[x, y] = lines[8 - y][x] == '.' ? Figure.none :
(Figure)lines[8 - y][x];