Меню сайта
Форма входа

Категории раздела
Уроки по созданию игр [38]
Программирование игр разной сложности
Игровые алгоритмы [24]
Алгоритмы, которые уже реализованы для разных жанров игр
Графика [5]
Учимся работать с графикой в Делфи
Мультимедиа [3]
Работа с мультимедийными возможностями Делфи
Другие статьи [18]
Статьи не вошедшие не в один из разделов
Ошибки [4]
Всевозможные ошибки и пути их решения
Понедельник, 29.04.2024, 16:24
Приветствую Вас Гость

Статьи по программированию

Главная » Статьи » Игровые алгоритмы

Как создать рейтинг игроков?

Как создать рейтинг игроков?

 

Когда у Вас функциональная часть игры уже готова, то часто возникает необходимость создать рейтинг игроков. Это делается для того, чтобы пользователи проходили игру много раз стараясь побить чей-то рекорд. Таким образом, игра станет более востребованной. А поскольку дольше будут играть в Вашу игру, то и привыкать к ней будут тоже больше. Так, что для Вас – разработчиков, это идет только на пользу.

 

Перед тем, как создавать сам рейтинг необходимо собрать нужную информацию о игроке. Например, это может быть: имя игрока, количество набранных очков, дата игры, сложность игры, затраченное время на игру и много другое. Для этого нужно создать переменные, которые будут постоянно хранить в себе эту информацию о игроке. Например:

 

Var

Score, Level,Vremya:Integer;

Nick:String;

Data:TDateTime;

 

Далее в эти переменные заносятся сами данные. Мы на этом особо зацикливаться не будем. Там нет ничего сложного – просто присваиваем значения типа:

 

Nick:=Edit1.text;

 

В данном случае мы взяли имя игрока из компонента эдит и присвоили это имяв переменную. Итак, будем считать что игра закончена и вся информация собрана и присвоена. Далее наступает время создать окно с нашим рейтингом.

 

Для этого просто добавьте новую форму в проект и расположите на форме один из компонентов Stringgrid, ListBox, Memo. В каждом из этих компонентов можно отображать информацию по строкам. Но компонент Stringgrid позволяет еще и представить информацию в виде таблицы. Поэтому, я предлагаю, остановиться именно на нем.

 

Допустим, компонент уже находится на новой форме. В свойстве формы Caption напишите ее заголовок типа «Рейтинг игроков». Далее в событии таблицы fixedCols напишите 0. Таким образом у нас будет выделена только первая строка. В ней будут храниться заголовки столбцов. Теперь определитесь сколько информации будет хранится и отображаться в рейтинге. Например, мы решили так: Имя игрока, количество набранных очков, время затраченное на игру, сложность и дата. Таким образом получается 5 столбцов. Значит в событии таблицы ColCount напишите 5.

 

Теперь нам нужно определить где мы будем хранить наши данные о всех игроках. Лучше всего это хранить в файле. Например, в текстовом файле или базе данных. Мы рассмотрим первый вариант. Создайте пустой текстовый документ и назовите его “reyting.txt”и положите в папку с игрой. После завершения игры вы должны загрузить этот рейтинг например в мемо. При этом не забыайте его очищать перед загрузкой. И обязательно поставте прокрутку, иначе ваши строки будут обрезаться. Поставьте свойство ScrollBars в значение ssBoth. После того, как загрузили в него данные из файла допишите далее данные о новом игроке и только после этого пересохраните этот файл. В итоге у Вас получится примерно следующий код:

Memo1.lines.clear;

Memo1.lines.loadfromfile(‘reyting.txt’);

Memo1.lines.add(Nick);

Memo1.lines.add(inttostr(Score));

Memo1.lines.add(inttostr(Vremya));

Memo1.lines.add(inttostr(Level));

Memo1.lines.add(Datetostr(Data));

Memo1.lines.saveFromfile(‘reyting.txt’);

 

Далее при открытии формы с нашим рейтингом все данные должны загрузиться и отобразиться в таблицу. Для этого при клике кнопки «Рейтинг» прописываем следующее:

 

Form2.Memo1.lines.clear;

Form2.memo1.lines.loadfromfile(‘reyting.txt’);

 

Так мы загрузили данные. Теперь давайте получим столько строк с игроками у нас должно быть. Для этого кол-во строк в мемо нужно разделить на 5 (количество столбцов). И иногда нужно еще добавить единицу (если в файле в конце пустая строка появляется).

 

Stroki:=form2.memo1.lines.count div 5;

Form2.stringgrid1.RowCount:=Stroki;

 

После всего выше сказанного, начинаем расставлять данные в таблице следующим образом

 

For j:=0 to Stroki-1 do

Begin

  Form2.Stringgrid1.cells[0,j+1]:=form2.memo1.lines.strings[j*5];

  Form2.Stringgrid1.cells[1,j+1]:=form2.memo1.lines.strings[j*5+1];

  Form2.Stringgrid1.cells[2,j+1]:=form2.memo1.lines.strings[j*5+2];

  Form2.Stringgrid1.cells[3,j+1]:=form2.memo1.lines.strings[j*5+3];

  Form2.Stringgrid1.cells[4,j+1]:=form2.memo1.lines.strings[j*5+4];

End;

 

Теперь все данные расставлены в таблице, но еще есть необходимость написать заголовки столбцов делаем это следующим образом:

 

  Form2.Stringgrid1.cells[0,0]:=’Имя’;

  Form2.Stringgrid1.cells[1,0]:=’Кол-во Очков’;

  Form2.Stringgrid1.cells[2,0]:=’Время’;

  Form2.Stringgrid1.cells[3,0]:=’Сложность’;

  Form2.Stringgrid1.cells[4,0]:=’Дата’;

 

Ну и в общем все. Ваш рейтинг готов. Единственній недостаток – это отсутсвие сортировки по количеству набранных очков. Но мы с Вами испраим этот недостаток в следующей статье. А я на этом прощаюсь с Вами. До новых встречь и удачи в Ваших начинаниях по созданию игр!

 

Автор: Виталий Соколов

Источник: delgame.at.ua

Категория: Игровые алгоритмы | Добавил: Armageddets (21.02.2015) | Автор: Как создать рейтинг игроков?
Просмотров: 1365 | Теги: создание игр, таблица в делфи, Как создать рейтинг игроков | Рейтинг: 1.0/1
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Наш опрос
Какие уроки по созданию игр Вам удобнее?
Всего ответов: 141
Мини-чат
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0