Несколько строк кода моего шахматного бота получают ошибки исключений в 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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