Name: 2009-08-18 10:35
Output a thousand Sussmen in an individualistic way.
int i;
for(i = 0; i < 1000; ++i)
printf("Sussman");print "Sussman\n" * 1000
sequence_ $ replicate 1000 $ putStrLn "Sussman"
<?php
if("5cocks" == 5)
echo("Suss\n");
?>
/* gcc sussman.c `allegro-config --libs` */
#include <stdio.h>
#include <allegro.h>
#define WIDTH 1280
#define HEIGHT 800
int main(int argc, char **argv)
{
BITMAP *sussman;
PALETTE pal;
int i, j;
if (argc < 2) {
fprintf(stderr, "%s SUSSMAN.bmp\n", argv[0]);
return 1;
}
allegro_init();
install_keyboard();
if (set_gfx_mode(GFX_AUTODETECT, WIDTH, HEIGHT, 0, 0) != 0)
return 2;
sussman = load_bitmap(argv[1], pal);
set_palette(pal);
for (i = 0; i < WIDTH / sussman->w; ++i)
for (j = 0; j < HEIGHT / sussman->h; ++j)
draw_sprite(screen, sussman, i * sussman->w, j * sussman->h);
destroy_bitmap(sussman);
while (!keypressed());
return 0;
} END_OF_MAIN()ECHO OFF
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
100SUS~1.BAT
ECHO ONECHO OFF
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO SUSSMAN
ECHO ON<?php
$message = str_repeat('Sussman', 1000);
define('GRID_W', 80);
define('GRID_H', 24);
define('BORDER', 4);
define('HUE_OFFSET', mt_rand(0, 1000) / 1000);
define('HUE_MUL', 10);
define('LIGHTNESS_POWER', 3);
function hsl_to_rgb($h, $s, $l) {
if($s == 0) {
$color = array('r' => $l, 'g' => $l, 'b' => $l);
} else {
$t2 = ($l < 0.5 ? $l * (1 + $s) : $l + $s - $l * $s);
$t1 = 2 * $l - $t2;
$color = array('r' => $h + 1/3, 'g' => $h, 'b' => $h - 1/3);
foreach($color as $k => $t3) {
if($t3 < 0) $t3 += 1;
if($t3 > 1) $t3 -= 1;
if(6 * $t3 < 1)
$color[$k] = $t1 + ($t2 - $t1) * 6 * $t3;
elseif(2 * $t3 < 1)
$color[$k] = $t2;
elseif(3 * $t3 < 2)
$color[$k] = $t1 + ($t2 - $t1) * (2/3 - $t3) * 6;
else
$color[$k] = $t1;
}
}
return $color;
}
define('NORTH', 1);
define('EAST', 2);
define('SOUTH', 3);
define('WEST', 4);
define('FONT', 2);
define('FONT_W', 6);
define('FONT_H', 11);
define('X0', 0);
define('Y0', -3);
define('LEN', strlen($message));
$opposites = array(NORTH => SOUTH, SOUTH => NORTH, EAST => WEST, WEST => EAST);
$movements_x = array(NORTH => 0, EAST => 1, SOUTH => 0, WEST => -1);
$movements_y = array(NORTH => -1, EAST => 0, SOUTH => 1, WEST => 0);
$img = imagecreatetruecolor(2 * BORDER + GRID_W * FONT_W, 2 * BORDER + GRID_H * FONT_H);
$x = mt_rand(0, GRID_W - 1);
$y = mt_rand(0, GRID_H - 1);
$from = 0;
for($i = 0; $i < LEN; $i++) {
$pos = $i / LEN;
$rgb = hsl_to_rgb(fmod((HUE_OFFSET + $pos) * HUE_MUL, 1), 1, pow($pos, LIGHTNESS_POWER));
$color = imagecolorallocate($img, round($rgb['r'] * 255), round($rgb['g'] * 255), round($rgb['b'] * 255));
imagestring($img, FONT, BORDER + X0 + $x * FONT_W, BORDER + Y0 + $y * FONT_H, $message[$i], $color);
imagecolordeallocate($img, $color);
$valid_directions = array(NORTH, EAST, SOUTH, WEST);
$invalid_directions = array($from);
if($x == 0) $invalid_directions[] = WEST;
elseif($x == GRID_W - 1) $invalid_directions[] = EAST;
if($y == 0) $invalid_directions[] = NORTH;
elseif($y == GRID_H - 1) $invalid_directions[] = SOUTH;
$valid_directions = array_diff($valid_directions, $invalid_directions);
$direction = $valid_directions[array_rand($valid_directions)];
$x += $movements_x[$direction];
$y += $movements_y[$direction];
$from = $opposites[$direction];
}
header('Content-type: image/png');
imagepng($img);
?>
;;;; Output a thousand Sussmans, various versions from simplest to most insane.
;;; Simple iterative version
(dotimes (i 1000)
(format t "Sussman~%"))
;;; Tail-recursive version, gets optimized to a loop when compiled
(defun print-sussmans (n)
(unless (zerop n)
(format t "Sussman~%")
(print-sussmans (1- n))))
(print-sussmans 1000)
;;; Extended LOOP version
(loop for i from 1 to 1000
do (format t "Sussman~%"))
;;; Simple LOOP version
(let ((i 0))
(loop
(when (= i 1000) (return))
(format t "Sussman~%")
(incf i)))
;;; TAGBODY/GO version
(let ((i 0))
(tagbody
LOOPSTART
(incf i)
(princ "Sussman")
(terpri)
(if (= i 1000)
(go END) ; or use a return
(go LOOPSTART))
END))
;;; BLOCK/TAGBODY/GO version
(block sussman-printer-loop
(let ((i 0))
(tagbody
LOOPSTART
(incf i)
(princ "Sussman")
(terpri)
(if (= i 1000)
(return-from sussman-printer-loop nil)
(go LOOPSTART)))))
;;; Turned that LET into a LAMBDA
((lambda (i)
(block sussman-printer-loop
(tagbody
LOOPSTART
(incf i)
(princ "Sussman")
(terpri)
(if (= i 1000)
(return-from sussman-printer-loop nil)
(go LOOPSTART))))) 0)
;;; Used CATCH and THROW
(catch 'complete
((lambda (i)
(block sussman-printer-loop
(tagbody
LOOPSTART
(setf i (+ i 1))
(princ "Sussman")
(terpri)
(if (= i 1000)
(throw 'complete nil)
(go LOOPSTART))))) 0))
;;; It's starting to get a boring so, this is it for now. A Scheme version using continuations might be interesting too.
;;; Forgot another possiblity, DO
(do ((i 1))
((= i 1000))
(princ "Sussman")
(terpri))
;;; finally fixed
(do ((i 1 (1+ i)))
((= i 1000))
(princ "Sussman")
(terpri))
;;;; It seems I'm still bored, have some other versions
;;; Print a string and a newline
(defun pnew (x)
(format t "~A~%" x))
;;; MAP version
(let ((sussman-array (make-array 1000 :initial-element "Sussman")))
(map nil #'pnew sussman-array))
;;; Define a circular (infinite on naive inspection) list of "Sussman"'s and map over a subsequence of it
(let ((forever-sussmans (cons "Sussman" nil)))
(setf (cdr forever-sussmans) forever-sussmans)
(mapc #'pnew (subseq forever-sussmans 1 1000)))
IDENTIFICATION DIVISION.
PROGRAM-ID. Prog-Can-Go-To-Hell.
AUTHOR. UMH memesmith.
DATE-WRITTEN. AUG 2009.
* COMMENTS.
*****************************************************
* You're a bunch of assholes, you know that? You all
* deserve what's coming to you. I tried to be nice
* and give you a chance, but you had to keep using
* that fucking stupid meme. I won't have it. Enjoy
* your meta-sage, motherfuckers.
*****************************************************
DATA DIVISION.
WORKING-STORAGE SECTION.
01 WORK-AREAS.
05 SUSSMANS-WRITTEN PIC 9999.
01 SUSSQUOTE.
05 SQ-KICKI PIC X(2).
05 FILLER PIC X(6).
05 SQ-IMMIG PIC X.
05 FILLER PIC X(7).
05 SQ-OFFIC PIC X.
05 FILLER PIC X(13).
01 SUSSQUOTE-B.
05 FILLER PIC X(3).
05 SQ-INTHE PIC X.
05 FILLER PIC X(21).
PROCEDURE DIVISION.
PROGRAM-BEGIN.
PERFORM 100-INITIALIZE.
PERFORM 200-RUNSUSSMAN.
STOP RUN.
100-INITIALIZE.
MOVE ZEROES TO SUSSMANS-WRITTEN
MOVE "AND CONJURE THE SPIRITS OF THE" TO SUSSQUOTE
MOVE " COMPUTER WITH OUR SPELLS" TO SUSSQUOTE-B.
200-RUNSUSSMAN.
PERFORM VARYING SUSSMANS-WRITTEN FROM 0 BY +1
UNTIL SUSSMANS-WRITTEN = 1000
DISPLAY SQ-OFFIC SQ-IMMIG SQ-OFFIC SQ-OFFIC
SQ-INTHE SQ-KICKI
END-PERFORM.
for (int64_t i = 0; i < 1; i++) {
for (int64_t j = 0; j < 10; j++) {
for (int64_t k = 0; k < 10; k++) {
for (int64_t l = 0; l < 10; l++) {
std::cout << "SUSSMAN";
}
std::cout << std::endl;
}
}
}
for (int64_t i = 0; i < 1; i++)