diff options
author | Jordan K. Hubbard <jkh@FreeBSD.org> | 1994-09-04 04:03:31 +0000 |
---|---|---|
committer | Jordan K. Hubbard <jkh@FreeBSD.org> | 1994-09-04 04:03:31 +0000 |
commit | 554eb505f88b72f17fd718c5b2c4cff707c0f817 (patch) | |
tree | a9f8f9086491ddb64c3de11026474c8cb3cf2dd6 /games/quiz | |
parent | 28178404aff64c092070e5d3ec53c13d06f6a471 (diff) | |
download | src-554eb505f88b72f17fd718c5b2c4cff707c0f817.tar.gz src-554eb505f88b72f17fd718c5b2c4cff707c0f817.zip |
Bring in the 4.4 Lite games directory, modulo man page changes and segregation
of the x11 based games. I'm not going to tag the originals with bsd_44_lite
and do this in two stages since it's just not worth it for this collection,
and I've got directory renames to deal with that way. Bleah.
Submitted by: jkh
Notes
Notes:
svn path=/cvs2svn/branches/unlabeled-1.1.1/; revision=2490
Diffstat (limited to 'games/quiz')
40 files changed, 2799 insertions, 0 deletions
diff --git a/games/quiz/Makefile b/games/quiz/Makefile new file mode 100644 index 000000000000..804464424ff6 --- /dev/null +++ b/games/quiz/Makefile @@ -0,0 +1,16 @@ +# @(#)Makefile 8.1 (Berkeley) 5/31/93 + +PROG= quiz +MAN6= quiz.6 +SRCS= quiz.c rxp.c +CATS= africa america areas arith asia babies bard chinese collectives \ + ed elements europe flowers greek inca index latin locomotive \ + midearth morse murders poetry posneg pres province seq-easy seq-hard \ + sexes sov spell state trek ucc +HIDEGAME=hidegame + +beforeinstall: + (cd ${.CURDIR}/datfiles; install -c -o ${BINOWN} -g ${BINGRP} -m 444 \ + ${CATS} ${DESTDIR}/usr/share/games/quiz.db) + +.include <bsd.prog.mk> diff --git a/games/quiz/datfiles/africa b/games/quiz/datfiles/africa new file mode 100644 index 000000000000..6e7455038c46 --- /dev/null +++ b/games/quiz/datfiles/africa @@ -0,0 +1,43 @@ +Algeria:Alg[iers|er] +Botswana:Gaberones +Burundi:Bujumbura +Cameroun:Yaound['e|e'|e] +Central Africa{n Rep{ublic}}:Bangui +Chad:Ndjamena +Congo:Brazzaville +Dahomey:Porto Novo +Ethiopia:Addis Ababa +Gabon:Libreville +Ghana:Accra +Guinea-Bissau:Bissau +Guinea:Conakry +Ivory Coast:Abidjan +Kenya:Nairobi +Lesotho:Maseru +Liberia:Monrovia +Libya:Al Bayda{'} +Malagasy{ Rep{ublic}}|Madagascar:Tananarive +Malawi:Zomba +Mali:Bamako +Mauritania:Nouakchott +Morocco:Rabat +Mo[z|,c|c,|c]ambique:Louren[,c|c,|c]o Marques +Niger:Niamey +Nigeria:Lagos +Rhodesia:Salisbury +Rwanda:Kigali +Senegal:Dakar +Sierra Leone:Freetown +Somali{ Rep{ublic}}:Mogadis[cio|hu] +Sudan:Khartoum +Swaziland:Mbabane +Tanzania:Dar es Salaam +Togo:Lom['e|e'|e] +Tunisia:Tunis +Uganda:Kampala +United Arab Rep{ublic}|Egypt:Cairo +Upper Volta:Ouagadougou +Zambia:Lusaka +Za["i|i"|i]re:Kinshasha +{Rep{ublic} of }South Africa:Pretoria +{The }Gambia:Bathurst diff --git a/games/quiz/datfiles/america b/games/quiz/datfiles/america new file mode 100644 index 000000000000..7f8fee112120 --- /dev/null +++ b/games/quiz/datfiles/america @@ -0,0 +1,27 @@ +Argentina:Buenos Aires +Bahamas:Nassau +Barbados:Bridgetown +Bolivia:La Paz|Sucre +Bra[z|s]il:Brasilia +Canada:Ottawa +Chile:Santiago +Colombia:Bogot['a|a'|a] +Costa Rica:San Jose +Cuba:Ha[v|b]ana +Dominican Republic:Santo Domingo +Ecuador:Quito +El Salvador:San Salvador +Guatemala:Guatemala +Guyana:Georgetown +Haiti:Port au Prince +Honduras:Tegucigalpa +Jamaica:Kingston +Mexico:Mexico +Nicaragua:Managua +Panama:Panama +Paraguay:Asunci['o|o'|o]n +Peru:Lima +Trinidad[ and Tobago|]:Port of Spain +United States|US{A}:Washington +Uruguay:Montevideo +Venezuela:Caracas diff --git a/games/quiz/datfiles/areas b/games/quiz/datfiles/areas new file mode 100644 index 000000000000..25a241be83c9 --- /dev/null +++ b/games/quiz/datfiles/areas @@ -0,0 +1,124 @@ +201:northern new jersey|NJ:newark +202:washington d c|DC: +203:connecticut|CT: +204:manitoba: +205:alabama|AL: +206:western washington state|WA:seattle +207:maine|ME: +208:idaho|ID: +209:central california|CA:fresno +212:new york city, new york|NY: +213:los angeles, california|CA: +214:northeastern texas|TX:dallas +215:southeastern pennsylvania|PA:philadelphia +216:northeastern ohio|OH:akron +217:central illinois|IL:springfield +218:northern minnesota|MN:duluth +219:northern indiana|IN:south bend +301:maryland|MD: +302:delaware|DE: +303:colorado|CO: +304:west virginia|WV: +305:southeastern florida|FL:miami +306:saskatchewan: +307:wyoming|WY: +308:western nebraska|NE:omaha +309:northwestern illinois|IL:peoria +312:chicago, illinois|IL: +313:eastern michigan|MI:detroit +314:southeastern missouri|MO:jefferson city +315:northern central new york|NY:syracuse +316:southern kansas|KS:wichita +317:central indiana|IN:indianapolis +318:western louisiana|LA:shreveport +319:eastern iowa|IA:cedar rapids +401:rhode island|RI: +402:eastern nebraska|NE:north platte +403:alberta: +404:northern georgia|GA:atlanta +405:western oklahoma|OK:oklahoma city +406:montana|MT: +408:central coastal california|CA:san jose +412:western pennsylvania|PA:pittsburgh +413:western massachusetts|MA:springfield +414:southeastern wisconsin|WI:milwaukee +415:san francisco, california|CA: +416:southern central ontario:toronto +417:southwestern missouri|MO:springfield +418:northeastern quebec:quebec +419:northwestern ohio|OH:toledo +501:arkansas|AR: +502:western kentucky|KY:louisville +503:oregon|OR: +504:eastern louisiana|LA:new orleans +505:new mexico|NM: +506:new brunswick: +507:southern minnesota|MN:rochester +509:eastern washington state|WA:spokane +512:southern texas|TX:austin +513:southwestern ohio|OH:dayton +514:southwestern quebec:montreal +515:central iowa|IA:des moines +516:long island, new york|NY: +517:central michigan|MI:lansing +518:northeastern new york|NY:albany +519:southwestern ontario:windsor +601:mississippi|MS: +602:arizona|AZ: +603:new hampshire|NH: +604:british columbia: +605:south dakota|SD: +606:eastern kentucky|KY:ashland +607:southern central new york|NY:ithaca, binghamton +608:southwestern wisconsin|WI:madison +609:southern new jersey|NJ:trenton +612:central minnesota|MN:minneapolis +613:southeastern ontario:ottawa +614:southeastern ohio|OH:columbus +615:eastern tennessee|TN:nashville +616:western michigan|MI:grand rapids +617:eastern massachusetts|MA:boston +618:southern illinois|IL:centralia +701:north dakota|ND: +702:nevada|NV: +703:western virginia|VA:arlington +704:western north carolina:charlotte +705:northeastern ontario:sault ste. marie +707:northwestern california|CA:santa rosa +709:newfoundland: +712:western iowa|IA:council bluffs +713:southeastern texas|TX:houston +714:southern california|CA:san diego +715:northern wisconsin|WI:superior +716:northern western new york|NY:buffalo, rochester +717:eastern pennsylvania|PA:wilkes-barre, scranton +801:utah|UT: +802:vermont|VT: +803:south carolina|SC: +804:eastern virginia|VA:richmond +805:southern central coastal california|CA:bakersfield +806:panhandle texas|TX:amarillo +807:western ontario:fort william +808:hawaii|HI: +809:bermuda, puerto rico, virgin islands, caribbean: +812:southern indiana|IN:evansville +813:southwestern florida|FL:st. petersburg +814:central pennsylvania|PA:erie +815:northeastern illinois|IL:rockford +816:northern missouri|MO:kansas city +817:northern central texas|TX:fort worth +819:northwestern quebec:trois rivieres +901:western tennessee|TN:memphis +902:nova scotia, prince edward island: +903:western mexico:mexicali +904:northern florida|FL:jacksonville +905:eastern mexico:mexico city +906:upper michigan|MI:escanaba +907:alaska|AK: +912:southern georgia|GA:savannah +913:northern kansas|KS:topeka +914:southern new york|NY:westchester county +915:western texas|TX:el paso +916:northeastern california|CA:sacramento +918:eastern oklahoma|OK:tulsa +919:eastern north carolina|NC:raleigh diff --git a/games/quiz/datfiles/arith b/games/quiz/datfiles/arith new file mode 100644 index 000000000000..64babb563fd1 --- /dev/null +++ b/games/quiz/datfiles/arith @@ -0,0 +1,45 @@ +63 - ... = 55:8 +147 - 3 = ...:144 +614 - 9 ...:605 +465 - 7 = ...:458 +563 - ... = 560:3 +33 - 14 = ...:19 +42 - ... = 37:5 +264 - 3 = ...:261 +763 - 8 = ...:755 +375 - 6 = ...:369 +736 - ... = 728:8 +62 - 34 = ...:28 +75 - 8 = ...:67 +244 - ... = 230:14 +478 - 19 = ...:459 +78 - ... = 75:3 +679 - 5 = ...:674 +564 - 7 = ...:557 +761 - 5 = ...:756 +718 - ... = 716:2 +56 - 18 = ...:38 +65 - ... = 48:17 +748 - 5 = ...:743 +856 - 8 = ...:848 +763 - 5 = ...:758 +445 - ... = 436:9 +94 - 55 = ...:39 +42 - 9 = ...:33 +483 - ... = 455:28 +742 - ... = 714:28 +84 - ... = 75:9 +569 - 7 = ...:562 +856 - 7 = ...:849 +324 - 6 = ...:318 +437 - ... = 432:5 +84 - 56 = ...:28 +81 - ... = 65:16 +326 - 4 = ...:322 +643 - 7 = ...:636 +546 - 9 = ...:537 +842 - ... = 835:7 +53 - 39 = ...:14 +63 - 48 = ...:15 +57 - 38 = ...:19 +52 - 26 = ...:26 diff --git a/games/quiz/datfiles/asia b/games/quiz/datfiles/asia new file mode 100644 index 000000000000..02ebff451394 --- /dev/null +++ b/games/quiz/datfiles/asia @@ -0,0 +1,41 @@ +Afghanistan:Kabul +Australia:Canberra +Bahrein:Manama +Bangladesh:Dacca +Bhutan:Thimbu +Burma:Rangoon +China:Peking +Cyprus:Nicosia +India:New Delhi +Indonesia:Djakarta +Iran:Tehran +Iraq:Baghdad +Israel:Jerusalem +Japan:Tokyo +Jordan:Amman +Khmer|Cambodia:P{h}nom Penh +Kuwait:Al-kuwait +Laos:Vientiane +Lebanon:Beirut +Malaysia:Kuala Lumpur +Maldive Islands:Male +Mongolia:Ulan Bator +Nepal:Katmandu +North Korea:P{'}yongyang +North Yemen:San{'}a +Oman:Muscat +Pakistan:Islamabad +Papua[-| ]New Guinea:Port Moresby +Philippines:Quezon City +Qatar:Doha +Saudi Arabia:Riyadh|J{ei}ddah +Singapore:Singapore +South Korea:Seoul +South Yemen:Aden +Sri Lanka:Colombo +Syria:Damascus +Taiwan:Taipei +Thailand:Bangkok +Turkey:Ankara +United Arab Emirates:Abu Dhabi +Vietnam:Hanoi diff --git a/games/quiz/datfiles/babies b/games/quiz/datfiles/babies new file mode 100644 index 000000000000..5305c0cabc72 --- /dev/null +++ b/games/quiz/datfiles/babies @@ -0,0 +1,21 @@ +cub:lion|tiger|bear +kitten:cat|fox|skunk|rabbit|bobcat|panther +gosling:goose +colt|foal:horse|donkey|zebra +puppy:dog +pup:seal|fox|beaver +duckling:duck +fawn:deer +piglet|shoat:pig +lamb:sheep +kid:goat|antelope +chick:chicken +tadpole|polliwog:frog|toad +joey:kangaroo +calf:cow|whale|moose|elephant|buffalo|giraffe +caterpillar:butterfly|moth +elver:eel +eaglet:eagle +owlet:owl +fingerling|fry:fish +nestling:bird diff --git a/games/quiz/datfiles/bard b/games/quiz/datfiles/bard new file mode 100644 index 000000000000..56c76ed7c00c --- /dev/null +++ b/games/quiz/datfiles/bard @@ -0,0 +1,228 @@ +The quality of mercy is not strain['|e]d:\ +It droppeth as the gentle rain from heaven:\ +{The }Merchant{ of Venice{ IV-i}}:\ +Portia +Friends{,} Romans{,} Countrymen:\ +lend me your ears{;}:\ +{Julius }Caesar{ III-ii}:\ +{Mark }Antony +Neither a borrower nor a lender be:\ +For loan oft loses both itself and friend{.}:\ +Hamlet{ I-iii}:\ +Polonius +To be{,} or not to be{\:}:\ +that is the question{\:}:\ +Hamlet{ III-i}:\ +Hamlet +Alas{,} poor Yorick{!}:\ +I knew him{,} Horatio{;}:\ +Hamlet{ V-i}:\ +Hamlet +Double{,} double toil and trouble{;}:\ +Fire burn and cauldron bubble{.}:\ +Macbeth{ IV-i}:\ +Witch{es} +By the pricking of my thumbs{,}:\ +Something wicked this way comes{.}:\ +Macbeth{ IV-i}:\ +{Second |2nd }Witch +Out, damned spot! out, I say!:\ +:\ +Macbeth{ V-i}:\ +Lady Macbeth +Unbidden guests:\ +Are often welcomest when they are gone{.}:\ +{King }Henry VI{,} Part I{ I-ii}:\ + +She is a woman{,} therefore may be woo'd{;}:\ +She is a woman{,} therefore may be [won|screw'd]{.}:\ +Titus Andronicus{ II-i}:\ +Demetrius +Such duty as the subject owes the prince{,}:\ +Even such a woman oweth to her husband{.}:\ +{The }Taming of the Shrew{ V-ii}:\ +Kate +Who is Silvia{?} what is she{,}:\ +That all our swains commend her{?}:\ +{The }Two Gentlemen of Verona{ IV-ii}:\ +Thurio +Tu-whit{,} tu-who[ - | |--]a merry note{,}:\ +While greasy Joan doth keel the pot{.}:\ +Love's Labo{u}r Lost{ V-ii}:\ +Winter +My only love sprung from my only hate{!}:\ +Too early seen unknown{,} and known too late{!}:\ +Romeo{ and Juliet{ I-v}}:\ +Juliet +But{,} soft{!} what light through yonder window breaks{?}:\ +It is the east{,} and Juliet is the sun{!}:\ +Romeo{ and Juliet{ II-ii}}:\ +Romeo +What's in a name{?} That which we call a rose:\ +By any other name would smell as sweet{.}:\ +Romeo{ and Juliet{ II-ii}}:\ +Juliet +Good night{,} good night{!} parting is such sweet sorrow{,}:\ +That I shall say good night till it be morrow{.}:\ +Romeo{ and Juliet{ II-ii}}:\ +Juliet +A plague o['|n] both your houses{!}:\ +They have made worms' meat of me{.}:\ +Romeo{ and Juliet{ III-i}}:\ +Mercutio +This royal throne of kings{,} this scepter['|e]d isle{,}:\ +This earth of majesty{,} this seat of Mars{,}:\ +{King }Richard II{ II-i}:\ +John of Gaunt +Not all the water in a rough rude sea:\ +Can wash the balm from an anointed king{.}:\ +{King }Richard II{ III-ii}:\ +{King }Richard II +I'll put a girdle round the earth:\ +In forty minutes{.}:\ +{A }Midsummer[-| ]Night's Dream{ II-i}:\ +Puck +I can call spirits from the vasty deep{.}:\ +Why{,} so can I{,} or so can any man{;}:\ +{King }Henry IV{,} Part I{ II-iv}:\ + +There are more things in heaven and earth{,} Horatio{,}:\ +Than are dream[t|ed] of in your philosophy{.}:\ +Hamlet{ I-v}:\ +Hamlet +The time is out of joint{;} O cursed spite{,}:\ +That ever I was born to set it right{!}:\ +Hamlet{ I-v}:\ +Hamlet +Once more unto the breach{,} dear friends{,} once more{;}:\ +Or close the wall up with our English dead{.}:\ +{King }Henry V{ III-i}:\ +{King }Henry V +Was ever woman in this humour woo['|e]d{?}:\ +Was ever woman in this humour [won|screw'd]{?}:\ +{King }Richard III{ I-ii}:\ +{King }Richard III +Now is the winter of our discontent:\ +Made glorious summer by this sun of York:\ +{King }Richard III{ I-i}:\ +{King }Richard III +There['s| is] a divinity that shapes our ends{,}:\ +Rough[-| ]hew them how we will{.}:\ +Hamlet{ V-ii}:\ +Hamlet +There is a tide in the affairs of men:\ +Which{,} taken at the flood{,} leads on to fortune{;}:\ +{Julius }Caesar{ IV-iii}:\ +Brutus +Never{,} never{,} never{,} never{,} never{.}:\ +Pray you undo this button{.}{ Thank you{,} sir{.}}:\ +{King }Lear{ V-iii}:\ +{King }Lear +I grow{,} I prosper{\:}:\ +Now{,} gods{,} stand up for bastards{!}:\ +{King }Lear{ I-ii}:\ +Edmund +The better part of valour is discretion{;}:\ +in the which better part I have saved my life{.}:\ +{King }Henry IV{,} Part I{ V-iv}:\ +Falstaff +Asses are made to bear{,} and so are you{.}:\ +Women are made to bear{,} and so are you{.}:\ +{The }Taming of the Shrew{ II-i}:\ + +Full fathom five thy father lies{;}:\ +Of his bones are coral made{;}:\ +{The }Tempest{ I-ii}:\ +Ariel +She lov['|e]d me for the dangers I had pass['|e]d{;}:\ +And I lov['|e]d her that she did pity them{.}:\ +Othello{ I-iii}:\ +Othello +Uneasy lies the head that wears a crown{.}:\ +Many good morrows to your Majesty{!}:\ +{King }Henry IV{,} Part II{ III-i}:\ + +Mislike me not for my complexion{,}:\ +The shadow['|e]d livery of the burnish['|e]d sun{.}:\ +{The }Merchant{ of Venice{ II-i}}:\ +Morocco +Cowards die many times before their deaths{;}:\ +The valiant never taste of death but once{.}:\ +{Julius }Caesar{ II-ii}:\ +Caesar +O{h}{!|,} Pardon me{,} thou bleeding piece of earth{,}:\ +That I am meek and gentle with these butchers{.}:\ +{Julius }Caesar{ III-i}:\ +{Mark }Antony +The play's the thing:\ +Wherein I'll catch the conscience of the king{.}:\ +Hamlet{ II-ii}:\ +Hamlet +How sharper than a serpent's tooth it is:\ +to have a thankless child{.}:\ +{King }Lear{ I-iv}:\ +{King }Lear +Had I but served my God with half the zeal I served my king:\ +He would not in [mine|my] old age have left me naked to [mine|my] enemies{.}:\ +{King }Henry VIII{ IV-ii}:\ +{Cardinal }Wolsey +It seems she hangs upon the cheek of night:\ +Like a rich jewel in an Ethiop's ear{.}:\ +Romeo{ and Juliet{ I-v}}:\ +Romeo +Where the bee sucks{,} there suck I{;}:\ +In a cowslip's bell I lie{.}:\ +{The }Tempest{ V-i}:\ +Ariel +O brave new world{,}:\ +That has such people [in't|in it]{!}:\ +{The }Tempest{ V-i}:\ +Miranda +Why{,} then the world's mine oyster{,}:\ +Which I with sword will open{.}:\ +{The }Merry Wives of Windsor{ II-ii}:\ +Falstaff +A goodly apple rotten at the heart{\:}:\ +O{h}{,} what a goodly outside falsehood hath{!|.}:\ +{The }Merchant{ of Venice{ I-iii}}:\ +Antonio +I never kill['|e]d a mouse{,} nor hurt a fly{;}:\ +I trod upon a worm against my will{,}:\ +Pericles{ IV-i}:\ +Marina +Golden lads and girls all must{,}:\ +Like chimney sweepers{,} come to dust{.}:\ +Cymbeline{ IV-ii}:\ +Guiderius +You blocks, you stones, you worse than senseless things!:\ +O you hard hearts{,} you cruel men of Rome{.}:\ +{Julius }Caesar{ I-i}:\ +Marullus +A horse{!|,} a horse{!|,} my kingdom for a horse{!}:\ +:\ +{King }Richard III{ V-iv}:\ +{King }Richard III +My salad days,:\ +When I was green in judg{e}ment, cold in blood{,}:\ +Antony [and|&] Cleopatra{ I-v}:\ +Cleopatra +Age cannot wither her, nor custom stale:\ +Her infinite variety{.}:\ +Antony [and|&] Cleopatra{ II-iii}:\ +Enobarbus +Give me some music\: music, moody food:\ +Of us that trade in love{.}:\ +Antony [and|&] Cleopatra{II-v}:\ +Cleopatra +'Tis better playing with a lion's whelp,:\ +Than with an old one dying{.}:\ +Antony [and|&] Cleopatra:\ +Enobarbus +The barge she sat in, like a burnished throne,:\ +Burned on the water{.} The poop was burnished gold{;|.}:\ +Antony [and|&] Cleopatra:\ +Enobarbus +Done like a Frenchman - turn and turn again!:\ +:\ +{King }Henry VI{,} Part I{ III-iii}:\ +{Joan }Pucelle|{Saint |St{.} }Joan{ of Arc} diff --git a/games/quiz/datfiles/chinese b/games/quiz/datfiles/chinese new file mode 100644 index 000000000000..66d947236a5e --- /dev/null +++ b/games/quiz/datfiles/chinese @@ -0,0 +1,12 @@ +rabbit:dragon +dragon:snake +snake:horse +horse:sheep +sheep:monkey +monkey:rooster +rooster:dog +dog:boar +boar:rat +rat:ox +ox:tiger +tiger:rabbit diff --git a/games/quiz/datfiles/collectives b/games/quiz/datfiles/collectives new file mode 100644 index 000000000000..3c4ba93466e2 --- /dev/null +++ b/games/quiz/datfiles/collectives @@ -0,0 +1,105 @@ +actors|soldiers:company +angels:host +ants:colony|hill +apes:shrewdness +asses:pace|bunch +badgers:cete +bass:shoal +bears:sloth +bees:swarm +bees|locusts:swarm +birds:dissimulation +brats:passel +buffaloes:herd +candidates:slate +caterpillars:army +cats:clowder +cattle:drove|herd +chickens:peep|flock +crows:murder +curs:cowardice +dogs:pack +doves:dule +ducks:[pad|ba]dling +earthquakes:swarm +eggs:clutch +elephants:herd +elk:gang +engineers:corps +ferrets:business +finches:charm +firemen:brigade +fish:school +foxes:skulk +gangsters:mob +geese in flight:skein +geese on water:gaggle +goats:trip +grapes|banannas:bunch +hawks:cast +hens:brood +herons:siege +horses:haras|team +hounds:kennel +jellyfish:smack +kangaroos|monkeys:troop +kittens:kindle +lapwings:deceit +larks:exaltation|bevy +leopards:leap +lions:pride +locusts:plague +magpies:tidings +maidens|quail:bevy +martens:richness +men:band +moles:labor +monkeys|kangaroos:troop +mountains:range +mules:barren|baren +nightingales:watch +operating companies:at&t|bell system +owls:parliament +oxen:drove +partridges:covey +partridges|grouse:covey +peacocks:ostentation +people:crowd +pheasants:bouquet +plovers:congregation +ponies:string +porpoises:shoal +prisoners:gang +pups:litter +quail|maidens:bevy +rabbits:nest +ravens:unkindness +rhinoceroses:crash +robbers:band +roebucks:bevy +rooks:building +rubbish:heap +seals:pod +sheep:flock +ships:fleet +snipe:walk|wisp +sparrows:host +squirrels:dray +starlings:murmuration +stars:constellation +storks:mustering +swallows:flight +teal:spring +toads:knot +turkeys:rafter +turtledoves:pitying +whales:gam|pod +whales|fish:school +witches:coven +wolves:pack +wolves:route +woodcocks:fall +woodpeckers:descent +worshippers:congregation +{H|h}uns:horde +{wild }swine:sounder diff --git a/games/quiz/datfiles/ed b/games/quiz/datfiles/ed new file mode 100644 index 000000000000..6ac8e89a9b40 --- /dev/null +++ b/games/quiz/datfiles/ed @@ -0,0 +1,84 @@ +prepare to add text at beginning of file:0a|1i +find name of file being edited:f +print last 3 lines of file:$-[2|-],$p +print previous line:[-|^]{p}|{.}-{1}{p} +print whole file:1,$p|g/[^|$]/p +delete this line and next:.{,|;}[{.}+{1}|.1]d +prepare to replace text from here to just before next "PP":\ +.{,|;}/[PP|{^}\\.PP]/-{1}c +find next "1.2":/1\\.2/{p} +find next 2-or-more digit number:\ +/\[[0|1]-9\]\[0-9\]/{p} +move rest of this paragraph (separated by "PP") to end of previous one:\ +[.,|{.}+{1},|.1,]/[PP|{^}\\.PP]/-{1}m[??|?{^}{\\.}PP?]-{1} +print every "Oxygen" or "oxygen":[g|1,$g]/\[[Oo|oO]\]xygen/[p|.p] +change each "BTL" in file to "Bell Laboratories" and check:\ +[g|1,$g]/BTL/[s|.s]/[/|BTL/]Bell Laboratories/gp +combine every even-numbered line with the next odd-numbered line:\ +2,${-{1}}g/[^|$]/[j|.,{.}+{1}j|.,.1j] +print next "SH" and following line:\ +/SH/;[{.}+{1}|.1]p|/SH/,[//|/SH/][{.}+{1}|.1]p +print from next "TS" to following "TE":/TS/;/TE/p +reverse order of lines in whole file:[g|1,$g]/^/[m|.m]0 +replace each string of x's in current line by one x:\ +[s|.s]/[x|\[x\]][x|\[x\]]*/x/g{p}{ (not s/x*/x/g)} +change first "hte" in current line to "the" and check:[s|.s]/hte/the/p +combine previous line and this one:\ +[-,|^,|{.}-{1},].j +go to line after third "PP" ahead:\ +/[PP|{^}\\.PP]/;[//|/[PP|{^}\\.PP]/];[//|/[PP|{^}\\.PP]/]\ +[{+}1|+]|;[{.}+{1}|.1]{ (not ...p)} +exchange current line with previous line:\ +[[-|^]m|{.}-{1}m].|{.}m[[--|^^]|{.}-2] +move everything from here through "stop." to end of file:\ +.,/stop\\./m$ +current line has 2 fields separated by 1 blank; exchange them:\ +[s|.s]/[\\|^\\]([.|\[^ \]]*\\) \\([.|\[^ \]]*\\)[/|$/]\\2 \\1/{p} +insert a "0" after last "0" on current line:\ +[s|.s]/[.*0/&0|^.*0/&0|0\\(\[^0\]*\\)$/[0&|00\1]|0\[^0\]*$/0&\ +|\[^0\]*$/0&]/{p} +replace "a*b" by "a**b":s/[a\\*b|a[*]b]/a**b/{p}|\ +s/\\*/**/p +attach the word "extra" to the end of the current line:\ +[s|.s]/$/{ }extra/{p} +replace "ATT" in current line by "AT&T":\ +[s|.s]/ATT/AT\\&T/{g}{p} +double the length of the current line by repetition:\ +[s|.s]/[.*|.|^.*$]/&&/{p} +look for another line containing what you just looked for:// +find the previous line that contains a capital letter:?\[A-Z\]?{p} +delete the next line that contains only capital letters:\ +/^\[A-Z\]*$/d|/^\[A-Z\]\[A-Z\]*$/d +place a copy of current line at the end of the file:\ +t$|.{,.}t$ +find how many lines there are:=|$= +find the number of the current line:.= +delete the first 3 lines of the file:1,3d +delete every line that doesn't begin with "A":\ +[v|1,$v]/^A/d{ (not g/^\[^A\]/d)} +delete every empty line from here through next "LP":\ +.,/[LP|{{^}\\.}LP]/g/^$/d +print the line after each "AU":\ +[g|1,$g]/[AU|{^}\\.AU]/[{.}+{1}|.1]{p} +delete everything after "proud" from current line:\ +[s|.s]/proud.*/proud/{p} +delete part of current line from "alpha" through "omega":\ +[s|.s]/alpha.*omega//{p} +save everything up through current line in file "prefix":1,.w prefix +prepare to add text at end of file:$a +append the contents of file "suffix" to this file:$r suffix +go back 10 lines:{.}-10{p}|---------- +change every "01" in current line to "1":[s|.s]/01/1/g{p} +go to next line that contains a double capital letter:\ +/\\(\[A-Z\]\\)\\1/{p} +place parens () around current line:\ +[s|.s]/[.*|^.*$]/(&)/{p} +the current line is too long for your terminal; print it to fit:\ +l|.l +put the work you've done back in the original file:w +append the whole file to the file "unfinished":\ +[W|1,$W] unfinished +insert "\\&" at beginning of current line:\ +[s|.s]/^/\\\\\\&/{p} +list your current directory:!ls +stop work on current file and shift to file "other":e other diff --git a/games/quiz/datfiles/elements b/games/quiz/datfiles/elements new file mode 100644 index 000000000000..aba620a43d4e --- /dev/null +++ b/games/quiz/datfiles/elements @@ -0,0 +1,103 @@ +H:1:1.008:Hydrogen +He:2:4.003:Helium +Li:3:6.94:Lithium +Be:4:9.013:Beryllium +B:5:10.82:Boron +C:6:12.011:Carbon +N:7:14.008:Nitrogen +O:8:16.0:Oxygen +F:9:19.0:Fluorine +Ne:10:20.183:Neon +Na:11:22.991:Sodium +Mg:12:24.32:Magnesium +Al:13:26.98:Aluminum +Si:14:28.09:Silicon +P:15:30.975:Phosphorus +S:16:32.066:Sulphur +Cl:17:35.457:Chlorine +Ar:18:39.944:Argon +K:19:39.1:Potassium +Ca:20:40.08:Calcium +Sc:21:44.96:Scandium +Ti:22:47.9:Titanium +V:23:50.95:Vanadium +Cr:24:52.01:Chromium +Mn:25:54.94:Manganese +Fe:26:55.85:Iron +Co:27:58.94:Cobalt +Ni:28:58.71:Nickel +Cu:29:63.54:Copper +Zn:30:65.38:Zinc +Ga:31:69.72:Gallium +Ge:32:72.6:Germanium +As:33:74.91:Arsenic +Se:34:78.96:Selenium +Br:35:79.916:Bromine +Kr:36:83.8:Krypton +Rb:37:85.48:Rubidium +Sr:38:87.63:Strontium +Y:39:88.92:Yttrium +Zr:40:91.22:Zirconium +Nb:41:92.91:Niobium +Mo:42:95.95:Molybdenum +Tc:43:(99):Technetium +Ru:44:101.1:Ruthenium +Rh:45:102.91:Rhodium +Pd:46:106.4:Palladium +Ag:47:107.88:Silver +Cd:48:112.41:Cadmium +In:49:114.82:Indium +Sn:50:118.7:Tin +Sb:51:121.76:Antimony +Te:52:127.61:Tellurium +I:53:126.91:Iodine +Xe:54:131.3:Xenon +Cs:55:132.91:Cesium +Ba:56:137.36:Barium +La:57:138.92:Lanthanum +Ce:58:140.13:Cerium +Pr:59:140.92:Praseodymium +Nd:60:144.27:Neodymium +Pm:61:(145):Promethium +Sm:62:150.35:Samarium +Eu:63:152.0:Europium +Gd:64:157.26:Gadolinium +Tb:65:158.93:Terbium +Dy:66:162.51:Dysprosium +Ho:67:164.94:Holmium +Er:68:167.27:Erbium +Tm:69:168.94:Thulium +Yb:70:173.04:Ytterbium +Lu:71:174.99:Lutetium +Hf:72:178.5:Hafnium +Ta:73:180.95:Tantalum +W:74:183.86:Tungsten +Re:75:186.22:Rhenium +Os:76:190.2:Osmium +Ir:77:192.2:Iridium +Pt:78:195.09:Platinum +Au:79:197.0:Gold +Hg:80:200.61:Mercury +Tl:81:204.39:Thallium +Pb:82:207.21:Lead +Bi:83:209.0:Bismuth +Po:84:(210):Polonium +At:85:(210):Astatine +Rn:86:(222):Radon +Fr:87:(223):Francium +Ra:88:(226):Radium +Ac:89:(227):Actinium +Th:90:232.05:Thorium +Pa:91:(231):Protactinium +U:92:238.07:Uranium +Np:93:(237):Neptunium +Pu:94:(242):Plutonium +Am:95:(243):Americium +Cm:96:(248):Curium +Bk:97:(247):Berkelium +Cf:98:(249):Californium +Es:99:(254):Einsteinium +Fm:100:(253):Fermium +Md:101:(256):Mendelevium +No:102:(253):Nobelium +Lw:103:(259):Lawrencium diff --git a/games/quiz/datfiles/europe b/games/quiz/datfiles/europe new file mode 100644 index 000000000000..f7ef781e8e6c --- /dev/null +++ b/games/quiz/datfiles/europe @@ -0,0 +1,33 @@ +Albania:Tirana|Tirane" +Andorra:Andorra la V[ell|iej]a +Austria:Vienna|Wien +Belgium:Brussel[s|]|Bruxelles +Bulgaria:Sofi[a|ya] +Czechoslovakia:Prague|Praha +Denmark:Copenhagen|K[o|o/]benhavn +East Germany:Berlin +United Kingdom|England|Great Britain|UK:London +Finland:Helsinki +France:Paris +Greece:Athens +Hungary:Budapest +Iceland:Reykjavik +Ireland|Eire:Dublin +Italy:Rom[e|a] +Liechtenstein:Vaduz +Luxembourg:Luxembourg +Malta:Valletta +Monaco:Monte Carlo +Netherlands|Holland:The Hague|'sGravenhage|den Haag|Amsterdam +Norway:Oslo +Poland:Wars[aw|zawa] +Portugal:Lisbo[n|a] +R[u|o]mania:Bucharest|Bucuresti +San Marino:San Marino +Spain:Madrid +Sweden:Stockholm +Switzerland:Bern{e} +Turkey:Ankara +USSR|Russia:Mos[cow|kva] +[West |]Germany:Bonn +Yugoslavia:Belgrade|Beograd diff --git a/games/quiz/datfiles/flowers b/games/quiz/datfiles/flowers new file mode 100644 index 000000000000..1eb23600e306 --- /dev/null +++ b/games/quiz/datfiles/flowers @@ -0,0 +1,45 @@ +African violet:Such worth is rare +Apple blossom:Preference +Bachelor's button:Celibacy +Bay leaf:I change but in death +Camelia:Reflected loveliness +Chrysanthemum, non-red/white:Slighted love +Chrysanthemum, red:I love +Chrysanthemum, white:Truth +Clover:Be mine +Crocus:Abuse not +Daffodil:Innocence +Dead leaves:Melancholy +Forget-me-not:True love +Fuchsia:Fast +Gardenia:Secret, untold love +Honeysuckle:Bonds of love +Ivy:Friendship, fidelity, marriage +Jasmine:Amiablity, transports of joy, sensuality +Lilac:Youthful innocence +Lilly of the valley:Return of happiness +Lilly:Purity, sweetness +Magnolia:Dignity, perseverance +Marigold:Jealousy +Mint:Virtue +Orange blossom:Your purity equals your loveliness +Orchid:Beauty, magnificence +Pansy:Thoughts +Peach blossom:I am your captive +Petunia:Your presence soothes me +Poppy:Sleep +Rose, any color:Love +Rose, deep red:Bashful shame +Rose, single, pink:Simplicity +Rose, thornless, any color:Early attachment +Rose, white:I am worthy of you +Rose, yellow:Decrease of love, rise of jealousy +Rosebud, white:Girlhood, and a heart ignorant of love +Rosemary:Rememberance +Sunflower:Haughtiness +Tulip, red:Declaration of love +Tulip, yellow:Hopeless love +Upside down:Reverses meaning +Violet, blue:Faithfulness +Violet, white:Modesty +Zinnia:Thoughts of absent friends diff --git a/games/quiz/datfiles/greek b/games/quiz/datfiles/greek new file mode 100644 index 000000000000..4833e8361135 --- /dev/null +++ b/games/quiz/datfiles/greek @@ -0,0 +1,7 @@ +$luw$:{I} [loose|destroy] +$eluon$:{I} [loosed|destroyed|was loosing|was destroying] +$elusa$:{I} [loosed|destroyed] +$leluka$:{I} have [loosed|destroyed] +$lusw$:{I} will [loose|destroy] +$luswn$:[loosing|destroying] +$lusas$:{having} [loosed|destroyed] diff --git a/games/quiz/datfiles/inca b/games/quiz/datfiles/inca new file mode 100644 index 000000000000..02fd39f7b782 --- /dev/null +++ b/games/quiz/datfiles/inca @@ -0,0 +1,12 @@ +manco capac:sinchi roca +sinchi roca:lloque yupanqui +lloque yupanqui:mayta capac +mayta capac:capac yupanqui +capac yupanqui:inca roca +inca roca:yahuar huacac +yahuar huacac:viracocha +viracocha:pachacuti +pachacuti:tupa inca yupanqui +tupa inca yupanqui:huayna capac +huayna capac:huascar +huascar:atahuallpa diff --git a/games/quiz/datfiles/index b/games/quiz/datfiles/index new file mode 100644 index 000000000000..67a52347d65d --- /dev/null +++ b/games/quiz/datfiles/index @@ -0,0 +1,32 @@ +/usr/share/games/quiz.db/africa:Africa{n}:cap{ital} +/usr/share/games/quiz.db/america:America{n}:cap{ital} +/usr/share/games/quiz.db/areas:area{-code}:state{-region}:city +/usr/share/games/quiz.db/arith:arith{metic}:ans{wer} +/usr/share/games/quiz.db/asia:Asia{n}:cap{ital} +/usr/share/games/quiz.db/babies:baby:adult +/usr/share/games/quiz.db/bard:Shakespeare{{-}line{s}}|line{s}:next:work:char{acter} +/usr/share/games/quiz.db/chinese:{Chinese{-}}year:next +/usr/share/games/quiz.db/collectives:ind{ividuals}:coll{ective} +/usr/share/games/quiz.db/ed:function:ed-command +/usr/share/games/quiz.db/elements:symbol:number:weight:element +/usr/share/games/quiz.db/europe:Europe{an}:cap{ital} +/usr/share/games/quiz.db/flowers:flower{s}:meaning +/usr/share/games/quiz.db/greek:greek:english +/usr/share/games/quiz.db/inca:inca:succ{essor} +/usr/share/games/quiz.db/latin:latin:english +/usr/share/games/quiz.db/locomotive:locomotive:name +/usr/share/games/quiz.db/midearth:M[iddle{-}Earth|E]:cap{ital} +/usr/share/games/quiz.db/morse:clear|alpha{bet{ic}}:morse +/usr/share/games/quiz.db/mult:mult{iplication}:ans{wer} +/usr/share/games/quiz.db/murders:victim:killer +/usr/share/games/quiz.db/poetry:poem{-}line:next:poem:author +/usr/share/games/quiz.db/posneg:pos{itive}:neg{ative} +/usr/share/games/quiz.db/pres:pres{ident}:term:succ{essor} +/usr/share/games/quiz.db/province:province:cap{ital} +/usr/share/games/quiz.db/seq-easy:easy{-}{seq{uence}}:next:name +/usr/share/games/quiz.db/seq-hard:hard{-}{seq{uence}}:next:name +/usr/share/games/quiz.db/sexes:male:female +/usr/share/games/quiz.db/sov:sov{ereign}:cen{t{ury}}:succ{essor} +/usr/share/games/quiz.db/state:state:cap{ital}:abbr{ev{iation}}:flower +/usr/share/games/quiz.db/trek:star:trek +/usr/share/games/quiz.db/ucc:section:U{niform{-}}C{riminal{-}}C{ode} diff --git a/games/quiz/datfiles/latin b/games/quiz/datfiles/latin new file mode 100644 index 000000000000..0b03bd3eebd0 --- /dev/null +++ b/games/quiz/datfiles/latin @@ -0,0 +1,157 @@ +condo:{I }found +condidi:{I }founded +laedo:{I }[injure|thwart] +impello:{I }[drive|force] +impulit:{he }[drove|forced] +sino:{I }permit +sinat:{he }permit{s} +dolor:pain|grief +invideo:{I }[envy|hate] +invisus:[hated|envied] +immitis:cruel|harsh +arceo:{I }[keep away|hinder|prevent] +ratis:ship +antrum:cave +freno:rein{ in}|curb|check +celsus:lofty +spelunca:cave{rn} +foedus (n.):agreement|treaty|truce +foedera:agreements|treaties +laxus:loose|free +habena:rein{s} +mulceo:soothe|calm +fluctus (n.):wave{s} +exigo:finish|spend +exegit:{he }[finished|spent] +opto (v.):desire|wish +optat:{he }[desire{s}|wish{es}] +capesso:seize|carry out +concilio (v.):secure|gain +converto:reverse +procella:blast|gust +polus:sky|heaven +mico:flash|gleam +extemplo:immediately +frigus (n.):cold|chill +ingemo:groan +os (n.):mouth +effundo:pour{ out} +corripio:snatch|catch +harena:sand +excutio:shake{ off} +nare:{to }swim +rima:crack|fissure +fatisco:gape{ open} +disjicio:scatter|disperse +dolus (n.):deceit +luo:wash{ away}|atone{ for} +cito (adv.):quickly|soon +tumidus:swollen +fugo:put to flight|drive out +adnitor:strive +seditio:riot|uprising +fax:fire{-}brand +volo (v.):fly +arrigo:prick up +cunctus:whole|entire +flecto:turn|guide +sinus:bay|fold|curve|gulf +scindo:split|divide +rupes:crag|cliff +geminus:twin +minatur:{he }threaten{s} +coruscus:flashing|waving +horreo:bristle +nemus:grove +nemora:groves +umbra:shade|shadow +intus:within +dulcis:sweet|fresh +sedile:seat|bench +fessus:weary|tired +uncus:hooked|curved +morsus:bite +artus:joint|limb +silex:flint +scintilla:spark +folium:leaf +aridus:dry +corrumpo:spoil|ruin +corrupit:{he }[spoil{ed}|ruin{ed}] +frux:grain +torreo:parch +celsus:high|lofty +cervus:stag +erro:wander +armentum:herd +pasco:feed|nourish +pascor:graze +arcus:bow +turba:crowd +sterno:strew +humus:ground|earth +vinum:wine +maereo:mourn|sorrow +ignarus:unknowing|ignorant|inexperienced +rabies:rage|fury +penitus:within +sono (v.):sound|roar +maestus:sad|gloomy +forsan:perhaps +olim:someday|sometime +memini:{I }remember +varius:different +discrimen:crisis|danger +quiesco:become quiet +refert:{he }[say{s}|tell{s}] +vultus:face|countenance +cor:heart +corda:hearts +dolor:pain|grief +daps:feast +dapes:feasts +viscus:flesh +seco:cut +tremo:quiver +pinguis:fat|rich +mensa:table +sermo:talk|discourse +dubius:doubtful|wavering +pius:dutiful|devoted|loyal +gemo:lament|moan|bemoan +crudelis:cruel|bitter +lumen:light|eye +lumina:lights|eyes +tristis:sad +lacrima:tear +niteo:shine|glisten +fulmen:thunderbolt|lightning +fulmina:thunderbolts +funus:death|disaster +funera:deaths|disasters +orbis terrarum:world +ductor:leader +dicio (n.):power +fons:spring|source +fontes:springs|sources +arvum:land +infandus:unspeakable +rideo:laugh +osculum:lip +libo:sip|touch|kiss +nata:daughter +haereo:{I }[stick to|adhere] +promitto:primise +sublimis:high|uplifted|up high +quando:since|when|because +arcanum:{a }secret +ferox:fierce|savage +contundo:crush +albus:white +donec:until +sacerdos:priest{ess} +lupus:wolf +nutrix:nurse +nutrices:nurses +fulvus:tawny|yellow +meta:limit|boundary diff --git a/games/quiz/datfiles/locomotive b/games/quiz/datfiles/locomotive new file mode 100644 index 000000000000..a29cc01f47c4 --- /dev/null +++ b/games/quiz/datfiles/locomotive @@ -0,0 +1,11 @@ +4-4-0:American +4-6-0:Mogul +4-4-2:Atlantic +4-6-2:Pacific +2-8-0:Consolidation +2-8-2:Mikado +4-8-2:Mountain +2-8-4:Berkshire +4-6-4:Hudson +4-8-4:Northern +2-10-2:Decapod diff --git a/games/quiz/datfiles/midearth b/games/quiz/datfiles/midearth new file mode 100644 index 000000000000..17e21c01712f --- /dev/null +++ b/games/quiz/datfiles/midearth @@ -0,0 +1,10 @@ +Shire:Michel Delving|Hobbiton +Mordor:Minas Morgul +Gondor:Minas Tirith +Umbar:{City of the }Corsairs +Rhovanion:Esgaroth{ upon the Long Lake} +Rohan:Edoras +Lothl['o|o|o']rien:Caras Galadon +Breeland:Bree +Arnor:Ann['u|u'|u]minas +Arthedain:Fornost{ Erain}|Norbury of the Kings diff --git a/games/quiz/datfiles/morse b/games/quiz/datfiles/morse new file mode 100644 index 000000000000..408637460ab3 --- /dev/null +++ b/games/quiz/datfiles/morse @@ -0,0 +1,26 @@ +A:.- +B:-... +C:-.-. +D:-.. +E:. +F:..-. +G:--. +H:.... +I:.. +J:.--- +K:-.- +L:.-.. +M:-- +N:-. +O:--- +P:.--. +Q:--.- +R:.-. +S:... +T:- +U:..- +V:...- +W:.-- +X:-..- +Y:-.-- +Z:--.. diff --git a/games/quiz/datfiles/mult b/games/quiz/datfiles/mult new file mode 100644 index 000000000000..2ce87a0ba62a --- /dev/null +++ b/games/quiz/datfiles/mult @@ -0,0 +1,99 @@ +1 x 0:0 +1 x 1:1 +1 x 2:2 +1 x 3:3 +1 x 4:4 +1 x 5:5 +1 x 6:6 +1 x 7:7 +1 x 8:8 +1 x 9:9 +1 x 10:10 +2 x 0:0 +2 x 1:2 +2 x 2:4 +2 x 3:6 +2 x 4:8 +2 x 5:10 +2 x 6:12 +2 x 7:14 +2 x 8:16 +2 x 9:18 +2 x 10:20 +3 x 0:0 +3 x 1:3 +3 x 2:6 +3 x 3:9 +3 x 4:12 +3 x 5:15 +3 x 6:18 +3 x 7:21 +3 x 8:24 +3 x 9:27 +3 x 10:30 +4 x 0:0 +4 x 1:4 +4 x 2:8 +4 x 3:12 +4 x 4:16 +4 x 5:20 +4 x 6:24 +4 x 7:28 +4 x 8:32 +4 x 9:36 +4 x 10:40 +5 x 0:0 +5 x 1:5 +5 x 2:10 +5 x 3:15 +5 x 4:20 +5 x 5:25 +5 x 6:30 +5 x 7:35 +5 x 8:40 +5 x 9:45 +5 x 10:50 +6 x 0:0 +6 x 1:6 +6 x 2:12 +6 x 3:18 +6 x 4:24 +6 x 5:30 +6 x 6:36 +6 x 7:42 +6 x 8:48 +6 x 9:54 +6 x 10:60 +7 x 0:0 +7 x 1:7 +7 x 2:14 +7 x 3:21 +7 x 4:28 +7 x 5:35 +7 x 6:42 +7 x 7:49 +7 x 8:56 +7 x 9:63 +7 x 10:70 +8 x 0:0 +8 x 1:8 +8 x 2:16 +8 x 3:24 +8 x 4:32 +8 x 5:40 +8 x 6:48 +8 x 7:56 +8 x 8:64 +8 x 9:72 +8 x 10:80 +9 x 0:0 +9 x 1:9 +9 x 2:18 +9 x 3:27 +9 x 4:36 +9 x 5:45 +9 x 6:54 +9 x 7:63 +9 x 8:72 +9 x 9:81 +9 x 10:90 diff --git a/games/quiz/datfiles/murders b/games/quiz/datfiles/murders new file mode 100644 index 000000000000..30cf324de038 --- /dev/null +++ b/games/quiz/datfiles/murders @@ -0,0 +1,25 @@ +Cock Robin:{the }sparrow +sleep|Duncan:Macbeth +{the }cat:curiosity|care +{John {F{.} }}Kennedy|JFK:{Lee Harvey }Oswald|{the }FBI|{the }CIA +{Lee Harvey }Oswald:{Jack }Ruby|{the }FBI|{the }CIA +{Martin Luther }King:{James {Earl }}Ray|{the }FBI|{the }CIA +[Bobby |Robert {F{.} }]Kennedy|RFK:{Sirhan }Sirhan|{the }FBI|{the }CIA +Christ:{the }Romans|{Pontius }Pilate|{the }CIA +{Sharon }Tate:{Charles }Manson +Charles Lindbergh Jr{.}:{Bruno }Hauptman{n} +{Mr{.} }{{and }Mrs{.} }Borden|{her }parents:Lizzie{ Borden} +{Prof{essor} }{James }Moriarty:{Sherlock }Holmes +Achilles:Paris +Abel:Cain +{the }nurses:{Richard }Speck +{J{.} |Julius }Caesar:Brutus{ et al.} +Pompeii:Vesuvius +{Abraham |Abe }Lincoln:{John {Wilkes }}Booth +{Yukio }Mishima:{Yukio }Mishima +{Alexander }Hamilton:{Aaron }Burr +Cleopatra:{the |an }asp +[Ann Boleyn|Catharine Howard]:Henry{ VIII} +vaudeville:{the }movies|film +{the }movies|film:TV|television +{the }VA patients:{the }nurses diff --git a/games/quiz/datfiles/poetry b/games/quiz/datfiles/poetry new file mode 100644 index 000000000000..f4c07d698c55 --- /dev/null +++ b/games/quiz/datfiles/poetry @@ -0,0 +1,184 @@ +Come live with me and be my love:\ +And we will all the pleasures prove:\ +{The }Passionate Shepherd{ to his Love}:\ +{Christopher }Marlowe +Shall I compare thee to a summer's day{?}:\ +Thou art more lovely and more temperate:\ +Sonnet 18:\ +{William }Shakespeare +Fine knacks for ladies, cheap, choice, brave, and new!:\ +Good pennyworths{! }but money cannot move:\ +Fine Knacks{ for Ladies}:\ +{John }Dowland +My mind to me a kingdom is:\ +Such perfect joy therein I find:\ +My Mind to Me a Kingdom Is:\ +{Sir }{Edward }Dyer +Underneath this stone doth lie:\ +As much beauty as could die:\ +Epitaph on Elizabeth{,} {L. H.}:\ +{Ben }Jonson +Death be not proud, though some have called thee:\ +Mighty and dreadful{,} for thou art not so:\ +{Holy }Sonnet{s}{ 10}:\ +{John }Donne +Gather ye rose-buds while ye may:\ +Old Time is still a-flying:\ +To the Virgins{,} {To Make Much of Time}:\ +{Robert }Herrick +Why so pale and wan, fond lover?:\ +Prithee{,} why so pale{?}:\ +Song:\ +{Sir }{John }Suckling +Stone walls do not a prison make:\ +Nor iron bars a cage:\ +To Althea{,} From Prison:\ +{Richard }Lovelace +I could not love thee (Dear) so much,:\ +Lov['|e]d I not hono{u}r more:\ +To Lucasta{, Going to the Wars}:\ +{Richard }Lovelace +I saw Eternity the other night:\ +Like a great ring of pure and endless light:\ +{The }World:\ +{Henry }Vaughan +Come and trip it as you go,:\ +On the light fantastic toe:\ +L'Allegro:\ +{John }Milton +When I consider how my light is spent:\ +Ere half my days in this dark world and wide:\ +On His Blindness|When I Consider:\ +{John }Milton +The grave's a fine and private place{,}:\ +But none{,} I think{,} do there embrace{.}:\ +To His Coy Mistress:\ +{Andrew }Marvel +Great wits are sure to madness near allied:\ +And thin partitions do their bounds divide:\ +Absalom and Achitophel|Absalom:\ +{John }Dryden +A little learning is a dangerous thing{;}:\ +Drink deep{,} or taste not the Pierian spring{.}:\ +{An }Essay on Criticism|{On }Criticism:\ +{Alexander }Pope +The curfew tolls the knell of parting day{,}:\ +The lowing herd wind slowly o'er the lea:\ +Elegy{ Written in a Country Church{-| }Yard:\ +{Thomas }Gray +The best laid schemes o' mice an' men gang aft a-gley{,}:\ +An{'|d} lea{'|v}e us nought but grief an{'|d} pain for promised joy{.}:\ +To a Mouse:\ +{Robert }Burns +Tiger! tiger! burning bright!:\ +In the forests of the night:\ +{The }Tiger:\ +{William }Blake +My heart leaps up when I behold:\ +A rainbow in the sky:\ +My Heart Leaps Up:\ +{William }Wordsworth +The world is too much with us; late and soon{,}:\ +Getting and spending{,} we lay waste our powers:\ +{The }World is Too Much With Us|Sonnet:\ +{William }Wordsworth +A sadder and a wiser man{,}:\ +He rose the morrow morn:\ +{The }{Rime of }{The }Ancient Mariner:\ +{Samuel }{Taylor }Coleridge +In Xanadu did Kubla Khan:\ +A stately pleasure{-| }dome decree:\ +Kubla Khan:\ +{Samuel }{Taylor }Coleridge +She walks in beauty, like the night:\ +Of cloudless climes and starry skies:\ +She Walks in Beauty:\ +{George Gordon, }{Lord }Byron +I want a hero- an uncommon want{,}:\ +When every year and month sends forth a new one:\ +Don Juan{ Canto I}:\ +{George Gordon, }{Lord }Byron +A thing of beauty is a joy forever.:\ +Its loveliness increases{;|.} {it will never/Pass into nothingness}:\ +Endymion{ Book I}:\ +{John }Keats +Matched with an aged wife, I mete and dole:\ +Unequal laws unto a savage race:\ +Ulysses:\ +{Alfred{,} }{Lord }Tennyson +He will hold thee, when his passion shall have spent its novel force{,}:\ +Something better than his dog{,} a little dearer than his horse:\ +Locksley Hall:\ +{Alfred{,} }{Lord }Tennyson +'Tis better to have loved and lost:\ +Than never to have loved at all:\ +{In }Memoriam{ A. H. H.}:\ +{Alfred{,} }{Lord }Tennyson +Kind hearts are more than coronets,:\ +And simple faith than Norman blood{.}:\ +Lady Clara Vere de Vere:\ +{Alfred{,} }{Lord }Tennyson +Oh, to be in England:\ +Now that April's there:\ +Home{-| }Thoughts{,} From Abroad:\ +{Robert }Browning +Ah, but a man's reach should exceed his grasp{,}:\ +Or what's a heaven for{?}:\ +Andrea Del Sarto:\ +{Robert }Browning +How do I love thee? Let me count the ways.:\ +I love thee to the depth and breadth and height:\ +Sonnet{s} {From the Portuguese}{ 43}:\ +{Elizabeth }{Barrett }Browning +A Book of Verses underneath the Bough{,}:\ +A Jug of Wine, a Loaf of Bread{-|,| }and Thou:\ +{The }Rubaiyat{ of Omar Khayyam}{ 12}:\ +{Edward }Fitzgerald +The Moving Finger writes; and, having writ,:\ +Moves on{\:|,|.} nor all your Piety nor Wit:\ +{The }Rubaiyat{ of Omar Khayyam}{ 71}:\ +{Edward }Fitzgerald +Ah Love! could you and I with Him conspire:\ +To grasp this sorry Scheme of Things entire:\ +{The }Rubaiyat{ of Omar Khayyam}{ 99}:\ +{Edward }Fitzgerald +Remember me when I am gone away,:\ +Gone far away into the silent land:\ +Remember:\ +{Christina }Rossetti +Home is the sailor, home from the sea,:\ +And the hunter home from the hill:\ +Requiem:\ +{Robert }{Louis }Stevenson +I fled Him, down the nights and down the days;:\ +I fled Him, down the arches of the years:\ +{The }Hound of Heaven:\ +{Francis }Thompson +So 'ere's to you, Fuzzy-Wuzzy, at your 'ome in the Soudan;:\ +You're a {pore|poor} benighted {'|h}eathen but a first class fightin{'|g} man:\ +Fuzzy{-| }Wuzzy:\ +{Rudyard }Kipling +Morns abed and daylight slumber:\ +Were not meant for man alive:\ +Reveille:\ +{A{.}{ }E{.}{ }}Houseman +I will arise and go now, and go to Innisfree,:\ +And a small cabin build there{,} of clay and wattles made:\ +{The }{Lake Isle of }Innisfree:\ +{William }{Butler }Yeats +I must go down to the seas again, to the lonely sea and the sky,:\ +And all I ask is a tall ship and a star to steer her by:\ +Sea{-| }Fever:\ +{John }Masefield +April is the cruelest month, breeding:\ +Lilacs out of the dead land:\ +{The }Waste{ }Land:\ +{T{.}{ }S{.}{ }}Eliot +Now as I was young and easy under the apple boughs:\ +About the little house and happy as the grass was green:\ +Fern Hill:\ +{Dylan }Thomas +Of Man's first disobedience, and the fruit:\ +Of that forbidden tree{,} whose mortal taste:\ +Paradise Lost:\ +{John }Milton diff --git a/games/quiz/datfiles/posneg b/games/quiz/datfiles/posneg new file mode 100644 index 000000000000..03fde40728a5 --- /dev/null +++ b/games/quiz/datfiles/posneg @@ -0,0 +1,50 @@ +large|big:small +on:off +standing up:sitting down +inside:outside +high:low +old:new|young +hot:cold +out:in +heavy|dark:light +daytime:night[time| time] +stop|come:go +top:bottom +floor:ceiling +near:far +run:walk +empty|hungry:full +backwards:f[or|ront]wards +big|large:little|small +fat|thick:thin|skinny +bright|light:dark|dull +right:wrong|left +give:take|receive|get +buy:sell +shiny|bright:dull +dawn:dusk +fall down|go to bed:[get|stand|rise] up +asleep:awake +up:down +open[|ed|]:close[d|] +smile:frown|cry +happy|glad:sad +hard:soft|easy +boy|woman|lady:girl|man +fast:slow +wet:dry +covered|hid[den|]:uncovered|open +good:bad +always|sometimes|now:never|sometimes +beautiful|pretty:ugly +rough:smooth +hairy:bald||smooth +above:below +yin:yang +sweet:sour +if:unless +from|fro:to +with[|in|]:without|against +after:before +together:apart +plus:minus diff --git a/games/quiz/datfiles/pres b/games/quiz/datfiles/pres new file mode 100644 index 000000000000..49da275c2bb1 --- /dev/null +++ b/games/quiz/datfiles/pres @@ -0,0 +1,38 @@ +{G{eorge} }Washington:1789-{17}97:{J{ohn} }Adams +{J{ohn} }Adams:1797-1801:{T{homas} }Jefferson +{T{homas} }Jefferson:1801-{{18}0}9:{J{ames} }Madison +{J{ames} }Madison:1809-{18}17:{J{ames} }Monroe +{J{ames} }Monroe:1817-1825:{J{ohn} }{Q{uincy} }Adams +{J{ohn} }{Q{uincy} }Adams:1825-{{18}2}9:{A{ndrew} }Jackson +{A{ndrew} }Jackson:1829-{18}37:{M{artin} }Van Buren +{M{artin} }Van Buren:1837-{18}41:{W{illiam|m} }{H{enry} }Harrison +{W{illiam|m} }{H{enry} }Harrison:1841:{J{ohn} }Tyler +{J{ohn} }Tyler:1841-{{18}4}5:{J{ames} }{K{nox} }Polk +{J{ames} }{K{nox} }Polk:1845-{{18}4}9:{Z{achary} }Taylor +{Z{achary} }Taylor:1849-{18}50:{M{illard} }Fillmore +{M{illard} }Fillmore:1850-{{18}5}3:{F{ranklin} }Pierce +{F{ranklin} }Pierce:1853-{{18}5}7:{J{ames} }Buchanan +{J{ames} }Buchanan:1857-{18}61:{A{braham|be} }Lincoln +{A{braham|be} }Lincoln:1861-{{18}6}5:{A{ndrew} }Johnson +{A{ndrew} }Johnson:1865-{{18}6}9:{U{lysses} }{S{impson} }Grant +{U{lysses} }{S{impson} }Grant:1869-{18}77:{R{utherford} }{B{irchard} }Hayes +{R{utherford} }{B{irchard} }Hayes:1877-{18}81:{J{ames} }{A{bram} }Garfield +{J{ames} }{A{bram} }Garfield:1881:{C{hester} }{A{lan} }Arthur +{C{hester} }{A{lan} }Arthur:1881-{{18}8}5:{G{rover} }Cleveland{ (1st term)} +{G{rover} }Cleveland{ (1st term)}:1885-{{18}8}9:{B{enjamin} }Harrison +{B{enjamin} }Harrison:1889-{18}93:{G{rover} }Cleveland{ (2nd term)} +{G{rover} }Cleveland{ (2nd term)}:1893-{18}97:{W{illiam|m} }McKinley +{W{illiam|m} }McKinley:1897-1901:{T{heodore|eddy} }Roosevelt|TR +{T{heodore|eddy} }Roosevelt|TR:1901-{{19}0}9:{W{illiam|m} }{H{oward} }Taft +{W{illiam|m} }{H{oward} }Taft:1909-{19}13:{W{oodrow} }Wilson +{W{oodrow} }Wilson:1913-{19}21:{W{arren} }{G{amaliel} }Harding +{W{arren} }{G{amaliel} }Harding:1921-{{19}2}3:{C{alvin} }Coolidge +{C{alvin} }Coolidge:1923-{{19}2}9:{H{erbert} }Hoover +{H{erbert} }Hoover:1929-{19}33:{F{ranklin} }{D{elano} }Roosevelt|FDR +{F{ranklin} }{D{elano} }Roosevelt|FDR:1933-{19}45:{H{arry} }{S }Truman +{H{arry} }{S }Truman:1945-{19}53:{D{wight} }{D{avid} }Eisenhower +{D{wight} }{D{avid} }Eisenhower:1953-{19}61:{J{ohn} }{F{itzgerald} }Kennedy|JFK +{J{ohn} }{F{itzgerald} }Kennedy|JFK:1961-{{19}6}3:{L{yndon} }{B{aines} }Johnson|LBJ +{L{yndon} }{B{aines} }Johnson|LBJ:1963-{{19}6}9:{R{ichard} }{M{ilhouse} }Nixon +{R{ichard} }{M{ilhouse} }Nixon:1969-{19}74:{G{erald} }{R{obert} }Ford +{G{erald} }{R{obert} }Ford:1974-: diff --git a/games/quiz/datfiles/province b/games/quiz/datfiles/province new file mode 100644 index 000000000000..63e044cd8053 --- /dev/null +++ b/games/quiz/datfiles/province @@ -0,0 +1,13 @@ +Newfoundland{ and Labrador}:[St.|Saint] John's +New Brunswick:Fredericton +Prince Edward Island:Charlottetown +Nova Scotia:Halifax +Quebec:Quebec +Ontario:Toronto +Manitoba:Winnipeg +Saskatchewan:Regina +Alberta:Edmonton +British Columbia:Victoria +Yukon Territory:Whitehorse +Northwest Territories:Yellowknife +Canada:Ottawa diff --git a/games/quiz/datfiles/seq-easy b/games/quiz/datfiles/seq-easy new file mode 100644 index 000000000000..e88cefa530ec --- /dev/null +++ b/games/quiz/datfiles/seq-easy @@ -0,0 +1,14 @@ +1,2,3,4,5,6:7{(integers)}:integers|[natural|counting] numbers +1,2,3,5,8,13:21{(Fibonacci)}:Fibonacci{ seq{ence}| numbers} +1,2,4,8,16,32:64{(powers of 2)}:powers of 2|2[**|^]n +1,2,6,24,120,720:5040{(factorials)}:factorials|n! +1,3,5,7,9,11:13{(odd nos.)}:odd [integ|numb]ers +1,3,6,10,15,21:28{(triangular)}:triangular{ numbers}|C(n,2) +1,3,9,27,81:243{(powers of 3)}:powers of 3|3[**|^]n +1,4,9,16,25:36{(squares)}:squares|n[**|^]2 +1,4,16,64:256{(powers of 4)}:powers of 4|4[**|^]n +1,5,25,125:625{(powers of 5)}:powers of 5|5[**|^]n +1,8,27,64,125:216{(cubes)}:cubes|n[**|^]3 +2,3,5,7,11,13:17{(primes)}:prime[ number]s +2,4,6,8,10,12:14{(even nos.)}:even [integ|numb]ers|multiples of 2|2n +3,6,9,12,15:18{(3n)}:multiples of 3|3n diff --git a/games/quiz/datfiles/seq-hard b/games/quiz/datfiles/seq-hard new file mode 100644 index 000000000000..9d9373f6bab3 --- /dev/null +++ b/games/quiz/datfiles/seq-hard @@ -0,0 +1,15 @@ +1,1,2,1,2,2,3,1,2,2,3,2,3,3,4:1{(1's in binary nos)}:number of 1's in binary numbers +1,1,2,2,4,2,6,4,6,4,10:4{(phi(n))}:Euler's [totient|phi]{ function}|phi(n) +1,2,2,4,2,4,2,4,6,2:6{(diff of primes)}:diff{erences} [between|of] primes +1,2,4,11,34:156{(unlabeled graphs)}:{unlabeled }graphs +1,2,5,14,42,132:429{(Catalan)}:Catalan{ numbers} +1,2,5,16,61:272{(Euler)}:Euler{ numbers} +1,3,12,60,360:2520{(n!/2)}:Even permutations|n!/2 +1,3,16,125,1296,16807:262144{(n**(n-2))}:{labeled }trees|n[**|^](n-2) +1,4,10,20,35,56:84{(C(n,3))}:Tetrahedral{ numbers}|C(n,3) +1,4,11,20,31,44,61:100{(n**2 base 8)}:[Squares|n[**|^]2} base 8|octal squares +1,4,16,256:65536{(2**2**n)}:{labeled }boolean functions|2[**|^]2[**|^]n +1,6,28:496{(perfect nos)}:perfect{ numbers} +2,7,1,8,2,8:1{(e)}:{digits of }e +3,1,4,1,5,9:2{(pi)}:{digits of }pi +3,7,31,127:8191{(Mersenne primes)}:Mersenne{ primes} diff --git a/games/quiz/datfiles/sexes b/games/quiz/datfiles/sexes new file mode 100644 index 000000000000..78c583ad70c2 --- /dev/null +++ b/games/quiz/datfiles/sexes @@ -0,0 +1,26 @@ +Y|y:X|x +abbot:abbess +alumnus:alumna +ambassador:ambassadress +boar:sow +buck:doe +bull:cow +cob:pen +colt:filly +curator:curatrix +dog:bitch|vixen +duke:duchess +drake:duck +effeminate|womanish:mannish +gander:goose +gentleman:lady|gentlewoman +jack:jenny +lad:lass +manly:womanly +marquis:marchioness[|e]|marquise +monk:nun +[O|o]edipus complex:[E|e]lectra[| complex] +prince:princess +ram:ewe +rooster|cock:hen +stallion:mare diff --git a/games/quiz/datfiles/sov b/games/quiz/datfiles/sov new file mode 100644 index 000000000000..c02d41755644 --- /dev/null +++ b/games/quiz/datfiles/sov @@ -0,0 +1,42 @@ +W[illia|]m [I|1|the Conqueror]:11:W[illia|]m [II|2|Rufus|the Red] +W[illia|]m [II|2|Rufus|the Red]:11:Hen[ry|] [I|1] +Hen[ry|] [I|1]:12:Stephen +Stephen:12:Hen[ry|] [II|2] +Hen[ry|] [II|2]:12:Rich[ard|] [I|1] +Rich[ard|] [I|1]:12:John +John:13|12-13:Hen[ry|] [III|3] +Hen[ry|] [III|3]:13:Ed[w[ard|]|] [I|1] +Ed[w[ard|]|] [I|1]:13-14|13|14:Ed[w[ard|]|] [II|2] +Ed[w[ard|]|] [II|2]:14:Ed[w[ard|]|] [III|3] +Ed[w[ard|]|] [III|3]:14:Rich[ard|] [II|2] +Rich[ard|] [II|2]:14:Hen[ry|] [IV|4] Part 1 +Hen[ry|] [IV|4] Part 1:15|14-15:Hen[ry|] [IV|4] Part 2 +Hen[ry|] [IV|4] Part 2:15|14-15:Hen[ry|] [V|5] +Hen[ry|] [V|5]:15:Hen[ry|] [VI|6] +Hen[ry|] [VI|6]:15:Ed[w[ard|]|] [IV|4] +Ed[w[ard|]|] [IV|4]:15:Ed[w[ard|]|] [V|5] +Ed[w[ard|]|] [V|5]:15:Rich[ard|] [III|3] +Rich[ard|] [III|3]:15:Hen[ry|] [VII|7] +Hen[ry|] [VII|7]:15-16|15|16:Hen[ry|] [VIII|8] +Hen[ry|] [VIII|8]:16:Ed[w[ard|]|] [VI|6] +Ed[w[ard|]|] [VI|6]:16:Mary +Mary:16:Eliz[abeth|][ [I|1]|] +Elizabeth[ [I|1]|]:16-17|16:Ja[me|]s [I|1] +Ja[me|]s [I|1]:17:Cha[rle|]s [I|1] +Cha[rle|]s [I|1]:17:[Oliver |]Cromwell +[Oliver |]Cromwell:17:Rich[ard|] Cromwell +Rich[ard|] Cromwell:17:Ch[arle|]s [II|2] +Cha[rle|]s [II|2]:17:Ja[me|]s [II|2] +Ja[me|]s [II|2]:17:W[illia|]m and Mary +W[illia|]m and Mary:17-18|17:Anne +Anne:18:Geo[rge|] [I|1] +Geo[rge|] [I|1]:18:Geo[rge|] [II|2] +Geo[rge|] [II|2]:18:Geo[rge|] [III|3] +Geo[rge|] [III|3]:18-19|18|19:Geo[rge|] [IV|4] +Geo[rge|] [IV|4]:19:W[illia|]m [IV|4] +W[illia|]m [IV|4]:19:Victoria +Victoria:19:Ed[w[ard|]|] [VII|7] +Ed[w[ard|]|] [VII|7]:19-20|19|20:Geo[rge|] [V|5] +Geo[rge|] [V|5]:20:Ed[w[ard|]|] [VIII|8] +Ed[w[ard|]|] [VIII|8]:20:Geo[rge|] [VI|6] +Geo[rge|] [VI|6]:20:Eliz[abeth|] [II|2] diff --git a/games/quiz/datfiles/spell b/games/quiz/datfiles/spell new file mode 100644 index 000000000000..75ce1e8a11f3 --- /dev/null +++ b/games/quiz/datfiles/spell @@ -0,0 +1,2 @@ +The son went behind a cloud.:sun +Did you see the monky at the zoo?:monkey diff --git a/games/quiz/datfiles/state b/games/quiz/datfiles/state new file mode 100644 index 000000000000..0c114873b816 --- /dev/null +++ b/games/quiz/datfiles/state @@ -0,0 +1,50 @@ +Alabama|Ala|AL:Montgomery:AL:goldenrod +Alaska|AK:Juneau:AK:forget{-| }me{-| }not +Arizona|Ariz|AZ:Phoenix:AZ:{saguaro }cactus +Arkansas|Ark|AR:Little Rock:AR:gok +Cal{if{ornia}}|CA:Sacramento:CA:{golden }poppy +Col{o{rado}}|CO:Denver:CO:columbine +Conn{ecticut}|CT:Hartford:CT:{mountain }laurel +Del{aware}|DE:Dover:DE:peach{ blossom} +Fl{orid}a|FL:Tallahassee:FL:orange{ blossom} +Georgia|Ga:Atlanta:GA:{Cherokee }rose +Hawaii|HI:Honolulu:HI:hibiscus +Idaho|Ida|ID:Boise:ID:syringa +Ill{inois}|IL:Springfield:IL:violet +Ind{iana}|IN:Indianapolis:IN:zinnia +Iowa|Ia:Des Moines:IA:{wild }rose +Kans{as}|Kan|KS:Topeka:KS:sun{ }flower +Kentucky|Ky:Frankfort:KY:goldenrod +Louisiana|La:Baton Rouge:LA:magnolia +Maine|Me:Augusta:ME:pinecone{ and}{ tassel} +Maryland|Md:Annapolis:MD:blackeyed susan +Mass{achusetts}|MA:Boston:MA:{trailing }arbutus +Mich{igan}|MI:Lansing:MI:apple{ blossom} +Minn{esota}|MN:Saint Paul|St Paul:MN:gok +Miss{issippi}|MS:Jackson:MS:magnolia +Missouri|Mo:Jefferson City:MO:hawthorn +Mont{ana}|MT:Helena:MT:bitterroot +Nebraska|Neb|NE|NB:Lincoln:NE|NB:goldenrod +Nevada|Nev|NV:Carson City:NV:sagebrush +New Hampshire|NH:Concord:NH:{purple }lilac +New Jersey|NJ:Trenton:NJ:violet +New Mexico|NM:Santa Fe:NM:yucca +New York|NY:Albany:NY:{wild }rose +N{orth} Carolina|NC:Raleigh:NC:dogwood +N{orth} Dakota|ND:Bismarck:ND:{wild }{prarie }rose +Ohio|O|OH:Columbus:OH:{scarlet }carnation +Oklahoma|Okla|OK:Oklahoma City:OK:mistletoe +Oregon|Ore|OR:Salem:OR:{Oregon }grape +Pennsylvania|Pa:Harrisburg:PA:{mountain }laurel +Rhode Island|RI:Providence:RI:violet +S{outh} Carolina|SC:Columbia:SC:{yellow }jasmine +S{outh} Dakota|SD:Pierre:SD:pasque{ flower} +Tenn{essee}|TN:Nashville:TN:iris +Texas|Tex|TX:Austin:TX:blue{-| }bonnet +Utah|UT:Salt Lake City:UT:{sego }lilly +Vermont|Vt:Montpelier:VT:{red }clover +Virginia|Va:Richmond:VA:dogwood +Wash{ington}|WA:Olympia:WA:rhododendron +W{est} Virginia|W{ }Va|WV:Charleston:WV:rhododendron +Wisconsin|Wis|WI:Madison:WI:violet +Wyo{ming}|WY:Cheyenne:WY:indian paint brush diff --git a/games/quiz/datfiles/trek b/games/quiz/datfiles/trek new file mode 100644 index 000000000000..11740b8b2bf9 --- /dev/null +++ b/games/quiz/datfiles/trek @@ -0,0 +1,19 @@ +captain's name:{James |Jim }{T. }Kirk|{james |jim }{t. }kirk +first officers name:Spock|spock|Mr. Spock|mr. spock +name of ship:{the }{u.s.s. }enterprise|Enterprise +name of the "good guys":{the }Federation|federation|{the }federation +name of the "bad guys":{the }klingons|{the }romulans +nickname of chief engineer:scotty|Scotty +nickname of chief medical officer:bones|Bones +machine used for transportation to surface of nearby planet:transporter|shuttlecraft +main engines of ship:warp engines|warp +number of crew:400|four hundred +hand-held weapon:phaser +type of torpedoes used on the ship:photon torpedoes|photon +name of electronic protective device on ship:shields|shield +name of device that makes a ship invisible:cloaking device|cloak|cloaking +type of voice that the on-board computer has:female|feminine|woman's +where first officer comes from:vulcan|Vulcan +rare, but very powerful enemies:romulans|Romulans +reaction that main engines operate on:matter-antimatter{ reaction}|matter/antimatter{ reaction} +slow engines used in emergencies:impulse engines|impulse diff --git a/games/quiz/datfiles/ucc b/games/quiz/datfiles/ucc new file mode 100644 index 000000000000..d852b954007f --- /dev/null +++ b/games/quiz/datfiles/ucc @@ -0,0 +1,127 @@ +1-103:supplementary general principles of law applicable +1-106:remedies to be liberally administered +1-201:general definitions +1-203:obligation of good faith +1-205:course of dealing and usage of trade +1-206:statue of frauds for kinds of personal property not otherwise covered +2-103:definitions-sales +2-201:statute of frauds +2-208:course of performance or practical consideration +2-302:unconscionable contract or clause +2-310:open time for payment or running of credit +2-319:FOB and FAS terms +2-320:CIF and C&F terms +2-323:form of bill of lading required in overseas shipment +2-401:passing of title; reservation for security +2-402:rights of seller's creditors against sold goods +2-403:powr to transfer; good faith purchase of goods; entrusting +2-501:insurable interest in goods; manner of identification of goods +2-502:buyer's right to goods on seller's insolvency +2-503:manner of seller's tender of delivery +2-506:rights of financing agency +2-507:effect of seller's tender; delivery on condition +2-508:cure by seller of improper tender or delivery; replacement +2-509:risk of loss in the absence ogf breach +2-510:effect of breach on risk of loss +2-513:buyer's right to inspection of goods +2-601:buyer's rights on improper delivery +2-602:manner and effect of rightful rejection +2-603:merchant buyer's duties as to rightfully rejected goods +2-605:waiver of buyer's objections by failure to particularize +2-606:what constitutes acceptance of goods +2-607:effect of acceptance; notice of breach +2-608:revocation of acceptance in whole or in part +2-609:right to adequate assurance of performance +2-610:anticipatory repudiation +2-611:retraction of anticipatory repudiation +2-612:installment contract; breach +2-702:seller's remedies on discovery o buyer's insolvency +2-703:seller's remedies in general +2-705:seller's stoppage of delivery in transit or otherwise +2-706:seller's resale including contract for resale +2-708:seller's damages for non-acceptance or repudiation +2-709:action for the price +2-711:buyer's remedies in general; buyer's security interest in rejected goods +2-712:cover; buyer's procurement of substitute goods +2-713:buyer's damages for on-delivery or repudiation +2-714:buyer's damages for breach in regard to accepted goods +2-715:buyer's incidental and consequential damages +2-716:buyer's right to specific performance or replevin +3-102:definitions-commercial paper +3-104:form of negotiable instruments; draft; check; certificate of deposit; note +3-110:payable to order +3-111:payable to bearer +3-201:transfer: right to indorsement +3-202:negotiation +3-204:special indorsement; blank indorsement +3-301:rights of a holder +3-302:holder in due course +3-305:rights of a holder in due course +3-306:rights of one not holder in due course +3-401:signature +3-404:unauthorized signature +3-405:impostors; signature in name of payee +3-406:negligence contributing to alteration or unauthorized signature +3-407:alteration +3-410:definition and operation of acceptance +3-411:certification of a check +3-413:contract of maker, drawer and acceptor +3-414:contract of indorser; order of liability +3-417:warranties on presentment and transfer +3-418:finality of payment or acceptance +3-419:conversion of instrument; innocent representative +3-501:when presentment, notice of dishonor, and protest necessary or permissible +3-502:unexcused delay; discharge +3-503:time or presentment +3-507:dishonor; holder's right of recourse; term allowing representment +3-508:notice of dishonor +3-511:waived or excused presentment, protest or notice of dishonor or delay therein +3-601:discharge of parties +3-802:effect of instrument on obligation for which it is given +3-804:lost,destroyed or stolen instruments +4-104:definitions-bank deposits and collections +4-105:banks-depositary, intermediary, collecting, payor, presenting, remitting +4-207:warranties of customer and collecting bank on transfer or presentment of items +4-208:security interest of collecting bank in items, accompanying documents and proceeds +4-209:when bank gives value for purposes of holder in due course +4-211:media of remittance; provision and final settlement in remittance cases +4-213:final payment of item by payor bank +4-401:when bank may charge customer's account +4-406:customer's duty to discover and report unauthorized signature or alteration +4-402:bank liability to customer for wrongful dishonor +4-407:payor bank's right to subrogation on improper payment +5-111:warranties on transfer and presentment (letters of credit) +5-114:issuer's duty and privilege to honor; right to reimbursement +5-115:remedy for improper dishonor or anticipatory repudiaion (letters of credit) +7-104:negotiable and non-negotiable warehouse receipt, bill of lading, other title +7-204:duty of care; contractual limitation of warehouseperson's liability +7-301:liability for non-receipt or misdescription +7-403:obligation of warehouseperson or carrier to deliver; excuse +7-404:no liability for good faith delivery pursuant to receipt or bill +7-501:form of negotiation and requirements of due negotiation +7-502:rights acquired by due negotiation +7-503:document of title to goods defeated in certain cases +7-504:rights acquired in absence of due negotiation; effect of diversion +7-507:warranties on negotiation or transfer of receipt or bill +7-508:warranties of collecting bank as to documents +9-105:definitions-secured transactions +9-107:definitions "purchase money security interest" +9-109:classification of goods; consumer goods; equipment; farm products; inventory +9-113:security interests arising under article on sales +9-203:attachment and enforceability of security interest; proceeds; formal requisites +9-206:agreement not to asserr defenses against assignee; modification of sales warranties +9-301:persons who take priority over unperfected security interests +9-302:when filing is required to perfect security interest +9-303:when security interest is perfected +9-304:perfection of security interest in instruments, documents +9-305:when possession by secured party perfects security interest without filing +9-306:proceeds; secured party's rights on disposition of collateral +9-307:protection of buyers of goods +9-310:periority of certain liens arising by opration of law (mechanic's liens) +9-311:alienability of debtor's rights; judicial process +9-312:priorities among conflicting security interests in the same collateral +9-405:assignment of security interest +9-501:default; procedure when security agreement covers real and personal property +9-503:secured party's right to take possession after default +9-504:secured party's right to dispose of collateral after default +9-505:compulsory disposition of collateral; acceptance of collateral as discharge of obligation diff --git a/games/quiz/pathnames.h b/games/quiz/pathnames.h new file mode 100644 index 000000000000..08f4a6b0508c --- /dev/null +++ b/games/quiz/pathnames.h @@ -0,0 +1,37 @@ +/*- + * Copyright (c) 1990, 1993 + * The Regents of the University of California. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)pathnames.h 8.1 (Berkeley) 5/31/93 + */ + +#define _PATH_PAGER "/usr/bin/more" +#define _PATH_QUIZIDX "/usr/share/games/quiz.db/index" diff --git a/games/quiz/quiz.6 b/games/quiz/quiz.6 new file mode 100644 index 000000000000..d658703cf63c --- /dev/null +++ b/games/quiz/quiz.6 @@ -0,0 +1,119 @@ +.\" Copyright (c) 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" This code is derived from software contributed to Berkeley by +.\" Jim R. Oldroyd at The Instruction Set. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)quiz.6 8.1 (Berkeley) 5/31/93 +.\" +.Dd May 31, 1993 +.Dt QUIZ 6 +.Os +.Sh NAME +.Nm quiz +.Nd random knowledge tests +.Sh SYNOPSIS +.Nm quiz +.Op Fl t +.Op Fl i Ar file +.Op Ar question answer +.Sh DESCRIPTION +The +.Nm quiz +utility tests your knowledge of random facts. +It has a database of subjects from which you can choose. +With no arguments, +.Nm quiz +displays the list of available subjects. +.Pp +The options are as follows: +.Bl -tag -width indent +.It Fl t +Use tutorial mode, in which questions are repeated later if you didn't get +them right the first time, and new questions are presented less frequently +to help you learn the older ones. +.It Fl i +Specify an alternate index file. +.El +.Pp +Subjects are divided into categories. +You can pick any two categories from the same subject. +.Nm Quiz +will ask questions from the first category and it expects answers from +the second category. +For example, the command ``quiz victim killer'' asks questions which are +the names of victims, and expects you to answer with the cause of their +untimely demise, whereas the command ``quiz killer victim'' works the +other way around. +.Pp +If you get the answer wrong, +.Nm quiz +lets you try again. +To see the right answer, enter a blank line. +.Sh "Index and Data File Syntax" +The index and data files have a similar syntax. +Lines in them consist of several categories separated by colons. +The categories are regular expressions formed using the following +meta-characters: +.sp +.Bl -tag -width "pat|pat" -compact -offset indent +.It pat|pat +alternate patterns +.It {pat} +optional pattern +.It [pat] +delimiters, as in pat[pat|pat]pat +.El +.Pp +In an index file, each line represents a subject. +The first category in each subject is the pathname of the data file for +the subject. +The remaining categories are regular expressions for the titles of each +category in the subject. +.Pp +In data files, each line represents a question/answer set. +Each category is the information for the question/answer for that category. +.Pp +The backslash character (``\e'') is used to quote syntactically significant +characters, or at the end of a line to signify that a continuation line +follows. +.Pp +If either a question or its answer is empty, +.Nm quiz +will refrain from asking it. +.Sh FILES +.Bl -tag -width /usr/share/games/quiz.db -compact +.It Pa /usr/share/games/quiz.db +The default index and data files. +.El +.Sh BUGS +.Nm Quiz +is pretty cynical about certain subjects. diff --git a/games/quiz/quiz.c b/games/quiz/quiz.c new file mode 100644 index 000000000000..aa5f52783e6f --- /dev/null +++ b/games/quiz/quiz.c @@ -0,0 +1,383 @@ +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jim R. Oldroyd at The Instruction Set and Keith Gabryelski at + * Commodore Business Machines. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char copyright[] = +"@(#) Copyright (c) 1991, 1993\n\ + The Regents of the University of California. All rights reserved.\n"; +#endif /* not lint */ + +#ifndef lint +static char sccsid[] = "@(#)quiz.c 8.2 (Berkeley) 1/3/94"; +#endif /* not lint */ + +#include <sys/types.h> +#include <errno.h> +#include <time.h> +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <ctype.h> +#include "quiz.h" +#include "pathnames.h" + +static QE qlist; +static int catone, cattwo, tflag; +static u_int qsize; + +char *appdstr __P((char *, char *, size_t)); +void downcase __P((char *)); +void err __P((const char *, ...)); +void get_cats __P((char *, char *)); +void get_file __P((char *)); +char *next_cat __P((char *)); +void quiz __P((void)); +void score __P((u_int, u_int, u_int)); +void show_index __P((void)); +void usage __P((void)); + +int +main(argc, argv) + int argc; + char *argv[]; +{ + register int ch; + char *indexfile; + + indexfile = _PATH_QUIZIDX; + while ((ch = getopt(argc, argv, "i:t")) != EOF) + switch(ch) { + case 'i': + indexfile = optarg; + break; + case 't': + tflag = 1; + break; + case '?': + default: + usage(); + } + argc -= optind; + argv += optind; + + switch(argc) { + case 0: + get_file(indexfile); + show_index(); + break; + case 2: + get_file(indexfile); + get_cats(argv[0], argv[1]); + quiz(); + break; + default: + usage(); + } + exit(0); +} + +void +get_file(file) + char *file; +{ + register FILE *fp; + register QE *qp; + size_t len; + char *lp; + + if ((fp = fopen(file, "r")) == NULL) + err("%s: %s", file, strerror(errno)); + + /* + * XXX + * Should really free up space from any earlier read list + * but there are no reverse pointers to do so with. + */ + qp = &qlist; + qsize = 0; + while ((lp = fgetln(fp, &len)) != NULL) { + if (qp->q_text && qp->q_text[strlen(qp->q_text) - 1] == '\\') + qp->q_text = appdstr(qp->q_text, lp, len); + else { + if ((qp->q_next = malloc(sizeof(QE))) == NULL) + err("%s", strerror(errno)); + qp = qp->q_next; + lp[len - 1] = '\0'; + if ((qp->q_text = strdup(lp)) == NULL) + err("%s", strerror(errno)); + qp->q_asked = qp->q_answered = FALSE; + qp->q_next = NULL; + ++qsize; + } + } + (void)fclose(fp); +} + +void +show_index() +{ + register QE *qp; + register char *p, *s; + FILE *pf; + + if ((pf = popen(_PATH_PAGER, "w")) == NULL) + err("%s: %s", _PATH_PAGER, strerror(errno)); + (void)fprintf(pf, "Subjects:\n\n"); + for (qp = qlist.q_next; qp; qp = qp->q_next) { + for (s = next_cat(qp->q_text); s; s = next_cat(s)) { + if (!rxp_compile(s)) + err("%s", rxperr); + if (p = rxp_expand()) + (void)fprintf(pf, "%s ", p); + } + (void)fprintf(pf, "\n"); + } + (void)fprintf(pf, "\n%s\n%s\n%s\n", +"For example, \"quiz victim killer\" prints a victim's name and you reply", +"with the killer, and \"quiz killer victim\" works the other way around.", +"Type an empty line to get the correct answer."); + (void)pclose(pf); +} + +void +get_cats(cat1, cat2) + char *cat1, *cat2; +{ + register QE *qp; + int i; + char *s; + + downcase(cat1); + downcase(cat2); + for (qp = qlist.q_next; qp; qp = qp->q_next) { + s = next_cat(qp->q_text); + catone = cattwo = i = 0; + while (s) { + if (!rxp_compile(s)) + err("%s", rxperr); + i++; + if (rxp_match(cat1)) + catone = i; + if (rxp_match(cat2)) + cattwo = i; + s = next_cat(s); + } + if (catone && cattwo && catone != cattwo) { + if (!rxp_compile(qp->q_text)) + err("%s", rxperr); + get_file(rxp_expand()); + return; + } + } + err("invalid categories"); +} + +void +quiz() +{ + register QE *qp; + register int i; + size_t len; + u_int guesses, rights, wrongs; + int next; + char *answer, *s, *t, question[LINE_SZ]; + + srandom(time(NULL)); + guesses = rights = wrongs = 0; + for (;;) { + if (qsize == 0) + break; + next = random() % qsize; + qp = qlist.q_next; + for (i = 0; i < next; i++) + qp = qp->q_next; + while (qp && qp->q_answered) + qp = qp->q_next; + if (!qp) { + qsize = next; + continue; + } + if (tflag && random() % 100 > 20) { + /* repeat questions in tutorial mode */ + while (qp && (!qp->q_asked || qp->q_answered)) + qp = qp->q_next; + if (!qp) + continue; + } + s = qp->q_text; + for (i = 0; i < catone - 1; i++) + s = next_cat(s); + if (!rxp_compile(s)) + err("%s", rxperr); + t = rxp_expand(); + if (!t || *t == '\0') { + qp->q_answered = TRUE; + continue; + } + (void)strcpy(question, t); + s = qp->q_text; + for (i = 0; i < cattwo - 1; i++) + s = next_cat(s); + if (!rxp_compile(s)) + err("%s", rxperr); + t = rxp_expand(); + if (!t || *t == '\0') { + qp->q_answered = TRUE; + continue; + } + qp->q_asked = TRUE; + (void)printf("%s?\n", question); + for (;; ++guesses) { + if ((answer = fgetln(stdin, &len)) == NULL) { + score(rights, wrongs, guesses); + exit(0); + } + answer[len - 1] = '\0'; + downcase(answer); + if (rxp_match(answer)) { + (void)printf("Right!\n"); + ++rights; + qp->q_answered = TRUE; + break; + } + if (*answer == '\0') { + (void)printf("%s\n", t); + ++wrongs; + if (!tflag) + qp->q_answered = TRUE; + break; + } + (void)printf("What?\n"); + } + } + score(rights, wrongs, guesses); +} + +char * +next_cat(s) + register char * s; +{ + for (;;) + switch (*s++) { + case '\0': + return (NULL); + case '\\': + break; + case ':': + return (s); + } + /* NOTREACHED */ +} + +char * +appdstr(s, tp, len) + char *s; + register char *tp; + size_t len; +{ + register char *mp, *sp; + register int ch; + char *m; + + if ((m = malloc(strlen(s) + len + 1)) == NULL) + err("%s", strerror(errno)); + for (mp = m, sp = s; *mp++ = *sp++;); + + if (*(mp - 1) == '\\') + --mp; + while ((ch = *mp++ = *tp++) && ch != '\n'); + *mp = '\0'; + + free(s); + return (m); +} + +void +score(r, w, g) + u_int r, w, g; +{ + (void)printf("Rights %d, wrongs %d,", r, w); + if (g) + (void)printf(" extra guesses %d,", g); + (void)printf(" score %d%%\n", (r + w + g) ? r * 100 / (r + w + g) : 0); +} + +void +downcase(p) + register char *p; +{ + register int ch; + + for (; ch = *p; ++p) + if (isascii(ch) && isupper(ch)) + *p = tolower(ch); +} + +void +usage() +{ + (void)fprintf(stderr, "quiz [-t] [-i file] category1 category2\n"); + exit(1); +} + +#if __STDC__ +#include <stdarg.h> +#else +#include <varargs.h> +#endif + +void +#if __STDC__ +err(const char *fmt, ...) +#else +err(fmt, va_alist) + char *fmt; + va_dcl +#endif +{ + va_list ap; +#if __STDC__ + va_start(ap, fmt); +#else + va_start(ap); +#endif + (void)fprintf(stderr, "quiz: "); + (void)vfprintf(stderr, fmt, ap); + va_end(ap); + (void)fprintf(stderr, "\n"); + exit(1); +} diff --git a/games/quiz/quiz.h b/games/quiz/quiz.h new file mode 100644 index 000000000000..8923c8f79ebe --- /dev/null +++ b/games/quiz/quiz.h @@ -0,0 +1,61 @@ +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jim R. Oldroyd at The Instruction Set and Keith Gabryelski at + * Commodore Business Machines. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + * + * @(#)quiz.h 8.1 (Berkeley) 5/31/93 + */ + +#define TRUE 1 +#define FALSE 0 + +/* Length of compiled regexp machine; increase if not big enough. */ +#define RXP_LINE_SZ 8192 + +/* Maximum line length for data files. */ +#define LINE_SZ 1024 + +/* Linked list for holding index and data file information. */ +typedef struct qentry { + struct qentry *q_next; /* next one */ + char *q_text; /* category text string from file */ + int q_asked; /* TRUE if question's been asked */ + int q_answered; /* TRUE if question's been answered */ +} QE; + +extern char rxperr[]; + +int rxp_compile __P((char *)); +char *rxp_expand __P((void)); +int rxp_match __P((char *)); diff --git a/games/quiz/rxp.c b/games/quiz/rxp.c new file mode 100644 index 000000000000..4b6a74f7c81d --- /dev/null +++ b/games/quiz/rxp.c @@ -0,0 +1,313 @@ +/*- + * Copyright (c) 1991, 1993 + * The Regents of the University of California. All rights reserved. + * + * This code is derived from software contributed to Berkeley by + * Jim R. Oldroyd at The Instruction Set and Keith Gabryelski at + * Commodore Business Machines. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * 1. Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * 2. Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * 3. All advertising materials mentioning features or use of this software + * must display the following acknowledgement: + * This product includes software developed by the University of + * California, Berkeley and its contributors. + * 4. Neither the name of the University nor the names of its contributors + * may be used to endorse or promote products derived from this software + * without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND + * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE + * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL + * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS + * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) + * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT + * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY + * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF + * SUCH DAMAGE. + */ + +#ifndef lint +static char sccsid[] = "@(#)rxp.c 8.1 (Berkeley) 5/31/93"; +#endif /* not lint */ + +/* + * regular expression parser + * + * external functions and return values are: + * rxp_compile(s) + * TRUE success + * FALSE parse failure; error message will be in char rxperr[] + * metas are: + * {...} optional pattern, equialent to [...|] + * | alternate pattern + * [...] pattern delimiters + * + * rxp_match(s) + * TRUE string s matches compiled pattern + * FALSE match failure or regexp error + * + * rxp_expand() + * char * reverse-engineered regular expression string + * NULL regexp error + */ + +#include <stdio.h> +#include <ctype.h> +#include "quiz.h" + /* regexp tokens, arg */ +#define LIT (-1) /* literal character, char */ +#define SOT (-2) /* start text anchor, - */ +#define EOT (-3) /* end text anchor, - */ +#define GRP_S (-4) /* start alternate grp, ptr_to_end */ +#define GRP_E (-5) /* end group, - */ +#define ALT_S (-6) /* alternate starts, ptr_to_next */ +#define ALT_E (-7) /* alternate ends, - */ +#define END (-8) /* end of regexp, - */ + +typedef short Rxp_t; /* type for regexp tokens */ + +static Rxp_t rxpbuf[RXP_LINE_SZ]; /* compiled regular expression buffer */ +char rxperr[128]; /* parser error message */ + +static int rxp__compile __P((char *, int)); +static char *rxp__expand __P((int)); +static int rxp__match __P((char *, int, Rxp_t *, Rxp_t *, char *)); + +int +rxp_compile(s) + register char * s; +{ + return (rxp__compile(s, TRUE)); +} + +static int +rxp__compile(s, first) + register char *s; + int first; +{ + static Rxp_t *rp; + static char *sp; + Rxp_t *grp_ptr; + Rxp_t *alt_ptr; + int esc, err; + + esc = 0; + if (first) { + rp = rxpbuf; + sp = s; + *rp++ = SOT; /* auto-anchor: pat is really ^pat$ */ + *rp++ = GRP_S; /* auto-group: ^pat$ is really ^[pat]$ */ + *rp++ = 0; + } + *rp++ = ALT_S; + alt_ptr = rp; + *rp++ = 0; + for (; *sp; ++sp) { + if (rp - rxpbuf >= RXP_LINE_SZ - 4) { + (void)snprintf(rxperr, sizeof(rxperr), + "regular expression too long %s", s); + return (FALSE); + } + if (*sp == ':' && !esc) + break; + if (esc) { + *rp++ = LIT; + *rp++ = *sp; + esc = 0; + } + else switch (*sp) { + case '\\': + esc = 1; + break; + case '{': + case '[': + *rp++ = GRP_S; + grp_ptr = rp; + *rp++ = 0; + sp++; + if ((err = rxp__compile(s, FALSE)) != TRUE) + return (err); + *rp++ = GRP_E; + *grp_ptr = rp - rxpbuf; + break; + case '}': + case ']': + case '|': + *rp++ = ALT_E; + *alt_ptr = rp - rxpbuf; + if (*sp != ']') { + *rp++ = ALT_S; + alt_ptr = rp; + *rp++ = 0; + } + if (*sp != '|') { + if (*sp != ']') { + *rp++ = ALT_E; + *alt_ptr = rp - rxpbuf; + } + if (first) { + (void)snprintf(rxperr, sizeof(rxperr), + "unmatched alternator in regexp %s", + s); + return (FALSE); + } + return (TRUE); + } + break; + default: + *rp++ = LIT; + *rp++ = *sp; + esc = 0; + break; + } + } + if (!first) { + (void)snprintf(rxperr, sizeof(rxperr), + "unmatched alternator in regexp %s", s); + return (FALSE); + } + *rp++ = ALT_E; + *alt_ptr = rp - rxpbuf; + *rp++ = GRP_E; + *(rxpbuf + 2) = rp - rxpbuf; + *rp++ = EOT; + *rp = END; + return (TRUE); +} + +/* + * match string against compiled regular expression + */ +int +rxp_match(s) + register char * s; +{ + return (rxp__match(s, TRUE, NULL, NULL, NULL)); +} + +static int +rxp__match(s, first, j_succ, j_fail, sp_fail) + char *s; + int first; + Rxp_t *j_succ; /* jump here on successful alt match */ + Rxp_t *j_fail; /* jump here on failed match */ + char *sp_fail; /* reset sp to here on failed match */ +{ + static Rxp_t *rp; + static char *sp; + register int ch; + Rxp_t *grp_end; + int err; + + if (first) { + rp = rxpbuf; + sp = s; + } + while (rp < rxpbuf + RXP_LINE_SZ && *rp != END) + switch(*rp) { + case LIT: + rp++; + ch = isascii(*rp) && isupper(*rp) ? tolower(*rp) : *rp; + if (ch != *sp++) { + rp = j_fail; + sp = sp_fail; + return (TRUE); + } + rp++; + break; + case SOT: + if (sp != s) + return (FALSE); + rp++; + break; + case EOT: + if (*sp != 0) + return (FALSE); + rp++; + break; + case GRP_S: + rp++; + grp_end = rxpbuf + *rp++; + break; + case ALT_S: + rp++; + if ((err = rxp__match(sp, + FALSE, grp_end, rxpbuf + *rp++, sp)) != TRUE) + return (err); + break; + case ALT_E: + rp = j_succ; + return (TRUE); + case GRP_E: + default: + return (FALSE); + } + return (*rp != END ? FALSE : TRUE); +} + +/* + * Reverse engineer the regular expression, by picking first of all alternates. + */ +char * +rxp_expand() +{ + return (rxp__expand(TRUE)); +} + +static char * +rxp__expand(first) + int first; +{ + static char buf[RXP_LINE_SZ/2]; + static Rxp_t *rp; + static char *bp; + Rxp_t *grp_ptr; + char *err; + + if (first) { + rp = rxpbuf; + bp = buf; + } + while (rp < rxpbuf + RXP_LINE_SZ && *rp != END) + switch(*rp) { + case LIT: + rp++; + *bp++ = *rp++; + break; + case GRP_S: + rp++; + grp_ptr = rxpbuf + *rp; + rp++; + if ((err = rxp__expand(FALSE)) == NULL) + return (err); + rp = grp_ptr; + break; + case ALT_E: + return (buf); + case ALT_S: + rp++; + /* FALLTHROUGH */ + case SOT: + case EOT: + case GRP_E: + rp++; + break; + default: + return (NULL); + } + if (first) { + if (*rp != END) + return (NULL); + *bp = '\0'; + } + return (buf); +} |