Snake App is developed with RMI
Написать распределенное клиент-серверное приложение, используя указанную технологию распределенной объектной обработки. Приложение реализует игру «Змейка» со следующими правилами:
- в игре присутствует один игрок-пользователь;
- пользователь управляет движущимся объектом (змейкой);
- змейка выполняет задания серверного приложения (например, пересечь заданную точку на экране, выполнить заданную траекторию, и т.д.);
- при успешном выполнении задания игрок получает некоторый гешефт (например, змейка увеличивается, игрок получает баллы, и т.д.)
- игра прекращается при нарушении некоторых ограничений игры (например, выход за границу игрового поля, пересечение змейкой самой себя, и т.д.).
Вариант 2. Технология RMI.
- Десктоп приложение
- Начальный экран - Начать игру, Достижения, Выход
- Достижения - таблица с временем, очками и длинной змейки (Топ 10 игр)
- Игра:
- движение осуществляется с помощью клавиатуры
- первое движение начнется после нажатия кнопки направления на клавиатуре
- На карте переодически будут размещаться <Фрукты>, сьев которые зменя увеличивается и получает очки (чем быстрее, тем больше)
- ход осуществляется по таймеру, в течение хода необходимо нажать на клавишу для выбора направления (если нужно) и на следующем ходу змейка повернет
- Игра завершается, если : выход за границу игрового поля, пересечение змейкой самой себя (и возможно блоки препядствий)
- Пользователь может досрочно завершить игру, нажав кнопу "Завершить" или Esc
- На экране будет присутствовать счетчик очков
- Справка по игре будет доступна в верхнем углу начального экрана. Так же краткий гайд будет размещен под игровым полем на экране игры
Внутренняя организация: Технология RMI
Просчитывание ходов происходит на сервере, отображение на клиенте. Сначала клиент получает карту и начальные параметры с сервера. После начала игры клиент по таймеру в конце каждого интервала отправляет действия пользователя на сервер (даже если их не было). Сервер же, действую по типу автомата, меняет свое состояние, посчитывает следующее положение и возвращает его. Сервер также может возвращать расположение доп обьектов - фруткы (стены, мб).0 В случае достижения условий завершения игры сервер возвращает признак ошибки с описанием.
Исключительные ситуации:
При нажатии начать игру на начальном экране сервер не вернул начальные данные (перестал отвечать, недоступен) - сообщение пользователю, что сервер не доступен. Аналогично при ререходе на вкладку достижения При игре сервер вернул ошибку или перестал отвечать - сообщение пользователю об этом и досрочное завершение игры.
Начальные данные: 21*21 размер поля. Змейка посередине