summaryrefslogtreecommitdiff
path: root/Master/texmf-dist/metapost/bbcard/bbcard.mp
diff options
context:
space:
mode:
Diffstat (limited to 'Master/texmf-dist/metapost/bbcard/bbcard.mp')
-rw-r--r--Master/texmf-dist/metapost/bbcard/bbcard.mp262
1 files changed, 262 insertions, 0 deletions
diff --git a/Master/texmf-dist/metapost/bbcard/bbcard.mp b/Master/texmf-dist/metapost/bbcard/bbcard.mp
new file mode 100644
index 00000000000..1d03256b68f
--- /dev/null
+++ b/Master/texmf-dist/metapost/bbcard/bbcard.mp
@@ -0,0 +1,262 @@
+
+% bullshit bingo card
+% prepared by patrick tj mcphee, december 2002 ptjm@interlog.com
+% released to the public domain. have fun
+
+% concept and many phrases taken from
+% http://www.perkigoth.com/home/kermit/stuff/BullshitBingo
+% others from the list of banished words of Lake Superior State University:
+% http://www.lssu.edu/banished
+% my thanks to all who have contributed to these efforts
+
+% to run off a single card, give a command like
+% mpost bbcard
+% and the card will written to bbcard.ps
+
+% to run off cards for several players, try
+% mpost '\nocards := 7; input bbcard'
+% and the cards will be written to bbcard.1, bbcard.2, .., bbcard.7
+
+% to add additional phrases, duplicate one of the lines starting with
+% i := i + 1; bs[i] :=
+% and replace the phrase in quotes
+% I keep them in alphabetical order to ease maintenance, but you don't
+% have to. I suggest commenting out phrases which are not known in
+% your community and adding the irritating ones which are.
+
+input breakwidth;
+
+defaultfont := "ptmr8r";
+
+prologues := 2;
+
+string bs[];
+i := 0;
+
+i := i + 1; bs[i] := "action item";
+i := i + 1; bs[i] := "actual facts";
+i := i + 1; bs[i] := "articulate";
+i := i + 1; bs[i] := "as we speak";
+i := i + 1; bs[i] := "at the end of the day";
+i := i + 1; bs[i] := "at this point in time";
+i := i + 1; bs[i] := "backward compatible";
+i := i + 1; bs[i] := "ballpark";
+i := i + 1; bs[i] := "bandwidth";
+i := i + 1; bs[i] := "basically";
+i := i + 1; bs[i] := "been there, done that";
+i := i + 1; bs[i] := "benchmark";
+i := i + 1; bs[i] := "best of breed";
+i := i + 1; bs[i] := "best practice";
+i := i + 1; bs[i] := "buzz";
+i := i + 1; bs[i] := "by and large";
+i := i + 1; bs[i] := "challenge";
+i := i + 1; bs[i] := "client-focused";
+i := i + 1; bs[i] := "collaborative";
+i := i + 1; bs[i] := "conceptualize";
+i := i + 1; bs[i] := "core business";
+i := i + 1; bs[i] := "core competency";
+i := i + 1; bs[i] := "critical path";
+i := i + 1; bs[i] := "down the road";
+i := i + 1; bs[i] := "down time";
+i := i + 1; bs[i] := "downsizing";
+i := i + 1; bs[i] := "drill down";
+i := i + 1; bs[i] := "dynamic";
+i := i + 1; bs[i] := "each and every";
+i := i + 1; bs[i] := "empower employees";
+i := i + 1; bs[i] := "extreme";
+i := i + 1; bs[i] := "fast-track";
+i := i + 1; bs[i] := "fault tolerant";
+i := i + 1; bs[i] := "front lines";
+i := i + 1; bs[i] := "game plan";
+i := i + 1; bs[i] := "gap analysis";
+i := i + 1; bs[i] := "go public";
+i := i + 1; bs[i] := "go the extra mile";
+i := i + 1; bs[i] := "going forward";
+i := i + 1; bs[i] := "hard-won lessons";
+i := i + 1; bs[i] := "hardball";
+i := i + 1; bs[i] := "having said that";
+i := i + 1; bs[i] := "heads up";
+i := i + 1; bs[i] := "issues";
+i := i + 1; bs[i] := "knock-on effect";
+i := i + 1; bs[i] := "knowledgebase";
+i := i + 1; bs[i] := "lessons learned";
+i := i + 1; bs[i] := "make no mistake";
+i := i + 1; bs[i] := "manage expectations";
+i := i + 1; bs[i] := "meaningful";
+i := i + 1; bs[i] := "metrics";
+i := i + 1; bs[i] := "mind share";
+i := i + 1; bs[i] := "mindset";
+i := i + 1; bs[i] := "mission critical";
+i := i + 1; bs[i] := "move the goal posts";
+i := i + 1; bs[i] := "movers and shakers";
+i := i + 1; bs[i] := "new economy";
+i := i + 1; bs[i] := "no blame";
+i := i + 1; bs[i] := "no-brainer";
+i := i + 1; bs[i] := "now, more than ever";
+i := i + 1; bs[i] := "off-site meeting";
+i := i + 1; bs[i] := "off-the-shelf";
+i := i + 1; bs[i] := "offload";
+i := i + 1; bs[i] := "on the same page";
+i := i + 1; bs[i] := "open source";
+i := i + 1; bs[i] := "out of the loop";
+i := i + 1; bs[i] := "out-source";
+i := i + 1; bs[i] := "outside the box";
+i := i + 1; bs[i] := "paradigm";
+i := i + 1; bs[i] := "partnership";
+i := i + 1; bs[i] := "proactive, not reactive";
+i := i + 1; bs[i] := "profitability";
+i := i + 1; bs[i] := "progressing";
+i := i + 1; bs[i] := "pushback";
+i := i + 1; bs[i] := "put this one to bed";
+i := i + 1; bs[i] := "results-driven";
+i := i + 1; bs[i] := "revenue";
+i := i + 1; bs[i] := "revisit";
+i := i + 1; bs[i] := "robust";
+i := i + 1; bs[i] := "run it up the flagpole";
+i := i + 1; bs[i] := "run the numbers";
+i := i + 1; bs[i] := "sales driven";
+i := i + 1; bs[i] := "scope";
+i := i + 1; bs[i] := "service oriented";
+i := i + 1; bs[i] := "slippery slide";
+i := i + 1; bs[i] := "speaks to";
+i := i + 1; bs[i] := "strategic fit";
+i := i + 1; bs[i] := "stretch the envelope";
+i := i + 1; bs[i] := "synergy";
+i := i + 1; bs[i] := "take that offline";
+i := i + 1; bs[i] := "target audience";
+i := i + 1; bs[i] := "team player";
+i := i + 1; bs[i] := "the big picture";
+i := i + 1; bs[i] := "the bottom line";
+i := i + 1; bs[i] := "think outside the box";
+i := i + 1; bs[i] := "ticks in boxes";
+i := i + 1; bs[i] := "time to market";
+i := i + 1; bs[i] := "timeline";
+i := i + 1; bs[i] := "to be perfectly honest";
+i := i + 1; bs[i] := "total quality";
+i := i + 1; bs[i] := "touch base";
+i := i + 1; bs[i] := "up to speed";
+i := i + 1; bs[i] := "user friendly";
+i := i + 1; bs[i] := "value-added";
+i := i + 1; bs[i] := "vast majority";
+i := i + 1; bs[i] := "very unique";
+i := i + 1; bs[i] := "walk the talk";
+i := i + 1; bs[i] := "web-enabled";
+i := i + 1; bs[i] := "win-win situation";
+i := i + 1; bs[i] := "wow factor";
+
+bsmax := i;
+
+radius := .5 cm;
+
+offset := 1 cm;
+boxwid := 1.9 cm;
+
+
+% co-ordinates for the grid
+pair bpos[], bpos[].ll, bpos[].ul, bpos[].ur, bpos[].lr;
+ for i = 0 upto 4:
+ for j = 0 upto 4:
+ bpos[i+j*5+1] := ((j+0.5)*boxwid, (i+0.5)*boxwid);
+ bpos[i+j*5+1].ll := (j*boxwid, i*boxwid);
+ bpos[i+j*5+1].ul := (j*boxwid, (i+1)*boxwid);
+ bpos[i+j*5+1].lr := ((j+1)*boxwid, i*boxwid);
+ bpos[i+j*5+1].ur := ((j+1)*boxwid, (i+1)*boxwid);
+ endfor;
+ endfor;
+
+picture bbcard[];
+
+% the grid itself
+bbcard[0] := image(
+ z1 = (0, radius) = z2 - (0, 5boxwid - 2radius) =
+ z6 - (5boxwid, 0) = z8 - (radius, -radius);
+ z3 = z8 + (0, 5boxwid) = z4 - (5boxwid-2radius, 0);
+ x5 = x6; y5 = y2;
+ x7 = x4;
+ y7 = y8;
+
+ pickup pencircle xscaled 4pt yscaled 1pt rotated 30;
+
+ draw z1---z2..z3---z4..z5---z6..z7---z8..cycle;
+
+ fill ((unitsquare shifted -(.5,.5)) scaled boxwid) shifted bpos[13] withcolor .8 white;
+
+ pickup pencircle scaled 1pt;
+ for i = 2 upto 5:
+ draw bpos[i].ll--bpos[i+20].lr;
+ endfor;
+
+ for i = 10 step 5 until 25:
+ draw bpos[i].ul--bpos[i-4].ll;
+ endfor;
+);
+
+% handle > 1 card if nocards was set on the command-line
+if known nocards:
+ for bsno = 1 upto nocards:
+else:
+ if unknown bsno:
+ bsno := -1;
+ fi;
+fi;
+
+ % select the strings for each card
+ % after we're done, we set the middle square to `Free Square'
+ % dups[] is used to keep track of already used values to eliminate
+ % duplicates within each grid (a playing card has four grids on it)
+
+ for bb = 1 upto 4:
+ string bstring[];
+ numeric dups[];
+
+ for i = 1 upto 25:
+ j := 1+floor(uniformdeviate bsmax);
+
+ forever:
+ exitif unknown dups[j];
+ j := 1+floor(uniformdeviate bsmax);
+ endfor;
+ dups[j] := i;
+ bstring[i] = bs[j];
+ endfor;
+
+ bstring[13] := "Free Square";
+
+ bbcard[bb] := image(
+ draw bbcard[0];
+ for i = 1 upto 25:
+ label(breaktowidth(bstring[i], 1.5cm, 11pt), bpos[i]);
+ endfor;
+ );
+ endfor;
+
+ beginfig(bsno);
+ picture p;
+ p := ("Bullshit Bingo" infont defaultfont scaled 2)
+ shifted ((offset, 3offset)+2.25*ulcorner bbcard[0]);
+
+ fill ((llcorner p)..(ulcorner p).. tension 2 .. (urcorner p)..
+ (lrcorner p) .. tension 2 .. cycle)
+ withcolor .5 white;
+ draw p withcolor white;
+
+ draw ("Advanced Playing Card" infont defaultfont scaled 1.2)
+ shifted ((lrcorner p) + (10pt, 6pt));
+ draw ("Stay awake!" infont defaultfont)
+ shifted ((lrcorner p) + (10pt, -14pt));
+ draw ("Watch for duplicates!" infont defaultfont)
+ shifted ((lrcorner p) + (10pt, -25pt));
+ draw ("Have fun!" infont defaultfont)
+ shifted ((lrcorner p) + (10pt, -36pt));
+
+ draw bbcard[1] shifted (offset, offset);
+ draw bbcard[2] shifted ((1.25offset, offset)+lrcorner bbcard[0]);
+ draw bbcard[3] shifted ((1.25offset, 2offset)+urcorner bbcard[0]);
+ draw bbcard[4] shifted ((offset, 2offset)+ulcorner bbcard[0]);
+ endfig;
+
+if known nocards:
+ endfor;
+fi;
+
+end;