User:Ledrug/bits: Difference between revisions

From Rosetta Code
Content added Content deleted
m (scrub)
mNo edit summary
Line 1: Line 1:
<lang c>#include <stdio.h>
#include <string.h>

int b = 99, u = 1;
char *d[16], y[] = "#:ottle/ of:eer_ a_Go<o5st>y some6_Take8;do"
"wn4pa=1rou7_17 _<h;_ m?_nd_ on_085wall_ b_e _"
" t_ss it_?4bu_ore_9, 0.@, 9$";
#define eq ==
#define ne =!
#define xor ^=
#define nz(x) !(x=0)
#define or(x, z) else if (c eq x && nz(c) &&(c ne z));
int p(char *x)
{
char *s = x;
unsigned char c;
for (d[c=0]=y; !x && (d[c+1] = strchr(s=d[c], '_')); *(d[++c]++)=0);

for (x = s?:x; (c = *s++); c?putchar(c):0) {
if (!(((c xor 48) & ~0xf) &&(c xor 48))) p(d[c]), c = 0;
or('$', p(b-99 ? ".\n":".") && p(b-99 ? x : ""))
or('@', c && p(d[!!b--+2]))
or('/', c && p(b^1?"s":""))
or('#', b++ ? p("So6"+--b): !printf("%d", b?--b:(b += 99)))
or('S', !(++u%3)*32 + 78)
or('.', puts("."))
}
return c;
}

int main()
{
return p(0);
}</lang>

Revision as of 09:39, 19 August 2011

<lang c>#include <stdio.h>

  1. include <string.h>

int b = 99, u = 1; char *d[16], y[] = "#:ottle/ of:eer_ a_Go<o5st>y some6_Take8;do" "wn4pa=1rou7_17 _<h;_ m?_nd_ on_085wall_ b_e _" " t_ss it_?4bu_ore_9, 0.@, 9$";

  1. define eq ==
  2. define ne =!
  3. define xor ^=
  4. define nz(x) !(x=0)
  5. define or(x, z) else if (c eq x && nz(c) &&(c ne z));

int p(char *x) { char *s = x; unsigned char c; for (d[c=0]=y; !x && (d[c+1] = strchr(s=d[c], '_')); *(d[++c]++)=0);

for (x = s?:x; (c = *s++); c?putchar(c):0) { if (!(((c xor 48) & ~0xf) &&(c xor 48))) p(d[c]), c = 0; or('$', p(b-99 ? ".\n":".") && p(b-99 ? x : "")) or('@', c && p(d[!!b--+2])) or('/', c && p(b^1?"s":"")) or('#', b++ ? p("So6"+--b): !printf("%d", b?--b:(b += 99))) or('S', !(++u%3)*32 + 78) or('.', puts(".")) } return c; }

int main() { return p(0); }</lang>