Javascript-форум (https://javascript.ru/forum/)
-   Работа (https://javascript.ru/forum/job/)
-   -   Скрипт распределения очков (https://javascript.ru/forum/job/75091-skript-raspredeleniya-ochkov.html)

DenisBTCC 01.09.2018 22:34

Скрипт/программа распределения очков
 
Вложений: 1
Приветствую Всех!
Работа оплачивается. Если есть специалисты, готов обсудить детали.

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

Есть 6 зачетов с разной системой начисления очков и правилами их начисления, как пример, похожую таблицу можно увидеть здесь: http://www.btcc.net/standings/drivers/ - Там 7 зачетов.
Или здесь внизу такие таблицы: https://en.wikipedia.org/wiki/2009_B...r_Championship

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

Как пример, эта таблица в виде макета прикреплена к сообщению.

Готовая версия нужна для моего сайта, использоваться будет здесь:
http://www.btcc.ru/results/standings/

Один человек с форума начал делать в правильном направлении, но не смог осилить, вот его получившийся результат:
http://next.plnkr.co/edit/y6ajLWxIlkX97cjf?preview

laimas 02.09.2018 00:54

Цитата:

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

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

DenisBTCC 02.09.2018 01:14

Цитата:

Сообщение от laimas (Сообщение 493798)
Что и на основе чего считать не понятно, но это уже мелочи и просто вывод.

Подробности начисления очков в турнирной таблице и схема начисления очков содержится в таблице "points.zip"

laimas 02.09.2018 01:26

Это таблица, а ТЗ на работу должно описывать все - кто и что вводит, по какой формуле что из с чего считается и т.д.

DenisBTCC 02.09.2018 01:36

Цитата:

Сообщение от laimas (Сообщение 493801)
Это таблица, а ТЗ на работу должно описывать все - кто и что вводит, по какой формуле что из с чего считается и т.д.

Я постарался сделать таблицу как раз максимально полной и понятной в качестве образца. Там нет никаких сложных формул, это обычная турнирная таблица, как в большинстве соревнований, что в автогонках, что в биатлоне.
Проходит первая гонка, я пишу финишные позиции всех участников первой гонке (кто каким доехал), а скрипт уже должен считать - кто сколько набрал очков в разных зачетах согласно системе начисления очков.

laimas 02.09.2018 02:11

DenisBTCC,
такие данные хранят в базе, причем турниры это время. Кто-то вводит/редактирует эти данные в базе, а сервер их просто выводит, при этом сразу делая какой-то расчет. То есть нужно управление этими данными на стороне сервера.

В противном случае зачем вам расчеты, вписывайте сразу итоги в кокой-то html шаблон и выводите.

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

DenisBTCC 02.09.2018 15:01

Цитата:

Сообщение от laimas (Сообщение 493803)
DenisBTCC,
такие данные хранят в базе, причем турниры это время. Кто-то вводит/редактирует эти данные в базе, а сервер их просто выводит, при этом сразу делая какой-то расчет. То есть нужно управление этими данными на стороне сервера.

Мне принципиально не важно, кокой именно будет механизм обработки результатов, программа это будет делать или сервер, или скрипт, или что-то еще, все что нужно для работы, я могу предоставить.

Цитата:

Сообщение от laimas (Сообщение 493803)
В противном случае зачем вам расчеты, вписывайте сразу итоги в кокой-то html шаблон и выводите.

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

Цитата:

Сообщение от laimas (Сообщение 493803)
ТЗ - это описание того что у вас имеется, имеется база из нее нужно получить их, рассчитать и вывести или же ничего не имеется и нужно сделать А, Б, И, .... Ваша же таблица, это просто табличные данные, а кто, во что и что должен вводить, как это все управляется само собой?

У меня есть хостинг: https://hc.ru/ru/services/hosting/virtual - 210 руб/в. мес который, за MySQL, PostgreSQL, PHP, Python, Perl. Если нужно что-то еще, не вопрос.
И готовый сайт: http://www.btcc.ru/results/standings/
Все, что мне необходимо на данный момент: это программа/скрипт или какой-то другой механизм, который будет автоматически генерировать количество очков во всех зачетах, а все, что нужно будет делать мне, это редактировать финишные позиции каждого участника в каждой гонке. Пример подсчета, я предоставил.

laimas 02.09.2018 16:54

Вам хочется некий костюм, которого нет среди предложений у портного. Если вы скажете портному, что вам нужен костюм с карманами, сможет ли он догадаться, что вам именно нужно? :)

Что-то там посчитать, о чем вы пишите, это и есть карманы костюма, всего лишь деталь его. И таблицы это только некие данные, но откуда? А вы ведь пишите о возможности что-то вносить, а во что и кому?

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

В этой же базе имеется основная таблица, которая описывает турниры, причем турниры имеют названия (Пофигист 2017, Пофигист 2018, ...), место, дату/даты проведения турниров.

Через административный раздел мы вносим в эту таблицу данные о новом турнире - Пофигист 2019, который пройдет в Бердичеве с 5 по 17 февраля, при этом каждая запись о турнире также имеет свой уникальный идентификатор. По этому идентификатору мы заполняем связанную таблицу прохождения турниров, в которую вносятся и id пофигистов которых мы выбираем из списка имеющихся в базе пофигистов. А еще в одну таблицу будут писаться результаты проведения тура за каждый день.

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

Если у вас нечто фиксированное, не изменяемое, то есть всегда "три пофигиста", где они и когда собираются не важно, а важна только таблица, то так нужно и описывать - что есть таблица:

Федя какие-то циферки в столбцах
Коля какие-то циферки в столбцах
Петя какие-то циферки в столбцах

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

DenisBTCC 11.09.2018 02:16

Спасибо за внимание! Тему можно удалять, вопрос решен.


Часовой пояс GMT +3, время: 06:38.