Return Styles: Pseud0ch, Terminal, Valhalla, NES, Geocities, Blue Moon.

Pages: 1-

FIZZ MOTHERFUCKING BUZZ

Name: FIZ. Z. MCBUZZMASTER 2012-03-16 18:52

Write FIZZBUZZ in the most convoluted way you can think of.

Rules:
1. Your fizzbuzz implementation must work
2. Convolution =/= obfuscation: your code should be legible but should either work in a stupid way or be hard to understand (but NOT to read! that's too easy)
3. No statements with no effect (I mean like sticking "i + 1;" in the middle of a C function, not side-effects - functional languages are fine too).

Mine:
#!/usr/bin/env python

import socket
import sys

HOST = "127.0.0.1"
PORT = 9001

def client(n):
    global HOST, PORT
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.connect((HOST, PORT))
    while n > 0:
        sock.send(str(n))
        data = sock.recv(20)
        sys.stdout.write("%02d: %s" % (n, data))
        n -= 1
    sock.close()

def server():
    global HOST, PORT
    sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    sock.bind((HOST, PORT))
    sock.listen(1)
    while True:
        conn, addr = sock.accept()
        conn.setblocking(1)
        while True:
            i = 0
            try:
                i = int(conn.recv(20))
            except:
                break
            s = ""
            if (i % 3) == 0:
                s += "fizz"
            if (i % 5) == 0:
                s += "buzz"
            conn.send(s + "\n")
            if i == 0:
                break
        conn.close()

if __name__ == '__main__':
    if len(sys.argv) < 2:
        print("Usage: %s <client|server> [number]" % sys.argv[0])
        exit(1)
    if sys.argv[1] == "client":
        if len(sys.argv) < 3:
            print("Usage: %s <client|server> [number]" % sys.argv[0])
            exit(1)
        client(int(sys.argv[2]))
    elif sys.argv[1] == "server":
        server()
    else:
        print("Usage: %s <client|server> [number]" % sys.argv[0])
        exit(1)

Name: bash recursion 2012-03-16 19:14

#!/bin/sh
F=$1
if [ -z "$F" ]; then
    F=1
fi
a=`echo "$F 3 % p"|dc`
b=`echo "$F 5 % p"|dc`
k=""
if [ $a = 0 ]; then
    echo -n "Fizz"
    k=1
fi
if [ $b = 0 ]; then
    echo -n "Buzz"
    k=1
fi
if [ -z $k ]; then
    echo -n $F
fi
echo
if [ $F -lt 100 ]; then
    $0 $((F+1))
fi

Name: using System.Fizz.Buzz; 2012-03-16 19:22

inb4 FIOC

Here's my second entry.
%define COUNT    20
[bits    16]
[org    0x7c00]
start:
    cli
    xor    ax,    ax
    mov    ds,    ax
    mov    es,    ax
    mov    ss,    ax
    mov    ax,    0x9c00
    mov    sp,    ax
    mov    cx,    COUNT
    sti
fizzbuzz:
    .printnumber:
        mov    ax,    cx
        call    putword
    .test3:
        mov    ax,    cx
        mov    dh,    3
        div    dh
        or    ah,    ah
        jz    .fizz
    .test5:
        mov    ax,    cx
        mov    dh,    5
        div    dh
        or    ah,    ah
        jz    .buzz
        jmp    .testcx
    .fizz:
        mov    si,    fizz
        call    putstr
        jmp    .test5
    .buzz:
        mov    si,    buzz
        call    putstr
    .testcx:
        mov    si,    crlf
        call    putstr
        or    cx,    cx
        jz    hang
        dec    cx
        jmp    fizzbuzz
hang:
    cli
    hlt
    jmp    $
putchar:
    mov    ah,    0x0e
    int    0x10
    ret
putstr:
    .do_char:
        lodsb
        or    al,    al
        jz    .done
        call    putchar
        jmp    .do_char
    .done:
        ret
putnibble:
    cmp    al,    10
    jl    .lt10
    add    al,    'A' - 10
    call    putchar
    jmp    .done
    .lt10:
        add    al,    '0'
        call    putchar
    .done:
        ret
putbyte:
    push    ax
    shr    al,    4
    call    putnibble
    pop    ax
    and    al,    0x0f
    call    putnibble
    cmp    bx,    0
    je    .done
    mov    al,    ' '
    call    putchar
    .done:
        ret
putword:
    push    bx
    push    ax
    mov    al,        ah
    mov    bx,        0
    call    putbyte
    pop    ax
    mov    bx,        0
    call    putbyte
    mov    al,        ' '
    call    putchar
    pop    bx
    ret
fizz:            db    "fizz", 0
buzz:            db    "buzz", 0
crlf:            db    13, 10, 0
times 510 - ($ - $$)    db    0
            dw    0xaa55

Name: Anonymous 2012-03-16 19:57

Behold, the sleepbuzz algorithm:

#!/bin/bash
e(){ echo -n $1;}
d(){ e "$1"|dc;}
s(){ sleep $1;}
{ for i in `seq 3 3 100`; do { s $i; e "Fizz";}& done } &
s 0.3
{ for i in `seq 5 5 100`; do { s $i; e "Buzz";}& done } &
s 0.3
{ for i in `seq 1 100`; do { s $i; if [ `d "$i d3%r5%*p"` != 0 ]; then e $i; fi; echo;}& done }
wait

Name: fizzBuzz :: IO () 2012-03-16 20:04

>>4
Consider the sleepbuzz algorithm beheld.

Name: Anonymous 2012-03-16 20:06

OH LOOK ITS THE MONTHLY FIZZ BUZZ THREAD

Name: Anonymous 2012-03-16 20:11

Don't mind me, just code golfing.

#!/bin/sh
e(){ echo -n $1;}
d(){ e $1|dc;}
s(){ sleep $1;}
{ for i in `seq 3 3 100`;do { s $i;e Fizz;}&done }&
s 0.3
{ for i in `seq 5 5 100`;do { s $i;e Buzz;}&done }&
s 0.3
{ for i in `seq 1 100`;do { s $i;if [ `d $i"d3%r5%*p"` != 0 ];then e $i;fi;echo;}&done }
wait

Name: Anonymous 2012-03-16 20:40

oooh, fizzbuzz! Some besides factorial that I can actually implement!

Name: Anonymous 2012-03-16 20:49

>>8
typical lisp programmer

go scrub another toilet you mental midget

Name: Anonymous 2012-03-16 22:18

Fizzbuzz in GPVM assembly:

    mov 0 acc

.fz_loop:
    cmp acc 100
    jmg .fz_out

    mov acc %gp12
    mod 3 %gp12
    cmp %gp12 0
    jme .fz_fizz
    push acc
    push "%d"
    call printf
    goto .fz_done
.fz_fizz:
    push "fizz"
    call put
    mov acc %gp12
    mod 5 %gp12
    cmp %gp12 0
    jme .fz_buzz
    goto .fz_done
.fz_buzz:
    push "buzz"
    call put
    goto .fz_done

.fz_done:
    push "\n"
    call put
    inc acc
    goto .fz_loop
.fz_out:
    die

Name: Anonymous 2012-03-16 22:21

>>10
0 should not be fizzbuzz stupid head.
    mov 0 acc

.fz_loop:
    cmp acc 100
    jmg .fz_out

    cmp acc 0
    jme .fz_no

    mov acc %gp12
    mod 3 %gp12
    cmp %gp12 0
    jme .fz_fizz
.fz_no:
    push acc
    push "%d"
    call printf
    goto .fz_done
.fz_fizz:
    push "fizz"
    call put
    mov acc %gp12
    mod 5 %gp12
    cmp %gp12 0
    jme .fz_buzz
    goto .fz_done
.fz_buzz:
    push "buzz"
    call put
    goto .fz_done

.fz_done:
    push "\n"
    call put
    inc acc
    goto .fz_loop
.fz_out:
    die

Name: Anonymous 2012-03-16 22:43

/prog/ - Fizzbuzz

Name: Anonymous 2012-03-17 12:29

>>4
oh god

Name: Anonymous 2012-03-17 16:19


Don't change these.
Name: Email:
Entire Thread Thread List