Задание сохранить положение фигур на шахматной доске,чтобы после закрытия игры, была возможность загрузить сохраненную игру и продолжить играть или начать новую игру.
Моя задумка:расставляю фигуры в начальное положение.Если надо загрузить сохраненную игру, то Фигуры расставляю по координатам из Stringgrid2. Если координаты не записаны, то фигура удаляется.
Ошибка: Через фигуры, которые были срублены до закрытия нельзя ходить, хотя на доске их не появляется. Подскажите, пожалуйста, как правильно их удалить Я думала, что надо прописать Tag,но у меня не получается:oops:
Вот код загрузки сохраненной игры: (В Stgringgride1 записывается история ходов, Nextturn-цвет фигуры, которая ходит)
Код:
procedure TChess.N3Click(Sender: TObject);
var i:integer; a:coordinaty;
begin
Try
assignFile(x1,'x.txt');
Reset(x1);
for i:=0 to 31 do
begin
Readln(x1,s);
StringGrid2.Cells[0,i]:=s;
end;
CloseFile(x1);
except
assignFile(x1,'x.txt');
Rewrite(x1);
end;
Try
assignFile(y1,'y.txt');
Reset(y1);
for i:=0 to 31 do
begin
Readln(y1,s);
StringGrid2.Cells[1,i]:=s;
end;
CloseFile(y1);
except
assignFile(y1,'y.txt');
Rewrite(y1);
end;
Try
assignFile(name1,'Name.txt');
Reset(name1);
for i:=0 to 99 do
begin
Readln(name1,s);
StringGrid1.Cells[0,i]:=s;
end;
CloseFile(name1);
except
assignFile(name1,'Name.txt');
Rewrite(name1);
end;
Try
assignFile(Figur1,'Figur.txt');
Reset(Figur1);
for i:=0 to 99 do
begin
Readln(Figur1,s);
StringGrid1.Cells[1,i]:=s;
end;
CloseFile(Figur1);
except
assignFile(Figur1,'Figur.txt');
Rewrite(Figur1);
end;
Try
assignFile(nachhod1,'Nachhod.txt');
Reset(nachhod1);
for i:=0 to 99 do
begin
Readln(nachhod1,s);
StringGrid1.Cells[2,i]:=s;
end;
CloseFile(nachhod1);
except
assignFile(nachhod1,'Nachhod.txt');
Rewrite(nachhod1);
end;
Try
assignFile(konhod1,'Konhod.txt');
Reset(konhod1);
for i:=0 to 99 do
begin
Readln(konhod1,s);
StringGrid1.Cells[3,i]:=s;
end;
CloseFile(konhod1);
except
assignFile(konhod1,'Konhod.txt');
Rewrite(konhod1);
end;
Try
assignFile(rub1,'rub.txt');
Reset(rub1);
for i:=0 to 99 do
begin
Readln(rub1,s);
StringGrid1.Cells[4,i]:=s;
end;
CloseFile(rub1);
except
assignFile(rub1,'kol.txt');
Rewrite(rub1);
end;
for i:=0 to 99 do if (Stringgrid1.Cells[0,i]<>'') then nomer:=i+2;
for i:=1 to 32 do begin
if (Stringgrid2.Cells[0,i-1]<>'') then begin
a[1]:= Strtoint(Stringgrid2.Cells[0,i-1]);
a[2]:= Strtoint(Stringgrid2.Cells[1,i-1]);
Figures[i].Place:=a;
end;
if (Stringgrid2.Cells[0,i-1]='') then begin figures[i].Free; end;
end;
if (nomer div 2)=0 then Nextturn:=False;
end;