Контрольная работа: Система искусственного интеллекта
Form 1. adotable 1 game . Value :=1;
end ;
Тут же происходит вызов процедуры очистки поля игры.
clean; // Очистка игрового поля
Кроме выигрыша и проигрыша, есть возможность ничьи. Для этого проверяется игра на заполнение поля, после проверок на все возможные выигрыши. Выводитсясообщениеоничьеитакжеочищаетсяполеигры.
if (Form1.Panel2.Caption<>'') and (Form1.Panel3.Caption<>'') and (Form1.Panel4.Caption<>'') and (Form1.Panel5.Caption<>'') and (Form1.Panel6.Caption<>'') and (Form1.Panel7.Caption<>'') and (Form1.Panel8.Caption<>'') and (Form1.Panel9.Caption<>'') and (Form1.Panel10.Caption<>'')
then
begin
ShowMessage (' Ничья , попробуйте ещё раз !');
clean;
end;
3. Последняя процедура «panel» необходима для осуществления ходов компьютером случайным образом, до тех пор пока не надет свободное поле. Чтоб эта процедура не зациклилась, проверяем на возможность ничьи, то есть на наполняемость полей.
1:randomize;
case random(8) of
1:if form1.panel10.Caption='' then begin
form1.panel10.Caption:='O';
end else begin goto 1; end;
… … … … …
0:if form1.panel9.Caption='' then begin
form1.panel9.Caption:='O';
end else begin goto 1; end;
end; end;
Кроме процедур написанных вручную, существуют процедуры обработки событий. Например, на каждую Panel, то есть ячейку поля игры, написано различные обработки. Рассмотрим их подробнее.
Сначала проверяется поле, в нашем случае panel, на наполняемость. В случае если он не пуст, выходим из обработчика событий.
if Panel2.Caption<>'' then exit;
Если же поле пусто выполняется заполнение поля символом «X» и открывается таблица для проверки из базы знаний соответствующих ходов.
Panel2.Caption:='X';
adotable1.Edit;
adotable1.open;