| divisors | divisors := [:x | (1 to: x) select: [:d | x \\ d = 0] ]. divisors value: 60. ⇒ #(1 2 3 4 5 6 10 12 15 20 30 60) divisors value: 45 ⇒ #(1 3 5 9 15 45)
Comprueba las implementaciones en Boolean, True y
False.
Una vez editado y guardado el método, en el panel Method,
seleccione su nombre teleport: luego haz ...click
derecho → more... → change category...
→ events...
En el panel de métodos, selecciona un método de control sin categoría,
luego haz ...click derecho → more...
→ change category → new... teclea
control.
Para categorizar el resto de los métodos de control sin categoría,
repite el proceso pero simplemente selecciona control en el
último paso porque la categoría ya existe.
No necesitamos un iterador para detectar una colisión entre dos naves. Sin embargo, utilizamos un iterador para actuar sobre cada nave cuando se detecta una colisión.
SpaceWar>>collisionsShips
| positionA position B |
positionA := ships first morphPosition.
positionB := ships second morphPosition.
(positionA dist: positionB) < 25 ifTrue: [
ships do: [:each |
each flashWith: Color red.
self teleport: each]
]
Las variables locales solo se utilizan para facilitar el formato del código fuente en el libro impreso.
Solo tienes que seleccionar los fragmentos de código adecuados del ejercicio y los ejemplos referenciados.
SpaceWar>>collisionsTorpedoesStar
| position |
position := centralStar morphPosition.
torpedoes do: [:each |
(each morphPosition dist: position) < 8 ifTrue: [
each flashWith: Color orange.
self destroyTorpedo: each]]