Gratuitous program! banner maker

L

luserXtrog

511(1)10:21 PM:~ 0> cat ban.c && make ban && ban F00_is_U!
#include <stdio.h>
#include <string.h>

enum {
A = 1<<0,
B = 1<<1,
C = 1<<2,
D = 1<<3,
E = 1<<4,
F = 1<<5,
G = 1<<6,
H = 1<<7,
};

char vec[] = "0123456789"
"abcdefghijklmnopqrstuvwxyz"
"ABCDEFGHIJKLMNOPQRSTUVWXYZ"
".,:/\\|+-*=";

unsigned char map[sizeof(vec)][8] = {
/*0*/ {B|C|D|E|F, A|F|G, A|E|G, A|D|G, A|C|G, A|B|G, B|C|D|E|F,
0},
/*1*/ {G, F|G, G, G, G, G, G, 0},
/*2*/ {B|C|D|E|F, A|G, G, C|D|E|F, B, A, A|B|C|D|E|F|G, 0},
/*3*/ {B|C|D|E|F, A|G, G, C|D|E|F, G, A|G, B|C|D|E|F, 0},
/*4*/ {A|F, A|F, A|F, B|C|D|E|F|G, F, F, F, 0},
/*5*/ {A|B|C|D|E|F|G, A, A, B|C|D|E|F, G, A|G, B|C|D|E|F, 0},
/*6*/ {B|C|D|E|F, A, A, A|B|C|D|E|F, A|G, A|G, B|C|D|E|F, 0},
/*7*/ {B|C|D|E|F|G, G, F, E, D, C, B, 0},
/*8*/ {B|C|D|E|F, A|G, A|G, B|C|D|E|F, A|G, A|G, B|C|D|E|F, 0},
/*9*/ {B|C|D|E|F, A|G, A|G, B|C|D|E|F|G, G, G, B|C|D|E|F, 0},
/*a*/ {0, 0, B|C|D|E, F, B|C|D|E|F, A|F, B|C|D|E|G, 0},
/*b*/ {B, B, B, B|C|D|E|F, B|G, B|G, A|C|D|E|F, 0},
/*c*/ {0, 0, C|D|E, B|F, A, A, B|F, C|D|E},
/*d*/ {F, F, F, B|C|D|E|F, A|F, A|F, B|C|D|E|G, 0},
/*e*/ {0, 0, B|C|D|E, A|F, A|B|C|D|E|F, A, B|C|D|E, 0},
/*f*/ {C|D|E, B, B, A|B|C|D, B, B, B, 0},
/*g*/ {0, 0, B|C|D|E|G, A|F, A|F, B|C|D|E, F, B|C|D|E},
/*h*/ {B, B, B, B|C|D|E, B|F, B|F, A|B|F, 0},
/*i*/ {0, C, 0, B|C, C, C, A|B|C|D|E, 0},
/*j*/ {0, D, 0, D, D, D, A|D, B|C},
/*k*/ {B, B|E, B|D, B|C, B|D, B|E, A|B|E|F, 0},
/*l*/ {A|B, B, B, B, B, B, A|B|C, 0},
/*m*/ {0, 0, 0, A|C|E|F, A|B|D|G, A|D|G, A|D|G, 0},
/*n*/ {0, 0, 0, B|D|E, B|C|F, B|F, B|F, 0},
/*o*/ {0, 0, B|C|D|E, A|F, A|F, A|F, B|C|D|E, 0},
/*p*/ {0, 0, A|B|C|D|E, B|F, B|F, B|C|D|E, B, A|B},
/*q*/ {0, 0, B|C|D|E|G, A|F, A|F, B|C|D|E, F, F|G},
/*r*/ {0, 0, A|B|D|E, B|C|F, B, B, A|B, 0},
/*s*/ {0, 0, B|C|D|E, A, B|C|D|E, F, A|B|C|D|E, 0},
/*t*/ {0, C, C, A|B|C|D|E, C, C, D|E, 0},
/*u*/ {0, 0, A|F, A|F, A|F, A|F, B|C|D|E|G, 0},
/*v*/ {0, 0, A|G, B|F, B|F, C|E, D, 0},
/*w*/ {0, 0, A|G, A|G, A|D|G, A|D|G, B|C|E|F, 0},
/*x*/ {0, 0, A|F, B|E, C|D, B|E, A|F, 0},
/*y*/ {0, 0, B|F, B|F, B|F, C|F, A|D|E, B|C|D},
/*z*/ {0, 0, A|B|C|D|E|F, E, D, C, B|C|D|E|F|G, 0},
/*A*/ {D, C|E, B|F, A|G, A|B|C|D|E|F|G, A|G, A|G, 0},
/*B*/ {A|B|C|D|E, A|F, A|F, A|B|C|D|E, A|F, A|F, A|B|C|D|E, 0},
/*C*/ {C|D|E, B|F, A, A, A, B|F, C|D|E, 0},
/*D*/ {A|B|C|D, A|E, A|F, A|F, A|F, A|E, A|B|C|D, 0},
/*E*/ {A|B|C|D|E|F, A, A, A|B|C|D|E, A, A, A|B|C|D|E|F, 0},
/*F*/ {A|B|C|D|E|F, A, A, A|B|C|D|E, A, A, A, 0},
/*G*/ {C|D|E, B|F, A, A, A|E|F|G, B|F|G, C|D|E|G, 0},
/*H*/ {A|G, A|G, A|G, A|B|C|D|E|F|G, A|G, A|G, A|G, 0},
/*I*/ {A|B|C|D|E, C, C, C, C, C, A|B|C|D|E, 0},
/*J*/ {A|B|C|D|E, C, C, C, C, C, A|C, B},
/*K*/ {A|F, A|E, A|D, A|B|C, A|D, A|E, A|F, 0},
/*L*/ {A, A, A, A, A, A, A|B|C|D|E|F, 0},
/*M*/ {A|B|F|G, A|C|E|G, A|D|G, A|G, A|G, A|G, A|G, 0},
/*N*/ {A|G, A|B|G, A|C|G, A|D|G, A|E|G, A|F|G, A|G, 0},
/*O*/ {C|D|E, B|F, A|G, A|G, A|G, B|F, C|D|E, 0},
/*P*/ {A|B|C|D, A|E, A|E, A|B|C|D, A, A, A, 0},
/*Q*/ {C|D|E, B|F, A|G, A|G, A|C|G, B|D|F, C|D|E, F|G},
/*R*/ {A|B|C|D, A|E, A|E, A|B|C|D, A|E, A|F, A|F, 0},
/*S*/ {C|D|E, B|F, C, D, E, B|F, C|D|E, 0},
/*T*/ {A|B|C|D|E|F|G, D, D, D, D, D, D, 0},
/*U*/ {A|G, A|G, A|G, A|G, A|G, B|F, C|D|E, 0},
/*V*/ {A|G, A|G, B|F, B|F, C|E, C|E, D, 0},
/*W*/ {A|G, A|G, A|G, A|G, A|D|G, A|C|E|G, B|F, 0},
/*X*/ {A|G, A|G, B|F, C|D|E, B|F, A|G, A|G, 0},
/*Y*/ {A|G, A|G, B|F, C|E, D, D, D, 0},
/*Z*/ {A|B|C|D|E|F|G, F, E, D, C, B, A|B|C|D|E|F|G, 0},
/*.*/ {0, 0, 0, 0, 0, 0, D, 0},
/*,*/ {0, 0, 0, 0, 0, E, E, D},
/*:*/ {0, 0, 0, 0, D, 0, D, 0},
/*/ */ {G, F, E, D, C, B, A, 0},
/*\\*/ {A, B, C, D, E, F, G, 0},
/*|*/ {D, D, D, D, D, D, D, D},
/*+*/ {0, D, D, B|C|D|E|F, D, D, 0, 0},
/*-*/ {0, 0, 0, B|C|D|E|F, 0, 0, 0, 0},
/***/ {0, B|D|F, C|D|E, D, C|D|E, B|D|F, 0, 0},
/*=*/ {0, 0, B|C|D|E|F, 0, B|C|D|E|F, 0, 0, 0}
};

