Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемВасилий Каврайский
2 Список задач
3 Задача
4 Проверка решения
5 Система DCES Клиентская часть Серверная часть Плагин на Java Плагин на php
6 Система DCES Общие компоненты для всех соревнований: Регистрация пользователей Передача данных Шифрование данных в процессе обмена Сообщения об ошибках И другое
7 Плагин клиенской и серверной части Клиентский плагин Отображение задачи Возможность ввода решения Передача решения Прием ответа от сервера и реакция на него Серверный плагин Проверка решения участника
8 Процесс разработки клиентского плагина Разработка плагина клиента с использованием подключенного DCES API Отладка его с помощью эмулятора
9 Методы плагина стороны клиента //плагин должен вернуть JPanel, на котором он рисуется public JPanel getPanel(); //вызывается, когда пользователь переключается на плагин public void activate(); //Вызывается, когда пользователь переключается с этого плагина на какой-то другой public void deactivate(); } //Установить заголовок задачи. Заголовки задач чаще всего располагаются на кнопках выбора задач public void setTitle(String title); //Посылка решения участника и получение ответа. Ответ и решение имеют тип HashMap. Плагины стороны клиента и сервера сами определяют, что содержится в этих HashMap. Метод бросает исключение, если отослать решение не удалось. Плагин не должен говорить пользователю, что что-то не так, система сама отображает всю информацию об ошибках. Плагин должен лишь принять к сведенью факт, что решение не было отослано public HashMap submitSolution(HashMap solution) throws GeneralRequestFailureException; //Это каталог, в котором хранится условие задачи. Условие автоматически //загружается с сервера. Плагин сам ответственен за //содержимое этого каталога, и должен знать в каких файлах какую информацию искать. //Писать или читать что-то вне этого каталога крайне не рекомендуется public File getProblemFolder(); //Каждая задача имеет имя, установленное при настройке контеста. Метод возвращает имя задачи. public String getProblemName();
10 Клиентский плагин Отсылает "answer" => Получает в ответ "result"=>"accepted" "result"=>"wrong answer" Получает в ответ "result"=>"accepted" "result"=>"wrong answer"">
11 Отладка плагина public class TestPlugin { public static void main(String[] args) { //создаем эмуляцию сервера //создаем эмулятор сервера ServerPluginEmulator serverEmulator = new MYServerPluginEmulator(); //создаем окно для отладки PluginBox box = new PluginBox( Main.class, //класс с отлаживаемым плагином serverEmulator, "Задача"); //делаем так, чтобы после закрытия окна программа закрывалась box.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //показываем окно на экране box.setVisible(true); }
12 Отладка плагина Состав класса MYServerPluginEmulator(); Правильный ответ Имя папки с заданием для вывода Сравнение полученного ответа от плагина с верным Генерация ответа плагину обратно
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.