Simuleu un servidor de partides d’un joc de rol per a dos jugadors. Cada jugador té un “elo”, que és un valor més gran com més bo és. Tothom comença amb 1200 punts, i per molt que es perdin partides no es baixa mai d’aquesta quantitat. Cada vegada que es fa una partida, el guanyador obté 10 punts d’elo, i el perdedor en perd 10 (amb la limitació anterior). L’elo d’un jugador es manté quan es desconnecta del servidor.
Hi ha aquestes instruccions:
“LOGIN”
: El jugador
inicia una sessió. Si ja està connectat, cal ignorar la
instrucció.
“LOGOUT”
: El jugador
tanca la sessió. Si no està connectat, cal ignorar la
instrucció.
“PLAY”
: Indica que
ha guanyat a
,
amb
.
Si algun dels dos jugadors no està connectat, cal ignorar la instrucció
i escriure un missatge d’error.
“GET_ELO”
: Cal escriure el jugador
(el qual és segur que s’ha connectat prèviament, encara que ara pot
estar desconnectat) amb el seu elo actual.
L’entrada consisteix en diverses instruccions sobre com a molt jugadors. Cada jugador té un nom diferent format amb lletres minúscules.
Per a cada instrucció “GET_ELO” (i potser
“PLAY”) cal escriure la sortida adequada. Al final, cal
escriure una línia buida, la paraula “RANKING”, i un
rànking ordenat decreixentment per elo (en cas d’empat, primer el nom
més petit en ordre alfabètic) amb tots els jugadors que s’han connectat
alguna vegada.
Input
LOGIN destello LOGIN fxtr PLAY destello fxtr PLAY destello fxtr LOGIN carokhan GET_ELO destello GET_ELO fxtr LOGOUT destello PLAY carokhan fxtr LOGOUT fxtr LOGIN cerebrus LOGOUT cerebrus LOGIN grassman PLAY destello grassman PLAY grassman destello LOGIN cusell
Output
destello 1220 fxtr 1200 jugador(s) no connectat(s) jugador(s) no connectat(s) RANKING destello 1220 carokhan 1210 cerebrus 1200 cusell 1200 fxtr 1200 grassman 1200
Input
PLAY omer petit LOGIN omer PLAY omer petit LOGIN omer LOGOUT omer GET_ELO omer
Output
jugador(s) no connectat(s) jugador(s) no connectat(s) omer 1200 RANKING omer 1200