The Challenge
Program a comic strip. As artistically rich and detailed as you can possibly make it, so long as it complies with the following rules:
- the comic must be your own original work, not a duplicate or approximation of an existing comic (you may however use characters from an existing strip as an homage, if you desire)
- the comic must contain at least one panel, and all panels must be surrounded by a clear border
- the comic must contain at least one blurb of readable text with ≥ 10 characters that is clearly recognizable as text; this may come in the form of a caption, a text bubble, a thought bubble, a sign, etc.
- the comic may be graphic-based or text-based (more on this below)
- if text-based, the comic must have dimensions of at least 30x25 chars, and no greater than 160x80 chars
- if graphic-based, the comic must have dimensions of at least 300x300 pixels, but no greater than 1600x1000 pixels
- the comic must be generated by a program whose core code contains at most 512 bytes
- the comic must comply with the StackExchange content policy
What is "Core Code"?
This is a somewhat novel concept, hence please bear with me in patience.
For programming language X, consider the most elementary code that outputs a single (black) circle or ASCII letter o
at coordinates (10,10) on a (white) canvas and then terminates. The colours black and white above may refer to any two colours. "Output" refers to text being printed to stdout/console, text being outputted to a file, a graphic being drawn to a window, or a graphic being saved to a file. The two key points are that
- the code is able to render this most basic output
- the code contains nothing nonessential (within reason, and subject to reader scrutiny) for rendering this specific output, which includes comments (whitespace is fine)
This elementary program is called your shell. From the shell, delete as many or as few commands as you wish and identify at most two insertion points where new code can/will go. Any code inserted at these points is called your core code. The length of your core code is the total length (in bytes) of code inserted at these points.
The following are six representative examples of acceptable shells:
--- Text Output with C (type 1) ---
#include <stdio.h>
#include <Windows.h>
void P( int x, int y, char c ) {
COORD p = { x, y };
SetConsoleCursorPosition( GetStdHandle( STD_OUTPUT_HANDLE ), p );
printf( "%c", c );
}
int main() {
system( "cls" );
P( 10, 10, 'o' );
return 0;
}
--- Text Output with C (type 2) ---
int main() {
puts( "\n\n\n\n\n\n\n\n\n o" );
return 0;
}
--- Graphical Output with Javascript ---
(function(){
document.body.innerHTML = '<canvas id="cvs1" width="300" height="300"></canvas>';
with( document.getElementById('cvs1').getContext('2d') ) {
fillStyle = 'rgb(192,192,192)';
strokeStyle = 'rgb(0,0,0)';
fillRect( 0, 0, 300, 300 );
beginPath();
arc( 10, 10, 5, 0, 2*Math.PI );
stroke();
}
})();
--- Text Output with HTML ---
<html><body bgcolor="#CCCCCC">
<br><br><br><br><br><br><br><br><br>
o
</body></html>
--- Graphical Output with Python (Turtle Library) ---
from turtle import*
fd( 10 );
rt( 90 );
fd( 10 );
circle( 5, 360 );
--- Text Output with MATLAB ---
G = repmat( ' ', 30, 30 );
G(10,10) = 'o';
disp( G );
If you prefer, your shell may be empty.
I have started a discussion here for readers unsure of what the community considers appropriate in this respect. Note that this is a popularity contest, so making sure the community doesn't consider you to be breaking the rules is important.
What To Present
- your core code, either as a single block or as two separate blocks if you have two separate insertion points
- your shell, using the distinctive ✰ character (Unicode U+2730) to mark any insertion points (or simply say "no shell")
- your comic in a text block, or as an image, or as a link to either of the aforementioned. If your comic is text-based and looks better in a different font, charset, etc., you can provide a screenshot or a link to an online environment where the text can be viewed.
Scoring
This is a popularity contest and hence your score is at the whim of the voters.
This is a competition about artistically rich comic book (or graphic novel) style artwork. Humour is a nice touch, but should not be used as a principle criterion for judging entries.
Voters can of course vote any way they want, but as a rough set of guidelines they (you) might wish to consider:
- artistry (whether the comic is especially artful within the artist's chosen medium), with emphasis on features such as
- beautiful art
- texturing
- detailed and/or recognizable characters
- rich embellishments such as call-outs, fancy borders, shading effects, etc.
- complexity (whether the artist/programmer really gets his/her money's worth out of 512 characters)
- creativity (special additional "wow" factors that make the comic stand out in some way)
Feel free to raise questions or concerns in the comments section.