diff options
author | Norbert Preining <preining@logic.at> | 2007-11-27 15:35:45 +0000 |
---|---|---|
committer | Norbert Preining <preining@logic.at> | 2007-11-27 15:35:45 +0000 |
commit | 29cbf8db28f83fd841f74f391592ec6e9df52eac (patch) | |
tree | 30505e3b683254827830d7e900c202c2522a2172 /Master/texmf-dist/metapost/bbcard/bbcard.mp | |
parent | 3d188c93838fdcc0d7c9041619fd041d87edbce1 (diff) |
new metapost package bbcard
git-svn-id: svn://tug.org/texlive/trunk@5624 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Master/texmf-dist/metapost/bbcard/bbcard.mp')
-rw-r--r-- | Master/texmf-dist/metapost/bbcard/bbcard.mp | 262 |
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; |