Commit b6ace390 authored by santiaago's avatar santiaago
Browse files

invader color based on array passed as arg #33

parent 050073b0
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -21,7 +21,6 @@ type invader struct {
// newInvader returns a invader type built from key which is a 16 md5 hash.
func newInvader(key string) invader {
	invader := invader{}

	invader.legs = LegsFromKey(key[0])
	invader.arms = ArmsFromKey(key[1])
	invader.anthenas = AnthenasFromKey(key[2])
@@ -32,7 +31,6 @@ func newInvader(key string) invader {
	invader.armsUp = HasArmsUpFromKey(key[8])
	invader.armSize = ArmSizeFromKey(key[9])
	invader.anthenaSize = AnthenaSizeFromKey(key[10])

	return invader
}

+56 −56
Original line number Diff line number Diff line
@@ -26,7 +26,7 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size

		for xQ := 0; xQ < squares; xQ++ {
			x := xQ * quadrantSize
			fill := fillWhite()
			fill := draw.FillFromRGBA(colors[0])
			if _, ok := colorMap[xQ]; !ok {
				if float64(xQ) < middle {
					colorMap[xQ] = draw.PickColor(key, colors, xQ+2*yQ)
@@ -42,15 +42,15 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if yQ == highBodyIndex {
					if invader.eyes == 2 {
						if xQ > 4 && xQ < 6 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.eyes == 3 {
						if xQ > 3 && xQ < 7 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.eyes == 4 {
						if xQ > 3 && xQ < 8 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
					if invader.eyes > 1 {
@@ -62,15 +62,15 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			if yQ == highBodyIndex-1 && invader.anthenaSize == 2 {
				if invader.anthenas == 1 {
					if xQ == 5 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.anthenas == 2 {
					if xQ == 3 || xQ == 7 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.anthenas == 3 {
					if xQ == 2 || xQ == 5 || xQ == 8 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -78,15 +78,15 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			if yQ == highBodyIndex {
				if invader.anthenas == 1 {
					if xQ == 5 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.anthenas == 2 {
					if xQ == 4 || xQ == 6 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.anthenas == 3 {
					if xQ == 3 || xQ == 5 || xQ == 7 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -94,19 +94,19 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			if yQ == 3 { // pre frontal lobe :p
				if invader.eyes == 1 {
					if xQ >= 5 && xQ <= 5 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 2 {
					if xQ >= 4 && xQ <= 6 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 3 {
					if xQ >= 3 && xQ <= 7 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 4 {
					if xQ >= 3 && xQ <= 8 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -114,19 +114,19 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			if yQ == 4 { // frontal lobe
				if invader.eyes == 1 {
					if xQ >= 4 && xQ <= 6 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 2 {
					if xQ >= 3 && xQ <= 7 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 3 {
					if xQ >= 2 && xQ <= 8 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 4 {
					if xQ >= 2 && xQ <= 9 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -135,7 +135,7 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				leftOver := squares - invader.length
				if invader.arms > 0 {
					if xQ == (leftOver/2) || xQ == squares-1-leftOver/2 || xQ == (leftOver/2)-1 || xQ == (squares-leftOver/2) {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -144,12 +144,12 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if yQ == 4 && invader.armsUp && invader.armSize == 3 {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
					if yQ == 6 && !invader.armsUp && invader.armSize == 3 {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -160,25 +160,25 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
					if xQ == 5 {
						fill = fillWhite()
					} else if xQ == 4 || xQ == 6 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 2 {
					if xQ == 4 || xQ == 6 {
						fill = fillWhite()
					} else if xQ == 3 || xQ == 5 || xQ == 7 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 3 {
					if xQ == 5 || xQ == 3 || xQ == 7 {
						fill = fillWhite()
					} else if xQ == 2 || xQ == 4 || xQ == 6 || xQ == 8 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				} else if invader.eyes == 4 {
					if xQ == 2 || xQ == 4 || xQ == 6 || xQ == 8 {
						fill = fillWhite()
					} else if xQ == 1 || xQ == 3 || xQ == 5 || xQ == 7 || xQ == 9 {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}
				}
			}
@@ -186,7 +186,7 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
			if yQ == 6 { // length of body
				leftOver := squares - invader.length
				if xQ > (leftOver/2)-1 && xQ < squares-leftOver/2 {
					fill = fillBlack()
					fill = draw.FillFromRGBA(colors[1])
				}
			}

@@ -196,7 +196,7 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if yQ == lowBodyIndex {
					leftOver := squares - invader.length
					if xQ > (leftOver/2) && xQ < (squares-1-leftOver/2) {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}

				}
@@ -208,7 +208,7 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if yQ == lowBodyIndex {
					leftOver := squares - invader.length
					if xQ > (leftOver/2)+1 && xQ < (squares-2-leftOver/2) {
						fill = fillBlack()
						fill = draw.FillFromRGBA(colors[1])
					}

				}
@@ -220,11 +220,11 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if (squares - (leftOver / 2) - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-2 || xQ == squares-leftOver/2+1 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}

					}
@@ -237,11 +237,11 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if (squares - (leftOver / 2) - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else {
						if xQ == (leftOver/2)-2 || xQ == squares+1-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -258,11 +258,11 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if (squares - leftOver/2 - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else {
						if xQ == (leftOver/2)-2 || xQ == squares+1-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -274,11 +274,11 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if (squares - leftOver/2 - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-1 || xQ == squares-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else {
						if xQ == (leftOver/2)-2 || xQ == squares+1-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -290,11 +290,11 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.arms > 0 {
					if (squares - leftOver/2 - (leftOver / 2) - 1) >= invader.length {
						if xQ == (leftOver/2)-2 || xQ == squares-leftOver/2+1 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else {
						if xQ == (leftOver/2)-2 || xQ == squares+1-leftOver/2 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -304,34 +304,34 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.legs%2 == 0 {
					if invader.legs == 2 {
						if xQ == 4 || xQ == 6 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.legs == 4 {
						if invader.length >= 6 {
							if invader.height >= 7 {
								if yQ == lowBodyIndex {
									if xQ == 3 || xQ == 4 || xQ == 6 || xQ == 7 {
										fill = fillBlack()
										fill = draw.FillFromRGBA(colors[1])
									}
								} else {
									if xQ == 2 || xQ == 4 || xQ == 6 || xQ == 8 {
										fill = fillBlack()
										fill = draw.FillFromRGBA(colors[1])
									}
								}
							} else {
								if xQ == 2 || xQ == 4 || xQ == 6 || xQ == 8 {
									fill = fillBlack()
									fill = draw.FillFromRGBA(colors[1])
								}
							}
						} else {
							if yQ == lowBodyIndex {
								if xQ == 3 || xQ == 5 || xQ == 5 || xQ == 7 {
									fill = fillBlack()
									fill = draw.FillFromRGBA(colors[1])
								}

							} else {
								if xQ == 2 || xQ == 4 || xQ == 6 || xQ == 8 {
									fill = fillBlack()
									fill = draw.FillFromRGBA(colors[1])
								}
							}
						}
@@ -339,27 +339,27 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				} else {
					if invader.legs == 1 {
						if xQ == 5 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.legs == 3 {
						if invader.length > 5 {
							if xQ == 3 || xQ == 5 || xQ == 7 {
								fill = fillBlack()
								fill = draw.FillFromRGBA(colors[1])
							}
						} else {
							if yQ == lowBodyIndex {
								if xQ == 4 || xQ == 5 || xQ == 6 {
									fill = fillBlack()
									fill = draw.FillFromRGBA(colors[1])
								}
							} else {
								if xQ == 3 || xQ == 5 || xQ == 7 {
									fill = fillBlack()
									fill = draw.FillFromRGBA(colors[1])
								}
							}
						}
					} else if invader.legs == 5 {
						if xQ == 1 || xQ == 3 || xQ == 5 || xQ == 7 || xQ == 9 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}
@@ -369,39 +369,39 @@ func SpaceInvaders(w http.ResponseWriter, key string, colors []color.RGBA, size
				if invader.legs%2 == 0 {
					if invader.legs == 2 {
						if xQ == 3 || xQ == 7 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.legs == 4 {
						if xQ == 1 || xQ == 9 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				} else {
					if invader.legs == 1 {
						if xQ == 4 || xQ == 6 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					} else if invader.legs == 3 {
						if invader.length > 5 {
							if xQ == 2 || xQ == 8 {
								fill = fillBlack()
								fill = draw.FillFromRGBA(colors[1])
							}
						} else {
							if xQ == 3 || xQ == 7 {
								fill = fillBlack()
								fill = draw.FillFromRGBA(colors[1])
							}
						}

					} else if invader.legs == 5 {
						if xQ == 0 || xQ == 10 {
							fill = fillBlack()
							fill = draw.FillFromRGBA(colors[1])
						}
					}
				}

			}

			canvas.Rect(x, y, quadrantSize, quadrantSize, fill) //draw.FillFromRGBA(colorMap[xQ]))
			canvas.Rect(x, y, quadrantSize, quadrantSize, fill)
		}
	}
	canvas.End()
+2 −2
Original line number Diff line number Diff line
@@ -36,10 +36,10 @@ func ExtraColors(req *http.Request, m map[string][]color.RGBA) (color.RGBA, colo
	var err error
	var bg, fg color.RGBA
	if bg, err = Background(req); err != nil {
		bg = m["base"][0]
		bg = m["base"][1]
	}
	if fg, err = Foreground(req); err != nil {
		fg = m["base"][1]
		fg = m["base"][0]
	}
	return bg, fg
}