Несколько строк кода моего шахматного бота получают ошибки исключений в NULL, как я могу это исправить? [дублировать]C#

Место общения программистов C#
Anonymous
Несколько строк кода моего шахматного бота получают ошибки исключений в NULL, как я могу это исправить? [дублировать]

Сообщение Anonymous »

ОК, я делал шахматный бот, как только я его закончил, я получил эту ошибку: < /p>
System.NullReferenceException: Object reference not set to an instance of an object.
at MyBot.GetAdjustmentList(Int32 pieceType) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My Bot\MyBot.cs:line 214
at MyBot.GetAdjustmentList(Int32 pieceType) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My Bot\MyBot.cs:line 214
at MyBot.GetSortedMoves(Boolean capturesOnly) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My Bot\MyBot.cs:line 147
at MyBot.Search(Int32 currentDepth, Int32 alpha, Int32 beta, Int32 color) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My at MyBot.Search(Int32 currentDepth, Int32 alpha, Int32 beta, Int32 color) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My Bot\MyBot.cs:line 89
Bot\MyBot.cs:line 89
at MyBot.Think(Board board, Timer timer) in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\My Bot\MyBot.cs:line 68
at ChessChallenge.Application.ChallengeController.GetBotMove() in C:\Users\PC\Desktop\Chess-Challenge-main\Chess-Challenge-main\Chess-Challenge\src\Framework\Application\Core\ChallengeController.cs:line 150
< /code>
Я отследил его до этой строки кода: < /p>
API.Move move = PlayerToMove.Bot.Think(botBoard, timer);
scoreGuess += GetSquareValue(move.TargetSquare, boardRef.IsWhiteToMove, GetAdjustmentList(movePieceType));
return pieceType == 6 && IsEndGame() ? pieceAdjustments[7] : pieceAdjustments[pieceType];
< /code>
Я не знаю, почему она получает эту ошибку, я уверен, что я ничего не назначил нулю, я проверял все вещи, которые уже за десятки раз < /p>
Вероятно, это хорошо, чтобы упомянуть об этом, часть, где он поймал исключение: < /p>
try
{
API.Timer timer = new(PlayerToMove.TimeRemainingMs, PlayerNotOnMove.TimeRemainingMs, GameDurationMilliseconds, IncrementMilliseconds);
API.Move move = PlayerToMove.Bot.Think(botBoard, timer);
return new Move(move.RawValue);
}
catch (Exception e)
{
Log("An error occurred while bot was thinking.\n" + e.ToString(), true, ConsoleColor.Red);
hasBotTaskException = true;
botExInfo = ExceptionDispatchInfo.Capture(e);
}
return Move.NullMove;


Подробнее здесь: https://stackoverflow.com/questions/796 ... -can-i-fix

Вернуться в «C#»