Иллюстрированный самоучитель по Tirbo Pascal


Игра ним - часть 10


ТЕХТ02= '-1 0 для настройки игры';

ТЕХТЗ = 'Ваш ход:                            ';

Y = 20; {Номер строки для вывода сообщений} 

var

correctly : Boolean; {Признак правильности сделанного хода}

xl,x2 : Integer; {Вводимый ход}

{-----------------}

Procedure GetChange;

{Устанавливает новую настройку игры (количество рядов и количество фишек в каждом ряду}  

begin {GetChange} 

end; {GetChange}

{-----------------}

begin {GetPlayerMove}

ShowField; {Показываем начальное состояние поля}

{Сообщить игроку правила ввода хода:}

GotoXY((80-Length(TEXT1+TEXT01)) div2,Y);

Write(TEXT1+TEXT01);

GotoXY((80-Length(TEXT2+TEXT02)) div2,Y+l);

Write(TEXT2+TEXT02);

repeat

{Пригласить игрока ввести ход:}

GotoXY(l,Y+2);

Write(TEXTS); {Выводим приглашение и стираем предыдущий ход}

GotoXY(WhereX-16,Y+2); {Курсор влево на 16 позиций}

ReadLn(xl,x2); {Вводим очередной ход} 

exit := xl=0; {Контроль команды выхода} 

change := xl=-l; {Контроль команды изменения}

 if not (exit or change) then 

begin

correctly := (xl > 0) and (xl <= nrow) and

(x2 <= col[xl]) and (x2 > 0) ; 

if correctly then

begin {Ход правильный:}

col[xl] := col[xl]-x2; {Изменяем раскладку фишек} 

ShowField {Показываем поле} 

end 

else

Write(#7) {Ход неправильный: дать звуковой сигнал} 

end 

else

correctly := true {Случай EXIT или CHANGE} 

until correctly; 

if change then

GetChange end; {GetPlayerMove}

Обратите внимание: константа

ТЕХТЗ = 'Ваш ход:

имеет длинный «хвост» из пробелов (их 17), поэтому после вывода этого приглашения курсор возвращается влево на 16 позиций оператором

GotoXY(WhereX-16,Y+2); {курсор влево на 16 позиций}

(функция WHEREX возвращает текущую горизонтальную координату курсора, а функция WHEREY - его вертикальную координату). Сделано это для того, чтобы в случае, если игрок ввел неверный ход и программа повторяет вывод приглашения, пробелы в константе ТЕХТЗ затерли бы строку предыдущего ввода.




- Начало -  - Назад -  - Вперед -



Книжный магазин