20
\$\begingroup\$

This is an Irregular Webcomic! themed task.*

Death is a rather extensive orginization, and, although Head Death has had no trouble telling his employees apart, certain other entities connected to the orginization have had trouble keeping track of them all.

Thus, your task here is to, given the title of one of the various Deaths, generate the corresponding 32x32 pixel image of that Death.

Furthermore, as Head Death is rather bureaucratic (and a little bit stingy), the shortest program (after a few bonuses have been taken into account) will be the one chosen for official use.

Input must be case-insensitive. Additionally, the prefixes Death Of, Death By, and The Death Of should be treated as equivalent.

The output image may be saved to a file (in any lossless bitmap image format) or displayed on the screen.

The following are the EXACT RGB values to be used:

White 255 255 255
Black 0 0 0
Dark Gray 125 125 125
Bone Gray 170 170 170
Purple 60 0 140
Brown 120 40 0
Blue 0 80 200
Green 0 100 0
Neon Green 100 255 0
Red 0 255 0

(Note that no one Death uses all of those colors, and the only color which is common to all of them is bone gray)

Each output image shown here is shown first at actual size and then at 3x close-up.

You are required to support the following Deaths:

The Death of Insanely Overpowered Fireballs

enter image description here enter image description here

The Death of Choking On A Giant Frog

enter image description here enter image description here

Head Death

enter image description here enter image description here

The Death of Being Wrestled To Death By Steve

enter image description here enter image description here

The Death of Inhaling Hatmaking Chemicals

enter image description here enter image description here

Charon

enter image description here enter image description here

(Note that Charon's exact role in the organization is unknown)

You are not required to support the following Deaths, but may do so for various bonuses

Death by Having Your Pelvis Crushed (-8% bonus)

enter image description here enter image description here

The Death of Being Ground By A Mars Rover Rock Abrasion Tool (-10% bonus)

enter image description here enter image description here

The Death of Drowning in a Reactor Pool (-10% bonus)

enter image description here enter image description here

The Death of Being Impaled By A Javelin (-8% bonus)

enter image description here enter image description here

The Death of Being Stabbed By A Cutlass (-9% bonus)

enter image description here enter image description here

The Death of Bad Pizza Deliveries (-7% bonus)

enter image description here enter image description here

(Probably the only Death not to wear a cape. Don't ask me why.)

If you add include all of them, the final multiplier is 0.92*0.9*0.9*0.92*0.91*0.93≈0.58.

Additional Bonus

If you use an RGBA format and replace the white background with transparency, save an extra 12%.

* Irregular Webcomic! is ©2002-Present David Morgan-Mar. CC BY-NC-SA.

\$\endgroup\$
1
  • \$\begingroup\$ As there was a lot of scrolling to do with the images, I've placed them side by side instead of vertically. Hopefully this is an improvement but feel free to roll back the edit if it isn't what you want. \$\endgroup\$ Nov 17, 2015 at 23:36

1 Answer 1

7
\$\begingroup\$

JavaScript (ES6), 714 677.97 651.76 634.36 545.76 1063 - (8% * 10% * 10% * 8% * 9% * 7% * 12%) = 542.75

e=>(e=e.slice(-4,-2),c=document.createElement("canvas"),c.width=c.height=32,t=(r="000")=>(o=c.getContext("2d")).fillStyle="#"+r,r=(r,t,l=1,e=1)=>o.fillRect(r,t,l,e),u=12,i="7d7d7d",t(),r(l=13,8,3),(n=!/ea|te|ca|ri|Po/.test(e))&&(r(l,6,3,5),r(u,7,5,3)),"ca"==e&&(r(l,3,3,3),r(u,6,5)),"ri"!=e&&(t("ea"==e?"3C008C":/te|Po/.test(e)?"006400":""),r(10,l,9,15+("ea"==e)),r(11,u,7),r(u,11,5)),"te"==e&&(t("782800"),r(u,6,5),r(l,5),r(15,5)),"ri"==e&&(t("f00"),r(l,5,3,2),r(16,6)),t("aaa"),r(l,7,3),r(l,9,3),r(m=14,8),r(m,u,1,u),r(u,u,5),r(l,m,3),r(l,16,3),r(l,18,3),r(l,20,3),r(l,24,3),r(u,25),r(16,25),r(11,26,1,6),r(17,26,1,6),r(17,l,1,8),n||r(m,10,1,2),/al|ar|sh|el|To/.test(e)?(r(8,u,4),t(),r(7,9,1,23),"al"==e&&(r(3,9,4,2),r(2,10,1,2)),"sh"==e&&r(2,8,6,4),"el"==e&&(r(6,6,3,4),r(7,4,1,2),r(5,8,5)),"To"==e&&(r(6,8,3,23),r(4,m,2,3),r(3,m),r(l,9,3),t("fff"),r(6,9),r(5,15),t("0050c8"),r(l,7,3,2),r(m,9))):"la"==e?(r(11,u),r(10,l),r(9,15,1,2),t(i),r(9,17,1,12),r(8,17),r(7,18),r(8,19)):r(11,l,1,8),"Po"==e&&(t(i),r(l,10,3),t("64ff00"),r(u,7,5,3),r(l,6,3)),c.toDataURL())

Generates a data-url to a png of the image, and covers all of the bonuses.

EDIT: Just realized the bonus that a transparent background knocks off another 12%, which also reduces my byte count!

\$\endgroup\$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.