Class: Rubygoal::AnotherCoach

Inherits:
Coach
  • Object
show all
Defined in:
lib/rubygoal/coaches/template.rb

Overview

Lo siguiente es otra implementación posible de una instancia de Coach

Instance Method Summary collapse

Instance Method Details

#formation(match) ⇒ Object

El método formation debe devolver una instancia de Formation El siguiten ejemplo muestra como controlar la posición de los jugadores de una forma más fina, usando el método lineup



91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
# File 'lib/rubygoal/coaches/template.rb', line 91

def formation(match)
  formation = Formation.new

  # Por defecto el valor de formation.lineup es
  #
  # [
  #   [:none, :none, :none, :none, :none],
  #   [:none, :none, :none, :none, :none],
  #   [:none, :none, :none, :none, :none],
  #   [:none, :none, :none, :none, :none],
  #   [:none, :none, :none, :none, :none],
  # ]
  #
  # Este valor DEBE sobreescribirse con una formación que incluya las
  # cantidades correctas de :average, :fast y :captain
  #
  # Para este tipo de estrategias es importante siempre considerar que el arco
  # que atacas es el de la derecha.
  #
  # En el siguiente ejemplo, la formación 4322 puede interpretarse
  # de la siguiente manera
  #                |                            |
  #      defensa   |     medio campo            | delantera
  # [              |                            |
  #   [  :average, | :none, :average, :none,    | :none     ],
  #   [  :fast,    | :none, :none,    :average, | :none     ],
  #   [  :none,    | :none, :captain, :none,    | :fast     ],
  #   [  :fast,    | :none, :none,    :average, | :average  ],
  #   [  :average, | :none, :average, :none,    | :none     ],
  # ]              |                            |
  #                |                            |
  #
  # Usando `lineup`, la línea mas defensiva son los primeros elementos de
  # cada uno de los arrays (:average, :fast, :none, :fast, :average)
  #
  # La segunda línea (entre la defensa y los mediocampistas) no tiene jugadores
  # (son todos :none)
  #
  # La tercer línea, la que corresponde a los mediocampistas, son el tercer
  # elemento de cada array (:average, :none, :captain, :none, :average)
  #
  # La cuarta línea está ubicada entre los mediocampistas y delanteros
  # (:none, :average, :none, :average, :none)
  #
  # Los últimos elementos de los arrays corresponden a la línea de
  # delanteros (:none, :none, :fast, :average, :none)
  formation.lineup = [
    [:average, :none, :average, :none,    :none],
    [:fast,    :none, :none,    :average, :none],
    [:none,    :none, :captain, :none,    :fast],
    [:fast,    :none, :none,    :average, :average],
    [:average, :none, :average, :none,    :none],
  ]

  formation
end

#nameObject



83
84
85
# File 'lib/rubygoal/coaches/template.rb', line 83

def name
  "Maeso FC"
end