47044 (608044), страница 5

Файл №608044 47044 (Игра "Пятнашки") 5 страница47044 (608044) страница 52016-07-30СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 5)

begin

if strok<>4 then {Если это не последний элемент, стоящий у границы табло}

begin

as[strok,stolb]:=as[strok+1,stolb]; {На место пустого элемента присваевается элемент стоящий снизу от пустого}

as[strok+1,stolb]:=' '; {Элементу стоящему снизу от пустого присваевается пустой элемент}

strok:=strok+1;{Новая координата пустого элемента}

hod:=hod+1; {Очередной сделанный ход}

end;

end;

if ord(ch)=77 then {Если нажата клавиша вправо}

begin

if stolb<>1 then {Если это не последний элемент, стоящий у границы табло}

begin

as[strok,stolb]:=as[strok,stolb-1]; {На место пустого элемента присваивается элемент стоящий слева от пустого}

as[strok,stolb-1]:=' '; {Элементу стоящему слева от пустого присваивается пустой элемент}

stolb:=stolb-1; {Новая координата пустого элемента}

hod:=hod+1; {Очередной сделанный ход}

end;

end;

if ord(ch)= 80 then {Если нажата клавиша вниз}

begin

if strok<>1 then {Если это не последний элемент, стоящий у границы табло}

begin

as[strok,stolb]:=as[strok-1,stolb];{На место пустого элемента присваивается элемент стоящий сверху от пустого}

as[strok-1,stolb]:=' '; {Элементу стоящему сверху от пустого присваивается пустой элемент}

strok:=strok-1; {Новая координата пустого элемента}

hod:=hod+1; {Очередной сделанный ход}

end;

end;

Vivod;

end;

procedure readFile;

{Добавляет в файл информацию о лучших результатах}

begin

assign(f,'res.txt'); {Объявления файла}

reset(f); {Открытие файла}

j:=1;

for i:=1 to 10 do

begin

readln(f,res[i]); {Занесение имен лучших игроков из файла в массив}

readln(f,it[j]); {Занесение результатов лучших игроков в массив}

j:=j+1; {Счетчик для лучших результатов}

end;

close(f);

end;

procedure writeFile;

{Считывает файл с лучшими результатами}

begin

assign(f,'res.txt'); {Объявление файла}

rewrite(f);{Открытие в режиме перезаписи}

for i:=1 to 10 do

begin

writeln(f,resv[i]);writeln(f,itv[i]); {Внесение информации о лучших игроках и их результатах из массивов в файл}

end;

close(f);

end;

procedure Mesto;

{Процедура в которой устанавливается занял ли игрок какое либо место, если да то занесение в список лучших игроков}

var chetcik:integer; {Счетчик, объявляет что информация о лучим игроке уже внесена, повторной информации не должно быть}

begin

if prov = true then {Если игрок разложил расклад}

begin

readfile; {Процедура считывание информации из файла с лучшими результатами}

chetcik:=0;

j:=1;

for i:=1 to 10 do

begin

if (hod=it[i-1]) and (chetcik<1) then

begin

{Ввод имени игрока}

OutTextXY(132,325,'will Enter name and press Enter:');

line(400,338,530,338);

GoToXY(52,21);

read(name);

{Присвоение очередному элементу данных текущего игрока}

itv[i]:=hod;

resv[i]:=name;

j:=j+1;

chetcik:=1;

end;

{Перенос из одного массива в другой}

if j<=10 then

begin

itv[j]:=it[i];

resv[j]:=res[i];

j:=j+1;

end;

end;

writeFile; {Сохранение информации в файл}

OutTextXY(230,360,'For leaving press ENTER');

readln;

end;

end;

procedure proverka;

{Проверка правильно ли разложено табло}

begin

prov:=false;

if (as[1,1]='1 ') and (as[1,2]='2 ') and (as[1,3]='3 ') and (as[1,4]='4 ')

and (as[2,1]='5 ') and (as[2,2]='6 ') and (as[2,3]='7 ') and (as[2,4]='8 ')

and (as[3,1]='9 ') and (as[3,2]='10') and (as[3,3]='11') and (as[3,4]='12')

and (as[4,1]='13') and (as[4,2]='14') and (as[4,3]='15') and (as[4,4]=' ')

then

begin

prov:=true; {Если табло разложено верно, то ИСТИНА}

OutTextXY(230,100,'Congratulate You have won');

Mesto; {Процедура, устанавливающая на каком месте текущий пользователь}

end;

end;

procedure Game15;

{Подключение графики и переход в режим ИГРЫ}

var grMode:integer; {Режим работы видеосистемы}

grPath:string; {Путь к файлу}

grDriver:integer;{Используемый программой драйвер видеоадаптера}

begin

hod:=0;

grDriver:=VGA;

grmode:=VGAHi;

grPath:='EGAVGA.BGI';

initGraph(grDriver, grMode,grPath); {Инициализация графического режима}

Tablo; {Формирование табло}

Poisk; {Поиск пустого элемента}

repeat {Цикл, пока не нажата клавиша ESC или пока игрок не победил играть}

Zamena; {Передвижение в массиве}

proverka; {Проверка является ли данный расклад верным}

until (ord (ch)=27) or (prov=true);

closeGraph; {Закрытие графического режима}

end;

procedure help;

{Переход в режим справки}

var f: text; {Файловая переменная}

g1:string; {Переменная для работы со строками в файле}

begin

clrscr;

assign(f,'fhelp.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);

writeln('For leaving press ENTER');

readln;

close(f);{Закрытие файла}

end;

procedure result;

{Отображение лучших игроков}

begin

clrscr;

GoToXY(26,5);

writeln('Best players');

assign(f,'res.txt');

reset(f);

readfile; {Считывание информации из файла лучших результатов}

{Вывод на экран в строгом порядке имена и результаты лучших игроков}

GoToXY(26,8); write('Move Name');

GoToXY(26,10); write(it[1]);GoToXY(36,10); writeln(res[1]);

GoToXY(26,11); write(it[2]);GoToXY(36,11);writeln(res[2]);

GoToXY(26,12); write(it[3]);GoToXY(36,12);writeln(res[3]);

GoToXY(26,13); write(it[4]);GoToXY(36,13);writeln(res[4]);

GoToXY(26,14); write(it[5]);GoToXY(36,14);writeln(res[5]);

GoToXY(26,15); write(it[6]);GoToXY(36,15);writeln(res[6]);

GoToXY(26,16); write(it[7]);GoToXY(36,16);writeln(res[7]);

GoToXY(26,17); write(it[8]);GoToXY(36,17);writeln(res[8]);

GoToXY(26,18); write(it[9]);GoToXY(36,18);writeln(res[9]);

GoToXY(26,19); write(it[10]);GoToXY(36,19);;writeln(res[10]);

GoToXY(26,23);writeln('For leaving press ENTER');

readln;

end;

procedure avtor;

{Вывод общей информации на экран в раздел описание }

var f: text; {Файловая переменная}

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 – конец игры

54

Характеристики

Тип файла
Документ
Размер
15,35 Mb
Тип материала
Учебное заведение
Неизвестно

Список файлов курсовой работы

Свежие статьи
Популярно сейчас
Почему делать на заказ в разы дороже, чем купить готовую учебную работу на СтудИзбе? Наши учебные работы продаются каждый год, тогда как большинство заказов выполняются с нуля. Найдите подходящий учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6439
Авторов
на СтудИзбе
306
Средний доход
с одного платного файла
Обучение Подробнее