Вы столкнулись с проблемой, когда хотите записать значения из ячеек StringGrid в двумерный массив типа char для хранения текущего состояния игры. Проблема заключается в том, что StringGrid работает со строками, а массив char - с отдельными символами. Для решения этой задачи необходимо изменить тип переменной, используемой для хранения символа 'X', на Char, а не на String. Это позволит вам безопасно записывать символы в массив char.
Вот как можно изменить ваш код:
procedure TForm1.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
var
XMark: Char; // Изменили тип переменной на Char
begin
XMark := 'X';
CanSelect := False;
if (bTurn = True) then
begin
StringGrid1.Cells[ACol, ARow] := XMark; // Теперь это безопасно
GameBoard[ACol, ARow] := XMark; // И запись в массив char также безопасна
end
else
begin
bTurn := False; // Ход компьютера
CompTurn; // Обработка хода компьютера
StringGrid1.Enabled := False;
end;
end;
Таким образом, вы сможете использовать значения из StringGrid для обновления состояния игры, хранящегося в массиве char.
Важные моменты:
Присваивание строки (String) к переменной типа char невозможно, но присваивание переменной типа char к строке - возможно.
Если вам нужно выполнить несколько команд при выполнении условия if, оберните их в блок begin...end.
Надеюсь, это решение поможет вам в создании вашей игры "Крестики-нолики" на Delphi. Удачи в изучении основах программирования!
Вы пытаетесь записать значения из элементов `StringGrid` в двумерный массив типа `char` в программе на Delphi для хранения данных о ходе игры 'Крестики-нолики'.
Комментарии и вопросы
Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS
Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.