Табло/учетка для спортивных/интеллектуальных игр

Планы, идеология, архитектура и т.п.

Модератор: Модераторы

Табло/учетка для спортивных/интеллектуальных игр

Сообщение Ichthyander » 27.09.2020 13:35:53

Электронное табло для спортивных/интеллектуальных игр, разбитые на 3 раунда по 11 вопросов (или состязаний). Функционал адаптирован для отображения на мониторе-табло и одновременного учета баллов.
Использованы библиотеки Zeos и rxLib (OPM-версии). Транковый Lazarus 2.1.0

Исходники https://github.com/Al-Muhandis/tournament
Бинарники https://github.com/Al-Muhandis/tournament/releases/
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 685
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Seenkao » 27.09.2020 18:30:00

Наверно стоит потренироваться и изучить хотя бы массивы дополнительно.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Ichthyander » 27.09.2020 18:39:35

Seenkao писал(а):Наверно стоит потренироваться и изучить хотя бы массивы дополнительно.

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

А по делу, если так реализовывать, то не очень хорошо получилось бы сделать лукап поля. Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 685
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Seenkao » 27.09.2020 19:35:43

Ichthyander, всё же стоит понимать что вам пишут а не читать выборочно. В моём словосочетании есть слова: "хотя бы".

И, я думаю, не стоит забывать, что люди тратят своё время, на то, чтоб посмотреть ваш код. Не задумывались, что у этих людей есть свои дела? Если бы меня это интересовало, я бы занялся. Меня это не интересует.

Мой совет либо стоит принять, либо не стоит. Ваше право!

И, да, в моём лазарусе ваш проект не открылся. Возможно у многих так.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Ichthyander » 27.09.2020 20:44:22

Seenkao писал(а):И, я думаю, не стоит забывать, что люди тратят своё время, на то, чтоб посмотреть ваш код.

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

"Не открывается", потому что у вас Лазарус 2.0.10 или ниже, а в топике обозначил, что Лазарус использовался транковый.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 685
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Seenkao » 27.09.2020 21:52:42

я поделюсь с вами "секретом".

вместо:
Код: Выделить всё
MyBool01 := true;
MyBool02 := true;
MyBool03 := true;
...
MyBool77 := true;


вполне можно использовать такой код:
Код: Выделить всё
var
  MyBool: array[1..77] of boolean;
procedure ....
begin
  for i := 1 to 77 do
    MyBool[i] := true;
end;


а так же, если вы знаете, что у вас все значения булевы, то можно сделать более "проще" (сложнее для понимания), все булевы значения "заворачиваются" в Byte, Word или LongWord и используются их биты.

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

Успехов!
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Ichthyander » 27.09.2020 22:35:08

Ну раз уж так, то я попробую разжевать. Мне не жалко до Вас своего времени.
Итак, еще раз:
И там не массивы уж, а саму структуру можно было выстроить чуть по-другому. К примеру, сделать отдельную таблицу вопрос-турнир.
... ... Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.
... ... если так реализовывать, то не очень хорошо получилось бы сделать лукап поля. Именно в случае формошлепства и визуальными компонентам в дизайнере форм. В случае динамического создания я бы изменил структуру БД и использовал бы ОРМ.

А что Вы мне приводите не к месту пример использования статического массива, да еще объявленного внутри процедуры :D Вы конечно показали, что Вы знаете, что такое массив, по крайней мере, статический. ну Ok. Но советую Вам "хотя бы" изучить что-то более интересное, что еще существуют еще хешированные списки и дженерики на основе их и так далее. Откроете массу чего полезного.
Таким образом, ваш пример снова бесполезен: с какого заполнять одинаковыми значениями статический массив, объявленный в этой же процедуре? Вы не заметили из кода, что это поля типа TBooleanField, которые были созданы в конструкторе форм (DesignTime)? Но я попробую Вам помочь: если непременно хотелось бы использовать цикл (ведь для этого Вам захотелось заюзать массивы?), то возможно стоило бы создавать эти поля TBooleanField не в конструкторе, а динамически в RunTime. Еще можно было бы использовать rtti (советую Вам "хотя бы" и это изучить :0 ) для того, чтобы пробежаться по списку полей типа TBooleanField. Но все это дорогой "эксперт по массивам" либо усложнило/(удлинило бы время написания) код и пришлось бы отказаться от магии коснтруктора форм и его экономии времени. ПОвторюсь, если бы не конструктор сайта, я бы сделал бы даже структуру базы данных более нормализованной, в которой бы не были бы представлены в таком виде поля "q1", "q2", "q3" и т.д, так что даже в цикле не было бы необходимости.

Добавлено спустя 10 минут 21 секунду:
а так же, если вы знаете, что у вас все значения булевы, то можно сделать более "проще" (сложнее для понимания), все булевы значения "заворачиваются" в Byte, Word или LongWord и используются их биты.

:facepalm, а Вам с базами данных приходилось работать? И для чего и ради чего такие извращения? Когда же у меня реально есть необходимость упаковывание набора битов, то я использую к примеру, класс TBits, а не эти превращения, увеличивающие, как ни странно, совершенно правильно Вами замечено, сложность с заворачиваниями в другие типы.
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 685
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Seenkao » 27.09.2020 22:49:03

"эксперт по массивам"
- довольно странно что большую часть работы с базами данных и прочей фигнёй ко мне ни кто до сих пор не обратился... :(
либо усложнило/(удлинило бы время написания) код
- видимо в этом весь и вопрос. "Ctrl + C" и "Ctrl +V" всё решили.
Seenkao
энтузиаст
 
Сообщения: 526
Зарегистрирован: 01.04.2020 03:37:12

Re: Табло/учетка для спортивных/интеллектуальных игр

Сообщение Ichthyander » 17.03.2022 21:24:45

Обновил программу для ведения тренировок и игр любителей ЧГК. Добавил показ раздаточных материалов на экране, а также трансляцию счета в телеграм канал/группу или чат

2022-03-17_20-59-48.jpg


Добавлено спустя 30 минут 48 секунд:
https://github.com/Al-Muhandis/chgk ссылку забыл оставить
Аватара пользователя
Ichthyander
энтузиаст
 
Сообщения: 685
Зарегистрирован: 04.04.2007 08:32:43
Откуда: Астрахань


Вернуться в Разработки на нашем сайте

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru
cron