Главная / Проекты и исследования / Система для Брейн-ринга
В 2017-2021 годах я обучался в Круглогодичной очно-заочной школе для одарённых детей, учредителем которой являлся Институт развития образования Омской области. Обучался я по специальности «информатика». Первое, с чего мы начали изучение программирования — язык Python 3, а преподавал нам его Сергей Викторович Савченко.
Где-то в седьмом классе я решил принять участие в научно-исследовательской деятельности. Посоветовавшись со своим преподавателем (естественно, ШкОД-овским), я начал изучать библиотеку Pygame, которая позволяет создавать разного рода игры на Python 3. Поскольку в ту пору по телевидению (а именно по НТВ) показывали игру «Брейн-ринг», я решил написать программу для её проведения.
Вкратце расскажу, что из себя эта игра представляет. Между собой соревнуются две команды примерно по шесть человек. Ведущий задаёт вопрос, затем запускается таймер. Какая команда первой нажмёт свою кнопку, та и отвечает. Чем-то напоминает «Что? Где? Когда?», только команды соревнуются не только в эрудиции и логике, но и в скорости.
В процессе разработки всё шло более-менее гладко, но возникло несколько довольно трудных вопросов. Во-первых, кнопки. Этот вопрос решился довольно быстро: кнопки мы сделали из двух беспроводных мышей, которые были помещены в пластиковый корпус стандартного образца и покрашены в цвета команд: красный и зелёный. Второй вопрос был гораздо более сложным. Игра требовала два экрана. На конференци 24 апреля 2018 года, где эта программа была представлена, эта проблема была решена при помощи довольно сложнореализуемого костыля, поскольку по времени и месту совпало несколько условий:
Если бы не эти условия, быть может, пришлось что-то мудрить. Это привело к созданию нескольких вариантов программы.
На конференции, однако, вскрылась ещё одна трудность: дело в том, что в одной
из версий программы отсчёт запускался в отдельном потоке, а поскольку компьютер
для демонстрации был очень медленный, то и отсчёт шёл медленно. Проблема была
решена введением специального модуля timer.
Хоть эта программа дальше районного уровня и не пошла, я получил бесценный опыт разработки программного обеспечения. Правда, по современным меркам, разработка была далека от идеала: как минимум, не присут
Исходный код: https://codeberg.org/danila-kondr/brainring
Коды старых версий программы: