/* be a real bastard, put this in a locked dir */
mixed *questions = ({
({"What keeps the crocodiles in the pit beneath your feet well fed ?",({"wrong answers"}),"Wrong answers."}),
({"How many Orcs does it take to sharpen a sword ?.",({"which end"}),"The correct (Orcish) answer is \"which end\", hrrmph."}),
({"What spell destroyed the Illythid race ?",({"power word genocide"}),"Power word Genocide."}),
({"A drow cleric in banefall, and an Elf Wizard in daggerford agree at 1am to fight at the niche,at what time does the fight take place ?",({"never"}),"Never, The drow is by now under Shadowfall, and the Elf is on Wardens."}),
({"You are stupid enough to walk into a room that has a locked door and a sign saying \"Tresspassers will be invited to dinner\", you die, do you complain to the gods ?",({"invariably","of course"}),"Invariably.. hmm it says here \"Taniwha sighs sadly\""}),
({"You are stupid enough to walk into a room that has a locked door and a sign saying \"Tresspassers will be invited to dinner\", which God laughs loudest ?",({"timion","all of them"}),"How odd, Timion, but there's an Echoing laugh from the heavens ...."}),
({"If a Drow invites you to a fair fight at the niche, what do you do ?",({"turn up"}),"Turn up, thats the last place he'll be."}),
({"What is a goblins idea of a fair fight ?",({"twenty goblins mugging a dead cow"}),"Twenty goblins mugging a dead cow."}),
({"How many Drow does it take to light a torch ?",({"one"}),"One if sufficient lamp oil is added to the Drow prior to ignition is generally considered sufficient."}),
({"How many Drow does it take to light a torch ?",({"none"}),"A True Drow would rather curse the darkness than ligh a torch."}),
({"How many Vampires does it take to light a torch ?",({"none"}),"You gotta be jokning clive , no Vampire would do that."}),
({"How many Dwarves does it take to light a torch ?",({"none"}),"We'll have non of that revolutionary strike business around here thank you !"}),
({"How many Thieves does it take to light a torch ?",({"what torch","I could have sworn it was here a moment ago"}),"what torch ?"}),
({"How many Cyrcia clerics does it take to light a torch ?",({"two"}),"One to pray, one to wipe the blood off afterwards."}),
({"How many fighters does it take to light a torch ?",({"which end ?","which end,which end?"}),"which end ?"}),
({"How does one summon a demon.",({"carefully","damn carefully"}),"Damn carefully."}),
({"How does a Troll sharpen a sword ?..",({"shaves","shaves with it"}),"Shaves with it."}),
({"How do you get a drink out of a Dwarf..",({"cut his throat","stick a finger down his throat"}),"Stick a finger down his throat."}),
({"How many Trolls does it take to sharpen a sword ?..",({"three"}),"Three, one to hold the sword and two to move the grindstone back and forth."}),
({"How many people does it take to make a working love potion..",({"two"}),"heh."}),
({"Whats the surest way to get thrown out of a Dwarf bar ?..",({"order a short"}),"Order a short."}),
({"Whats a dwarves favourite song subject, other than \"gold\"..",({"gold"}),"Well that was obvious"}),
({"Say what I say not do as I do, say \"feet without shoes and socks\"..",({"feet"}),"Heh."}),
({"Say what I say not do as I do, say \"feet without shoes and socks\"..",({"feet and socks"}),"Heh.."}),
({"Say what I say not do as I do, say \"feet without shoes or socks\"..",({"feet"}),"Heh.."}),
({"Say what I say not do as I do, say \"feet without shoes or socks\"..",({"feet","socks"}),"Heh.."}),
({"Don't say what I say but do as I do, say \"feet without shoes or socks\"..",({"bare feet","barefoot"}),"Heh.."}),
({"I eat mountains, destroy civilizations and annoy philosophs, what am I ?..",({"time"}),"Time.."}),
({"What did the zombie say to the lady of the night ?..",({"keep the tip"}),"Keep the tip.."}),
({"Two Trolls walk into a bar, what happens next ?..",({"ouch"}),"ouch.."}),
({"How many Assassins does it take to sharpen a sword ?..",({"two"}),"Two, one to light the torch, one to hide the body.."}),
});
/* gotta be an efun for this */
int a_qnum()
{
return (1+random(sizeof(questions)-1));
}
string the_question(int num)
{
return questions[num][0];
}
string the_possibles(int num)
{
return questions[num][0];
}
string numwords(int num)
{
return number_as_string(sizeof(questions[num][1]));
}
string minans(int num)
{
int i,m,n;
string * answers;
m = 69;
answers = questions[num][1];
for(i = 0; i < sizeof(answers); i++)
{
n = sizeof(explode(answers[i]," "));
if(n < m) m = n;
}
return number_as_string(m);
}
string maxans(int num)
{
int i,m,n;
string * answers;
m = 0;
answers = questions[num][1];
for(i = 0; i < sizeof(answers); i++)
{
n = sizeof(explode(answers[i]," "));
if(n > m) m = n;
}
return number_as_string(m);
}
/* O.K. it's crude, it's nasty
If I'm nice I just check that the answer has all the same words
as the set I expect and pass anyway
*/
int check_answer(int num, string answer)
{
string *answers;
answers = questions[num][1];
answer = lower_case(answer);
if(member_array(answer,answers) != -1) return 1;
else return 0;
}
string the_answer(int num)
{
return questions[num][2];
}