Skip to content

Instantly share code, notes, and snippets.

@jmbejar
Last active April 6, 2016 14:34
Show Gist options
  • Save jmbejar/c142872460a59d29bd0bc8f76931bc77 to your computer and use it in GitHub Desktop.
Save jmbejar/c142872460a59d29bd0bc8f76931bc77 to your computer and use it in GitHub Desktop.
// 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