Commit ff749b74 authored by santiaago's avatar santiaago
Browse files

add armDown func

parent 5c5d3c5d
Loading
Loading
Loading
Loading
+24 −14
Original line number Diff line number Diff line
@@ -182,7 +182,6 @@ func hasArm2(invader invader, squares, xQ, yQ int) (arm bool) {
		if xQ == half-1 || xQ == squares-half {
			arm = true
		}

	}
	return
}
@@ -225,6 +224,28 @@ func hasArmExtension2(invader invader, squares, xQ, yQ int) (armExtension bool)
	return
}

func hasArmDown(invader invader, armIndex, squares, xQ, yQ int) (armDown bool) {
	if yQ != armIndex || invader.armsUp || invader.armSize >= 3 {
		return
	}
	if invader.arms <= 0 {
		return
	}

	leftOver := squares - invader.length
	half := leftOver / 2
	if (squares - half - half - 1) >= invader.length {
		if xQ == half-1 || xQ == squares-half {
			armDown = true
		}
	} else {
		if xQ == half-2 || xQ == squares+1-half {
			armDown = true
		}
	}
	return
}

func hasBody(invader invader, squares, xQ int) (body bool) {
	leftOver := squares - invader.length
	half := leftOver / 2
@@ -375,20 +396,9 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size

			armIndex := getArmIndex(invader, lowBodyIndex)

			if yQ == armIndex && !invader.armsUp && invader.armSize < 3 {
				leftOver := squares - invader.length
				if invader.arms > 0 {
					if (squares - leftOver/2 - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
			if hasArmDown(invader, armIndex, squares, yQ, xQ) {
				fill = draw.FillFromRGBA(colorMap[xQ])
			}
					} else {
						if xQ == (leftOver/2)-2 || xQ == squares+1-leftOver/2 {
							fill = draw.FillFromRGBA(colorMap[xQ])
						}
					}
				}
			}

			// arm down extension.
			if yQ == armIndex && !invader.armsUp && invader.armSize == 3 {