int enc(int c) { return strchr(vec,c)-vec; }

void show(char *s) {
int row,col;
char *sp;
for (row=0; row<8; row++, putchar('\n'))
for (sp = s; *sp; sp++)
if (strchr(vec,*sp)!=NULL)
for (col=0; col<8; col++)
putchar(map[enc(*sp)][row] & 1<<col ? *sp:' ');
}

int main(int c,char **v) {
for (--c,++v;*v;v++,c--) show(*v);
return 0;
}


/*
01234567 01234567 01234567 01234567 01234567 01234567
0 ##### # ### #
1 # # # # #
2 # # #### # # #### # #
3 ##### # ##### ##### # # ####
4 # # ##### # # # # # # #
5 # # # # # # # #### # #
6 ##### #### # # #### # # ## #
7 ####
*/

/*
01234567 01234567 01234567 01234567 01234567 01234567
0 #
1 # # # #
2 # # # ##### #### #
3 ## # ## ### ## # # # #
4 # # # # # # # # # # #
5 # # # # # # # #### ####
6 ##### # # ## ## ## # # # #
7 ## ## ##
*/

/*
01234567 01234567 01234567 01234567 01234567 01234567
0
1
2 ## ## #### # # # # ###### # #
3 ## # # # # # # # # #
4 # #### ## # # # # # #
5 # # # # # # # # # #
6 ## ##### # # # ## ###### ## ##
7 ###
*/

/*
01234567 01234567 01234567 01234567 01234567 01234567
0 # ##### ### #### ##### # #
1 # # # # # # # # # # #
2 # # # # # # # # # #
3 # # ##### # # # # # #
4 ##### # # # # # # # # #
5 # # # # # # # # # # # # #
6 # # ##### ### #### # # # #
7 #
*/

cc ban.c -o ban
FFFFFF 00000 00000 U U
F 0 00 0 00 i U U
F 0 0 0 0 0 0 ssss U U
FFFFF 0 0 0 0 0 0 ii s U U
F 0 0 0 0 0 0 i ssss U U
F 00 0 00 0 i s U U
F 00000 00000 iiiii sssss UUU
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,755
Messages
2,569,536
Members
45,011
Latest member
AjaUqq1950

Latest Threads

Top