Головоломки Flash

         

Если запись не устарела, переписываем


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_Iine";

# Закрываем базу данных. close(DATABASE);

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

# Упорядочиваем набранные очки.

@score_text = sort { $b $а } @score_text;

Следующий цикл отбирает первые десять результатов и выдает их как выходные данные. Каждый элемент строки специальным образом форматируется. Эта строка выглядит, например, следующим образом: "l.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[l]);

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

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

# пробелами.

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

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

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

exit;

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


Содержание раздела