Читаем Adobe Flash. Создание аркад, головоломок и других игр с помощью ActionScript полностью

#!/usr/bin/perl

# Устанавливаем метку для текстового документа,

# получаемого на выходе.

print "Content-type: text/html\n\n";

# Указываем имя файла, содержащего базу данных.

$filename = "highscore.txt";

# Просматриваем записи базы данных.

open(DATABASE,$filename) || exit;

@score_text = ;

close(DATABASE);

Затем программа подсчитывает, какое время (в секундах на сервере) было ровно семь дней назад.

# Определяем время на сервере.

$server_time = time;

# Выясняем, как долго сохранять полученные результаты.

# (7 дней * 24 часа * 60 минут * 60 секунд)

$keep_time = 7*(24*60*60);

Теперь база данных открыта и готова для записи. Старый файл перезаписывается с учетом новых данных.

# Открываем базу данных для перезаписи. open(DATABASE,">" . $filename) || exit;

Следующий цикл проверяет каждую запись и определяет, как давно она была внесена в базу данных. Если запись устарела, то она не переписывается в новый файл.

# Просматриваем каждую запись.

foreach $score_line (@score_text) {

# Получаем данные о набранных очках.

@score_item = split(/&/,$score_line);

# Определяем время занесения результата.

$score_time = $score_item[2];

# Если запись не устарела, переписываем ее в новый файл.

if ($score_time > ($server_time-$keep_time)) {

print DATABASE "$score_line";

}

}

# Закрываем базу данных.

close(DATABASE);

Далее программа сортирует результаты игры. Так как в начале каждой строки базы данных содержатся набранные очки, именно по ним упорядочиваются записи, от лучшего результата игры к худшему.

# Упорядочиваем набранные очки. @score_text = sort { $b <=> $a } @score_text;

Следующий цикл отбирает первые десять результатов и выдает их как выходные данные. Каждый элемент строки специальным образом форматируется. Эта строка выглядит, например, следующим образом: «1.Gary 967». После номера строки ставится точка. Затем идет имя игрока: если оно содержит меньше 18 символов, оставшееся место заполняется пробелами. Далее выводятся набранные игроком очки – они выравниваются по правому краю, и если число цифр меньше девяти, то свободные места с левой стороны также заполняются пробелами.

# Определяем число результатов,

# которые программа отошлет как выходные данные.

$num_scores = 10;

$score_count = 1;

# Просматриваем первые записи и отправляем данные.

print "highScoresText=";

foreach $score_line (@score_text) {

# Прочитываем записанные данные и создаем массив.

@split_data = split("&",$score_line);

# Выводим номер строки с точкой после него.

printf("%2i. ", $score_count);

# Выводим имя игрока, выравниваем по левому краю, оставшиеся

# свободные места до 18 символов заполняем пробелами.

printf("%-18s ",$split_data[1]);

# Выводим набранные очки, выравниваем по правому краю,

# оставшееся слева место до девяти символов заполняем

# пробелами.

printf("%9i\n",$split_data[0]);

$score_count++;

if ($score_count > $num_scores) { last; }

}

# Выходим из программы.

exit;

Если вы прежде программировали только на Flash и никогда раньше не сталкивались с Perl, вам будет достаточно сложно писать программы на этом языке. Можете не беспокоиться по этому поводу, потому что обычно подобные проекты разрабатываются двумя программистами совместно: один из них владеет языком Flash, другой – Perl. Если возможно, постарайтесь с кем-нибудь объединиться.

Демонстрация списка лучших игроков

Исходный файл: Highscores.fla

На Web-сайте надо разместить две программы, с помощью которых и будет формироваться список лучших игроков. Первая программа представляет собой демонстрационный ролик, показывающий, как набранные очки заносятся в базу данных и как они затем из нее извлекаются.

Перейти на страницу:

Похожие книги

Основы программирования в Linux
Основы программирования в Linux

В четвертом издании популярного руководства даны основы программирования в операционной системе Linux. Рассмотрены: использование библиотек C/C++ и стан­дартных средств разработки, организация системных вызовов, файловый ввод/вывод, взаимодействие процессов, программирование средствами командной оболочки, создание графических пользовательских интерфейсов с помощью инструментальных средств GTK+ или Qt, применение сокетов и др. Описана компиляция программ, их компоновка c библиотеками и работа с терминальным вводом/выводом. Даны приемы написания приложений в средах GNOME® и KDE®, хранения данных с использованием СУБД MySQL® и отладки программ. Книга хорошо структурирована, что делает обучение легким и быстрым. Для начинающих Linux-программистов

Нейл Мэтью , Ричард Стоунс , Татьяна Коротяева

ОС и Сети / Программирование / Книги по IT
97 этюдов для архитекторов программных систем
97 этюдов для архитекторов программных систем

Успешная карьера архитектора программного обеспечения требует хорошего владения как технической, так и деловой сторонами вопросов, связанных с проектированием архитектуры. В этой необычной книге ведущие архитекторы ПО со всего света обсуждают важные принципы разработки, выходящие далеко за пределы чисто технических вопросов.?Архитектор ПО выполняет роль посредника между командой разработчиков и бизнес-руководством компании, поэтому чтобы добиться успеха в этой профессии, необходимо не только овладеть различными технологиями, но и обеспечить работу над проектом в соответствии с бизнес-целями. В книге более 50 архитекторов рассказывают о том, что считают самым важным в своей работе, дают советы, как организовать общение с другими участниками проекта, как снизить сложность архитектуры, как оказывать поддержку разработчикам. Они щедро делятся множеством полезных идей и приемов, которые вынесли из своего многолетнего опыта. Авторы надеются, что книга станет источником вдохновения и руководством к действию для многих профессиональных программистов.

Билл де Ора , Майкл Хайгард , Нил Форд

Программирование, программы, базы данных / Базы данных / Программирование / Книги по IT
Программист-прагматик. Путь от подмастерья к мастеру
Программист-прагматик. Путь от подмастерья к мастеру

Находясь на переднем крае программирования, книга "Программист-прагматик. Путь от подмастерья к мастеру" абстрагируется от всевозрастающей специализации и технических тонкостей разработки программ на современном уровне, чтобы исследовать суть процесса – требования к работоспособной и поддерживаемой программе, приводящей пользователей в восторг. Книга охватывает различные темы – от личной ответственности и карьерного роста до архитектурных методик, придающих программам гибкость и простоту в адаптации и повторном использовании.Прочитав эту книгу, вы научитесь:Бороться с недостатками программного обеспечения;Избегать ловушек, связанных с дублированием знания;Создавать гибкие, динамичные и адаптируемые программы;Избегать программирования в расчете на совпадение;Защищать вашу программу при помощи контрактов, утверждений и исключений;Собирать реальные требования;Осуществлять безжалостное и эффективное тестирование;Приводить в восторг ваших пользователей;Формировать команды из программистов-прагматиков и с помощью автоматизации делать ваши разработки более точными.

А. Алексашин , Дэвид Томас , Эндрю Хант

Программирование / Книги по IT