Last active
April 6, 2016 14:34
-
-
Save jmbejar/c142872460a59d29bd0bc8f76931bc77 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Debe implementarse una clase cuyo nombre es HomeCoach o AwayCoach, dependiendo de si es el equipo azul o el rojo. | |
class HomeCoach { | |
// Es obligatorio definir el método "name" retornando un string | |
name() { | |
return 'Uruguay'; | |
} | |
// Es oabligatorio definir el método "players" retornando un array con 10 objetos que tiene un "type" y un "name" | |
// Uno debe ser de tipo captain, 3 de tipo fast y 6 de tipo averare. Si no son esas cantidades exactas, el juego dará error. | |
players() { | |
return [ | |
{ type: 'captain', name: 'godin' }, | |
{ type: 'fast', name: 'cavani' }, | |
{ type: 'fast', name: 'rolan' }, | |
{ type: 'fast', name: 'suarez' }, | |
{ type: 'average', name: 'pereira' }, | |
{ type: 'average', name: 'gimenez' }, | |
{ type: 'average', name: 'vecino' }, | |
{ type: 'average', name: 'arevalo' }, | |
{ type: 'average', name: 'cacerez' }, | |
{ type: 'average', name: 'rodriguez' } | |
]; | |
} | |
// Se debe implementar el método formation, este recibe información del partido en el parámetro "match" | |
// match.time -> número del 0 al 120 indicando los segundos que restan para terminar el partido | |
// match.me.score -> cantidad de goles de mi equipo | |
// match.me.winning -> booleano que indica si voy ganando | |
// match.me.drawing -> booleano que indica si voy empatando | |
// match.me.losing -> booleano que indica si voy perdiendo | |
// match.other.score -> cantidad de goles del otro equipo | |
// match.other.winning -> booleano que indica si mi rival va ganando | |
// match.other.drawing -> booleano que indica si mi rival va empatando (es un alias de match.me.drawing) | |
// match.other.losing -> booleano que indica si mi rival va perdiendo | |
// match.ball.x -> número del 0 al 100 indicando la posición de la pelota a lo largo de la cancha (0 es mi linea de fondo, 100 es la linea de fondo de mi rival). | |
// match.ball.y -> número del 0 al 100 indicando la posición de la pelota a lo ancho de la cancha (0 es la linea lateral a la derecha del ataque de mi equipo, 100 la linea de la izquierda). | |
// El método formation debe devolver un objeto de varias formas posible: | |
// Ej básico | |
// Hay cinco lineas predefinidas donde ubicar los jugadores: defenders, def_midfielders, midfielders, att_midfielders y attackers. | |
// No es necesario usar todas (en este ej se usan 3 solamente) pero si es obligatorio que aparezcan todos los jugadores. | |
// Los jugadores se ubicaran en esa linea, distribuyendose de forma uniforme a lo largo de la misma. Se usa el valor 'none' para definir espacios vacios a lo largo de esa linea. | |
// Ej defenders: [cacerez', 'godin'] | |
// || X X || (donde las X representan la posiciones de los dos jugadores) | |
// Ej defenders: ['none', cacerez', 'godin', 'none', 'none'] | |
// || - X X - - || (donde las X representan la posiciones de los dos jugadores, - son espacios vacios) | |
formation(match) { | |
return { | |
defenders: ['none', 'none', 'cacerez', 'godin', 'none', 'none'], | |
midfielders: ['rolan', 'arevalo', 'vecino', 'rodriguez', 'pereira', 'gimenez'], | |
attackers: ['none', 'suarez', 'cavani', 'none'] | |
}; | |
} | |
// Ej avanzado | |
formation(match) { | |
return { | |
defenders: ['none', 'none', 'cacerez', 'godin', 'none', 'none'], | |
midfielders: ['rolan', 'arevalo', 'vecino', 'rodriguez', 'pereira', 'gimenez'], | |
att_midfielders: ['vecino'], | |
attackers: ['none', 'suarez', 'cavani', 'none'], | |
// Esto es opcional, pero se puede usar para adelantar o atrasar una de las lineas predefinidas donde se ubican jugadores | |
// Los valores van del 0 al 100, donde 0 es mi linea de fondo, 100 es la linea de fondo de mi rival | |
line_positions: { | |
defenders: 10, | |
att_attackers: 80 | |
}, | |
// Es opcional, se usa para posicionar de una manera mas precisa los jugadores, tomando valores de 0 a 100 a lo largo (x) y ancho (y) de la cancha. | |
// Esto sobrescribe la posición del jugador dada por las lineas predefinidas. | |
player_positions: { | |
suarez: { x: 90, y: 15 }, | |
cavani: { x: 85, y: 70 } | |
} | |
}; | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment