Commit 95b5f43b authored by santiaago's avatar santiaago
Browse files

extract hasArmExtension

parent 5f974917
Loading
Loading
Loading
Loading
+18 −12
Original line number Diff line number Diff line
@@ -125,6 +125,22 @@ func hasArm(invader invader, squares, xQ int) (arm bool) {
	return
}

func hasArmExtension(invader invader, squares, xQ, yQ int) (armExtension bool) {
	if invader.arms <= 0 {
		return
	}

	leftOver := squares - invader.length
	half := leftOver / 2

	if yQ == 4 || yQ == 6 {
		if xQ == half-1 || xQ == squares-half {
			armExtension = true
		}
	}
	return
}

func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size int) {
	canvas := svg.New(w)
	canvas.Start(size, size)
@@ -188,20 +204,10 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			}

			if yQ == 4 || yQ == 6 { // arm extension
				leftOver := squares - invader.length
				if invader.arms > 0 {
					if yQ == 4 && invader.armsUp && invader.armSize == 3 {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
				if hasArmExtension(invader, squares, xQ, yQ) {
					fill = draw.FillFromRGBA(colorMap[xQ])
				}
			}
					if yQ == 6 && !invader.armsUp && invader.armSize == 3 {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = draw.FillFromRGBA(colorMap[xQ])
						}
					}
				}
			}

			if yQ == 5 { // eyes
				if invader.eyes == 1 {