g1:string; {Переменная которой присваивается очередная строка из файла и выводится на экран}
begin
clrscr;
assign(f,'fhelp1.txt');
reset(f);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
readln(f,g1); writeln(g1);
writeln('For exit press ENTER');
readln;
close(f);
end;
begin
{Основная программа}
{Вывод на экран главного меню}
{Элементы Главного меню, один из которых закрашен белым цветом, а остальные зеленым}
men[1]:=15;
men[2]:=2;
men[3]:=2;
men[4]:=2;
men[5]:=2;
repeat
clrscr;
strok:=1; {Текущаястрока}
Lom:=1;
{Выборцветов}
GoToXY(32,10); Textcolor(men[1]); writeln('Key');
GoToXY(32,11); Textcolor(men[2]); writeln('About program');
GoToXY(32,12); Textcolor(men[3]); writeln('Play');
GoToXY(32,13); Textcolor(men[4]); writeln('Results');
GoToXY(32,14); Textcolor(men[5]); writeln('Exit');
ch:=readkey; {Выбор направления передвижение элементов меню}
if (ord(ch)=80) then {Если вниз тогда текущий становится белым, а нижний становится зеленым}
begin
for i:=1 to 5 do
begin
if (men[i]=15) and (strok<>5) then
begin
men[strok]:=2;
men[strok+1]:=15;
end
else strok:=strok+1;
end;
end;
if ord(ch)=72 then {Если вверх, то текущий белым, а верхний зеленым}
begin
for i:=1 to 5 do
begin
if (men[i]=15) and (strok<>1)then
begin
men[strok]:=2;
men[strok-1]:=15;
end
else strok:=strok+1;
end;
end;
if ord(ch)=13 then {Еслинажат ENTER}
begin
for i:=1 to 5 do
begin
if men[i]=15 then
begin
if Lom=1 then begin Help; break; end; {Переходврежимсправки}
if Lom=2 then begin avtor; break; end; {Переходврежимигры}
if Lom=3 then begin Game15;break; end; {Переходврежимигры}
if Lom=4 then begin result;break; end; {Переходврежимигры}
end
else Lom:=Lom+1;
end;
end;
until Lom=5 {До тех пор пока не нажат пункт EXIT}
end.
Приложение 2 Результаты работы.
Для демонстрации результата работы программы, возьмем основной раздел ИГРА.
При запуске программы появляется табло, заполненное случайными неповторяющееся цифрами от 1 до 15 и один пустой элемент (Рисунок 8).
Рисунок 8 – Основное табло со случайными числами
Далее пользователю предлагается сделать ход. К примеры переместить цифру на пустое место. Для этого необходимо нажать клавишу (вверх) на клавиатуре. В результате цифра один переместится вверх, а пустая клетка перемещается на место единицы (Рисунок 9).Рисунок 9 – Первый ход
В дальнейшем перемещая по одной клетки, при помощи курсора, расклад будет выполнен. Весь процесс до победы может занять очень много ходов, поэтому перейдем к предпоследнему моменту.
К примеру, игрок долго играл и у него выпал следующий расклад (Рисунок 10).
Рисунок 10 – очередной ход.
Теперь пользователю необходимо сделать один, последний ход, а именно переместить клетку с цифрой 15 на пустой элемент. В результате расклад будет выполнен (Рисунок 11).
В случае если игрок разложил требуемый расклад за наименьшее количество ходов, чем игроки, игравшие ранее, то пользователю предлагается ввести имя и в дальнейшем его имя и результаты будет отображаться в разделе Результаты (Рисунок 11).
Рисунок 11 – конец игры