wiki:UseCaseImplementations

Version 2 (modified by 231102, 5 weeks ago) ( diff )

--

UseCasePrototypeImplementation

Изворниот код е достапен тука.

На следната табела се прикажани сработените кориснички сценарија:

ID Use Case
1 Најава со Google
2 Креирање корисничко име
3 Избор на игра
4 Избор на класа
5 Барање на противник (Queue)
6 Борба (Real-time)
7 Преглед на Лидер табла
8 Управување со пријатели
9 Е-пошта известувања за пријатели
10 Преглед на статистика

ИД: 1 - Најава со Google

Пристап до почетната страница каде што системот го пренасочува кон Google OAuth сервисот каде корисникот ја избира својата сметка.

oAuth проверката за успешност, покрај креденцијалите кои се доделини од Google ги проверува и самата апликација. Притоа доколку е успешна најавата се креира нов корисник во базата на апликацијата.

ИД: 2 - Креирање корисничко име

Доколку корисникот се најавува прв пат, системот го пренасочува кон формата за креирање на уникатно корисничко име.

По успешно внесување на име кое не е зафатено, корисникот се пренасочува кон почетната страна.

ИД: 3 - Избор на игра

Изборот на игра се случува пред изборот на класа бидејќи секоја игра си има свои класи.

No image "choose_game_img.jpg" attached to UseCaseImplementations

За пренос на страната се користи мапирање до патеката /fight/choose-game

No image "choose_class.jpg" attached to UseCaseImplementations

ИД: 4 - Избор на класа

Во "Fight Lobby" делот, корисникот има можност да избере помеѓу достапните класи (херои), како што се Samurai Mack или Kenji.

Со клик на иконата или името на класата, системот го евидентира изборот и ги прикажува статистиките (Health, Damage, Speed) за избраниот херој. Изборот на класата е подоцна значаен во самиот queue за поврзување на играчите.

ИД: 5 - Барање на противник (Queue)

Откако ќе избере класа, корисникот клика на копчето "Find Match". Корисникот се префрла на екран за чекање додека системот бара соодветен противник.

Штом се најде противник, системот автоматски ги пренасочува двајцата играчи кон арената.

Имплементацијата за самиот queue го изведуваме во алгоритам кој го зема во предвид не само избраната класа на играчот, туку и избраната игра. Ова е битно затоа што системот мора да провери дали дадени играчи ја имаат избрано истата игра (играч 1 да избере бокс, играч 2 да избере карате).

No image "queue_1.jpg" attached to UseCaseImplementations No image "queue_2.jpg" attached to UseCaseImplementations

ИД: 6 - Борба (Real-time)

По успешно поврзување, се вчитува арената (fight.html). Двајцата играчи се видливи на екранот со нивните Health барови.

Корисниците ја користат тастатурата за движење и напад. Сите акции се синхронизираат во реално време преку WebSockets.

Кога здравјето на еден од играчите ќе падне на нула, се прикажува порака за крај на мечот (Game Over) и победникот.

Имплементацијата за вчитување на анимациите и движењата на играчите се поставено во логиката на клиентска frontend страна.

No image "movement.jpg" attached to UseCaseImplementations No image "movement_1.jpg" attached to UseCaseImplementations

ИД: 7 - Преглед на Лидер табла

Постои можност за филтрирање на табелата според различни критериуми.

Со избирање на опцијата "Leaderboard" од менито, корисникот добива листа на најдобро рангираните играчи сортирани според бројот на победи.

Истата имплементација се наога:

ИД: 8 - Управување со пријатели

Корисникот може да пребарува други играчи според нивното корисничко име и да им испрати покана за пријателство.

ИД: 9 - Е-пошта известувања за пријатели

При додавање на пријатели освен приказ на предниот екран

Се испраќа мејл порака за нотификација на корисникот (истата gmail адреса со која е логиран преку oAuth)

Истата мејл порака се испраќа и при потврда/одбивање на тоа барање на пријателство.

Логиката за испраќање на мејл е направена преку надворешната библиотека javamailsender.

Со просто конфигурирање на истата е лесно овозможено преку било која поставена адреса во application.yml да испраќа мејл.

ИД: 10 - Преглед на статистика

На страницата за профил, корисникот има увид во својата лична статистика, вклучувајќи победи, порази и моментален Win Rate.

Тоа е изведено преку

Attachments (27)

Note: See TracWiki for help on using the wiki.