Что нам стоит движок построить

Источник:gcmsite.yaroslavl.ru
Дата публикации:2001
Twitter Facebook Vkontakte

Данная статья рассказывает о том, как создать простейший текстовый движок. Для разработки используется среда Borland Pascal 7.0. Это самодостаточная и компактная среда разработки приложений MS-SOS.

Простейший движок состоит из главного цикла и трёх вспомогательных процедур:

 while not Stop do
 begin
 InputStr;
 Morfolog;
 Work;
 end.
 
  • InputStr - Ввод строки управления с последующей обработкой (Перевод всех символов к верхнему регистру) и разбиение строки на слова;
  • Morfolog - Обработка слов с целью идентификации и сопоставления с зашитыми в движок командами (Север, Юг, Открыть и т.д.). Получение кода команды и вспомогательных кодов;
  • Work - Интерпретатор кодов команд.

Самой большой процедурой является процедура интерпретации, а самой критической (с точки зрения распознавания) является вторая процедура (получение кодов команд).

Сейчас я представлю текст программы, в которой реализован простейший текстовый движок, понимающий команды QUIT, HELP, NORTH, SOUTH.

 {=**= Демонстрационная программа текстового движка =**=}
 var
 y1 : integer; {код команды}
 s1,s2 : String; {для обработки строк}
 stop : boolean; {завершить программу???}
 Procedure InputStr;
 var
 i : byte;
 begin
 Write('>>');
 i:=1;
 Readln(s1);
 s2:='';
 While (s1[i]=' ') and (i<=length(s1)) do inc(i);
 While (s1[i]<>' ') and (i<=length(s1)) do
 begin
 s2:=s2+upcase(s1[i]);
 inc(i)
 end;
 if length(s2)>3 then delete(s2,4,100);
 end;
 Procedure Morfolog;
 begin
 y1:=0;
 { Команды : }
 if (s2='N') or (s2='NOR') or (s2='NO') or (s2='NORT') then y1:=1;
 if (s2='S') or (s2='SOU') or (s2='SO') or (s2='SOUT') then y1:=2;
 if (s2='HEL') or (s2='H') or (s2='HE') or (s2='HELP') then y1:=3;
 if (s2='QUI') or (s2='QU') or (s2='QUIT') or (s2='Q') then y1:=255;
 end;
 Procedure Work;
 begin
 Case y1 of
 1: begin
 {идем на север}
 writeln('Идем на север...');
 end;
 2: begin
 {идем на юг} 
 writeln('Идем на юг...');
 end;
 3: begin
 {помощь}
 writeln('Помощь...');
 end;
 255: begin
 writeln('Как Вам будет угодно...');
 Stop:=true;
 end;
 end;
 end;
 begin
 Stop := false;
 While not stop do
 begin
 InputStr;
 Morfolog;
 Work;
 end;
 end.

Как видите, ничего в этом сложного нет. Но не стоит расслабляться.



Распространение материалов сайта означает, что распространитель принял условия лицензионного соглашения.
Идея и реализация: © Владимир Довыденков и Анатолий Камынин,  2004-2017