965 lines
13 KiB
C
965 lines
13 KiB
C
/*
|
|
soapstone.c : Random orange soapstone message generator.
|
|
(C)2016 Marisa Kirisame, UnSX Team.
|
|
Released under the GNU GPLv3 (or later).
|
|
Dark Souls is (C)2011-2016 From Software.
|
|
*/
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <time.h>
|
|
|
|
const char templates1[13][32] =
|
|
{
|
|
"%s ahead",
|
|
"Be wary of %s",
|
|
"Try %s",
|
|
"Need %s",
|
|
"Imminent %s...",
|
|
"Weakness: %s",
|
|
"%s",
|
|
"%s?",
|
|
"Good luck",
|
|
"I did it!",
|
|
"Here!",
|
|
"I can't take this...",
|
|
"Praise the Sun!"
|
|
};
|
|
|
|
const char words1[173][32] =
|
|
{
|
|
"Enemy",
|
|
"Tough enemy",
|
|
"Hollow",
|
|
"Soldier",
|
|
"Knight",
|
|
"Sniper",
|
|
"Caster",
|
|
"Giant",
|
|
"Skeleton",
|
|
"Ghost",
|
|
"Bug",
|
|
"Poison bug",
|
|
"Lizard",
|
|
"Drake",
|
|
"Flier",
|
|
"Golem",
|
|
"Statue",
|
|
"Monster",
|
|
"Strange creature",
|
|
"Demon",
|
|
"Darkwraith",
|
|
"Dragon",
|
|
"Boss",
|
|
"Saint",
|
|
"Wretch",
|
|
"Charmer",
|
|
"Miscreant",
|
|
"Liar",
|
|
"Fatty",
|
|
"Beanpole",
|
|
"Merchant",
|
|
"Blacksmith",
|
|
"Master",
|
|
"Prisoner",
|
|
"Bonfire",
|
|
"Fog wall",
|
|
"Humanity",
|
|
"Lever",
|
|
"Switch",
|
|
"Key",
|
|
"Treasure",
|
|
"Chest",
|
|
"Weapon",
|
|
"Shield",
|
|
"Projectile",
|
|
"Armour",
|
|
"Item",
|
|
"Ring",
|
|
"Sorcery scroll",
|
|
"Pyromancy scroll",
|
|
"Miracle scroll",
|
|
"Ember",
|
|
"Trap",
|
|
"Covenant",
|
|
"Amazing key",
|
|
"Amazing treasure",
|
|
"Amazing chest",
|
|
"Amazing weapon",
|
|
"Amazing armour",
|
|
"Amazing item",
|
|
"Amazing ring",
|
|
"Amazing sorcery scroll",
|
|
"Amazing pyromancy scroll",
|
|
"Amazing miracle scroll",
|
|
"Amazing ember",
|
|
"Amazing trap",
|
|
"Close-ranged battle",
|
|
"Ranged battle",
|
|
"Eliminating one at a time",
|
|
"Luring it out",
|
|
"Beating to a pulp",
|
|
"Lying in ambush",
|
|
"Stealth",
|
|
"Mimicry",
|
|
"Pincer attack",
|
|
"Hitting them in one swoop",
|
|
"Fleeing",
|
|
"Charging",
|
|
"Stabbing in the back",
|
|
"Sweeping attack",
|
|
"Shield breaking",
|
|
"Head shots",
|
|
"Sorcery",
|
|
"Pyromancy",
|
|
"Miracles",
|
|
"Jumping off",
|
|
"Sliding down",
|
|
"Dashing through",
|
|
"Rolling",
|
|
"Backstepping",
|
|
"Jumping",
|
|
"Attacking",
|
|
"Holding with both hands",
|
|
"Kicking",
|
|
"A plunging attack",
|
|
"Blocking",
|
|
"Parrying",
|
|
"Locking-on",
|
|
"Path",
|
|
"Hidden path",
|
|
"Shortcut",
|
|
"Detour",
|
|
"Illusory wall",
|
|
"Shortcut",
|
|
"Dead end",
|
|
"Swamp",
|
|
"Lava",
|
|
"Forest",
|
|
"Cave",
|
|
"Labyrinth",
|
|
"Safe zone",
|
|
"Danger zone",
|
|
"Sniper spot",
|
|
"Bright spot",
|
|
"Dark spot",
|
|
"Open area",
|
|
"Tight spot",
|
|
"Hiding place",
|
|
"Exchange",
|
|
"Gorgeous view",
|
|
"Fall",
|
|
"Front",
|
|
"Back",
|
|
"Left",
|
|
"Right",
|
|
"Up",
|
|
"Down",
|
|
"Feet",
|
|
"Head",
|
|
"Back",
|
|
"Head",
|
|
"Neck",
|
|
"Stomach",
|
|
"Back",
|
|
"Arm",
|
|
"Leg",
|
|
"Heel",
|
|
"Rear",
|
|
"Tail",
|
|
"Wings",
|
|
"Anywhere",
|
|
"Strike",
|
|
"Thrust",
|
|
"Slash",
|
|
"Magic",
|
|
"Fire",
|
|
"Lightning",
|
|
"Critical hits",
|
|
"Bleeding",
|
|
"Poison",
|
|
"Strong poison",
|
|
"Curses",
|
|
"Divine",
|
|
"Occult",
|
|
"Crystal",
|
|
"Chance",
|
|
"Hint",
|
|
"Secret",
|
|
"Happiness",
|
|
"Sorrow",
|
|
"Life",
|
|
"Death",
|
|
"Undead",
|
|
"Elation",
|
|
"Grief",
|
|
"Hope",
|
|
"Despair",
|
|
"Light",
|
|
"Dark",
|
|
"Bravery",
|
|
"Resignation",
|
|
"Comfort",
|
|
"Tears"
|
|
};
|
|
|
|
const char templates2[11][32] =
|
|
{
|
|
"%s ahead",
|
|
"%s required ahead",
|
|
"be wary of %s",
|
|
"try %s",
|
|
"weakness: %s",
|
|
"visions of %s...",
|
|
"%s",
|
|
"%s!",
|
|
"%s?",
|
|
"%s...",
|
|
"hurrah for %s!",
|
|
};
|
|
|
|
const char conjunctions2[7][32] =
|
|
{
|
|
" and then ",
|
|
" but ",
|
|
" therefore ",
|
|
" in short ",
|
|
" or ",
|
|
" by the way ",
|
|
", "
|
|
};
|
|
|
|
const char words2[247][32] =
|
|
{
|
|
"enemy",
|
|
"monster",
|
|
"lesser foe",
|
|
"tough enemy",
|
|
"boss",
|
|
"Hollow",
|
|
"skeleton",
|
|
"ghost",
|
|
"bug",
|
|
"Gyrm",
|
|
"beast",
|
|
"giant",
|
|
"dwarf",
|
|
"sniper",
|
|
"caster",
|
|
"duo",
|
|
"trio",
|
|
"saint",
|
|
"wretch",
|
|
"charmer",
|
|
"poor soul",
|
|
"oddball",
|
|
"nimble one",
|
|
"laggard",
|
|
"moneybags",
|
|
"beggar",
|
|
"miscreant",
|
|
"liar",
|
|
"fatty",
|
|
"beanpole",
|
|
"merchant",
|
|
"artisan",
|
|
"master",
|
|
"friend",
|
|
"ally",
|
|
"Dark Spirit",
|
|
"Phantom",
|
|
"Shade",
|
|
"bonfire",
|
|
"fog wall",
|
|
"lever",
|
|
"switch",
|
|
"key",
|
|
"trap",
|
|
"torch",
|
|
"door",
|
|
"treasure",
|
|
"chest",
|
|
"something",
|
|
"quite something",
|
|
"weapon",
|
|
"shield",
|
|
"projectile",
|
|
"armor",
|
|
"item",
|
|
"ring",
|
|
"scroll",
|
|
"ore",
|
|
"message",
|
|
"bloodstain",
|
|
"illusion",
|
|
"close-ranged battle",
|
|
"ranged battle",
|
|
"eliminating one at a time",
|
|
"luring it out",
|
|
"beating to a pulp",
|
|
"ambush",
|
|
"pincer attack",
|
|
"hitting them in one swoop",
|
|
"dual-wielding",
|
|
"stealth",
|
|
"mimicry",
|
|
"fleeing",
|
|
"charging",
|
|
"jumping off",
|
|
"dashing through",
|
|
"circling around",
|
|
"trapping inside",
|
|
"rescue",
|
|
"sorcery",
|
|
"pyromancy",
|
|
"miracles",
|
|
"hexes",
|
|
"pure luck",
|
|
"prudence",
|
|
"brief respite",
|
|
"play dead",
|
|
"jog",
|
|
"dash",
|
|
"rolling",
|
|
"backstepping",
|
|
"jumping",
|
|
"attacking",
|
|
"jump attack",
|
|
"dash attack",
|
|
"counter attack",
|
|
"stabbing in the back",
|
|
"guard stun & stab",
|
|
"parry stun & stab",
|
|
"plunging attack",
|
|
"sweeping attack",
|
|
"shield breaking",
|
|
"blocking",
|
|
"parrying",
|
|
"spell parry",
|
|
"locking-on",
|
|
"no lock-on",
|
|
"two-handing",
|
|
"gesture",
|
|
"control",
|
|
"destroy",
|
|
"boulder",
|
|
"lava",
|
|
"poison gas",
|
|
"enemy horde",
|
|
"forest",
|
|
"cave",
|
|
"arena",
|
|
"hidden path",
|
|
"detour",
|
|
"shortcut",
|
|
"dead end",
|
|
"labyrinth",
|
|
"hole",
|
|
"bright spot",
|
|
"dark spot",
|
|
"open area",
|
|
"tight spot",
|
|
"safe zone",
|
|
"danger zone",
|
|
"sniper spot",
|
|
"hiding place",
|
|
"illusory wall",
|
|
"ladder",
|
|
"lift",
|
|
"exchange",
|
|
"gorgeous view",
|
|
"looking away",
|
|
"overconfidence",
|
|
"slip-up",
|
|
"oversight",
|
|
"fatigue",
|
|
"bad luck",
|
|
"inattention",
|
|
"loss of stamina",
|
|
"front",
|
|
"back",
|
|
"left",
|
|
"right",
|
|
"up",
|
|
"down",
|
|
"below",
|
|
"above",
|
|
"behind",
|
|
"head",
|
|
"neck",
|
|
"stomach",
|
|
"back",
|
|
"arm",
|
|
"leg",
|
|
"rear",
|
|
"tail",
|
|
"wings",
|
|
"anywhere",
|
|
"tongue",
|
|
"right arm",
|
|
"left arm",
|
|
"right leg",
|
|
"left leg",
|
|
"right side",
|
|
"left side",
|
|
"pincer",
|
|
"wheel",
|
|
"core",
|
|
"horse",
|
|
"strike",
|
|
"thrust",
|
|
"slash",
|
|
"magic",
|
|
"sorcery",
|
|
"fire",
|
|
"lightning",
|
|
"critical hits",
|
|
"bleeding",
|
|
"poison",
|
|
"toxic",
|
|
"curse",
|
|
"equipment breakage",
|
|
"chance",
|
|
"quagmire",
|
|
"hint",
|
|
"secret",
|
|
"happiness",
|
|
"misfortune",
|
|
"life",
|
|
"death",
|
|
"joy",
|
|
"sadness",
|
|
"tears",
|
|
"hope",
|
|
"despair",
|
|
"victory",
|
|
"defeat",
|
|
"light",
|
|
"dark",
|
|
"bravery",
|
|
"confidence",
|
|
"vigor",
|
|
"revenge",
|
|
"resignation",
|
|
"overwhelming",
|
|
"regret",
|
|
"pointless",
|
|
"man",
|
|
"woman",
|
|
"recklessness",
|
|
"composure",
|
|
"guts",
|
|
"comfort",
|
|
"silence",
|
|
"good luck",
|
|
"fine work",
|
|
"I did it!",
|
|
"I've failed...",
|
|
"here!",
|
|
"not here!",
|
|
"I can't take this...",
|
|
"don't you dare!",
|
|
"do it!",
|
|
"look carefully",
|
|
"listen carefully",
|
|
"think carefully",
|
|
"this place again?",
|
|
"now the real fight begins",
|
|
"keep moving",
|
|
"pull back",
|
|
"give it up",
|
|
"don't give up",
|
|
"help me...",
|
|
"impossible...",
|
|
"bloody expensive...",
|
|
"nice job",
|
|
"let me out of here...",
|
|
"stay calm",
|
|
"like a dream...",
|
|
"are you ready?",
|
|
"praise the Sun!"
|
|
};
|
|
|
|
const char templates3[17][32] =
|
|
{
|
|
"%s ahead",
|
|
"No %s ahead",
|
|
"%s required ahead",
|
|
"be wary of %s",
|
|
"try %s",
|
|
"Could this be a %s?",
|
|
"If only I had a %s...",
|
|
"visions of %s...",
|
|
"Time for %s",
|
|
"%s",
|
|
"%s!",
|
|
"%s?",
|
|
"%s...",
|
|
"Huh. It's a %s...",
|
|
"praise the %s!",
|
|
"Let there be %s",
|
|
"Ahh, %s..."
|
|
};
|
|
|
|
const char conjunctions3[10][32] =
|
|
{
|
|
" and then ",
|
|
" but ",
|
|
" therefore ",
|
|
" in short ",
|
|
" or ",
|
|
" only ",
|
|
" by the way ",
|
|
" so to speak ",
|
|
" all the more ",
|
|
", ",
|
|
};
|
|
|
|
const char gestures3[33][32] =
|
|
{
|
|
"Point forward",
|
|
"Point up",
|
|
"Point down",
|
|
"Wave",
|
|
"Beckon",
|
|
"Call over",
|
|
"Welcome",
|
|
"Applause",
|
|
"Quiet Resolve",
|
|
"Jump for joy",
|
|
"Joy",
|
|
"Rejoice",
|
|
"Hurrah!",
|
|
"Praise the Sun",
|
|
"My thanks!",
|
|
"Bow",
|
|
"Proper bow",
|
|
"Dignified bow",
|
|
"Duel bow",
|
|
"Legion Etiquette",
|
|
"Darkmoon Loyalty",
|
|
"By my sword",
|
|
"Prayer",
|
|
"Silent Ally",
|
|
"Rest",
|
|
"Collapse",
|
|
"Patches Squat",
|
|
"Prostration",
|
|
"Toast",
|
|
"Sleep",
|
|
"Curl up",
|
|
"Stretch out",
|
|
"Path of the Dragon"
|
|
};
|
|
|
|
const char words3[322][32] =
|
|
{
|
|
"enemy",
|
|
"monster",
|
|
"mob enemy",
|
|
"tough enemy",
|
|
"critical foe",
|
|
"Hollow",
|
|
"pilgrim",
|
|
"prisoner",
|
|
"monstrosity",
|
|
"skeleton",
|
|
"ghost",
|
|
"beast",
|
|
"lizard",
|
|
"bug",
|
|
"grub",
|
|
"crab",
|
|
"dwarf",
|
|
"giant",
|
|
"demon",
|
|
"dragon",
|
|
"knight",
|
|
"sellsword",
|
|
"warrior",
|
|
"herald",
|
|
"bandit",
|
|
"assassin",
|
|
"sorcerer",
|
|
"pyromancer",
|
|
"cleric",
|
|
"deprived",
|
|
"sniper",
|
|
"duo",
|
|
"trio",
|
|
"you",
|
|
"you bastard",
|
|
"good fellow",
|
|
"saint",
|
|
"wretch",
|
|
"charmer",
|
|
"poor soul",
|
|
"oddball",
|
|
"nimble one",
|
|
"laggard",
|
|
"moneybags",
|
|
"beggar",
|
|
"miscreant",
|
|
"liar",
|
|
"fatty",
|
|
"beanpole",
|
|
"youth",
|
|
"elder",
|
|
"old codger",
|
|
"old dear",
|
|
"miscreant",
|
|
"artisan",
|
|
"master",
|
|
"sage",
|
|
"champion",
|
|
"Lord of Cinder",
|
|
"king",
|
|
"queen",
|
|
"prince",
|
|
"princess",
|
|
"angel",
|
|
"god",
|
|
"friend",
|
|
"ally",
|
|
"spouse",
|
|
"covenantor",
|
|
"Phantom",
|
|
"Dark Spirit",
|
|
"bonfire",
|
|
"ember",
|
|
"fog wall",
|
|
"lever",
|
|
"contraption",
|
|
"key",
|
|
"trap",
|
|
"torch",
|
|
"door",
|
|
"treasure",
|
|
"chest",
|
|
"something",
|
|
"quite something",
|
|
"rubbish",
|
|
"filth",
|
|
"weapon",
|
|
"shield",
|
|
"projectile",
|
|
"armor",
|
|
"item",
|
|
"ring",
|
|
"ore",
|
|
"coal",
|
|
"transposing kiln",
|
|
"scroll",
|
|
"umbral ash",
|
|
"throne",
|
|
"rite",
|
|
"coffin",
|
|
"cinder",
|
|
"ash",
|
|
"moon",
|
|
"eye",
|
|
"brew",
|
|
"soup",
|
|
"message",
|
|
"bloodstain",
|
|
"illusion",
|
|
"close-ranged battle",
|
|
"ranged battle",
|
|
"eliminating one at a time",
|
|
"luring it out",
|
|
"beating to a pulp",
|
|
"ambush",
|
|
"pincer attack",
|
|
"hitting them in one swoop",
|
|
"dual-wielding",
|
|
"stealth",
|
|
"mimicry",
|
|
"fleeing",
|
|
"charging",
|
|
"jumping off",
|
|
"dashing through",
|
|
"circling around",
|
|
"trapping inside",
|
|
"rescue",
|
|
"Skill",
|
|
"sorcery",
|
|
"pyromancy",
|
|
"miracles",
|
|
"pure luck",
|
|
"prudence",
|
|
"brief respite",
|
|
"play dead",
|
|
"jog",
|
|
"dash",
|
|
"rolling",
|
|
"backstepping",
|
|
"jumping",
|
|
"attacking",
|
|
"jump attack",
|
|
"dash attack",
|
|
"counter attack",
|
|
"stabbing in the back",
|
|
"guard stun & stab",
|
|
"plunging attack",
|
|
"sweeping attack",
|
|
"shield breaking",
|
|
"blocking",
|
|
"parrying",
|
|
"locking-on",
|
|
"no lock-on",
|
|
"two-handing",
|
|
"gesture",
|
|
"control",
|
|
"destroy",
|
|
"boulder",
|
|
"lava",
|
|
"poison gas",
|
|
"enemy horde",
|
|
"forest",
|
|
"swamp",
|
|
"cave",
|
|
"shortcut",
|
|
"detour",
|
|
"hidden path",
|
|
"secret passage",
|
|
"dead end",
|
|
"labyrinth",
|
|
"hole",
|
|
"bright spot",
|
|
"dark spot",
|
|
"open area",
|
|
"tight spot",
|
|
"safe zone",
|
|
"danger zone",
|
|
"sniper spot",
|
|
"hiding place",
|
|
"illusory wall",
|
|
"ladder",
|
|
"lift",
|
|
"gorgeous view",
|
|
"looking away",
|
|
"overconfidence",
|
|
"slip-up",
|
|
"oversight",
|
|
"fatigue",
|
|
"bad luck",
|
|
"inattention",
|
|
"loss of stamina",
|
|
"chance encounter",
|
|
"planned encounter",
|
|
"front",
|
|
"back",
|
|
"left",
|
|
"right",
|
|
"up",
|
|
"down",
|
|
"below",
|
|
"above",
|
|
"behind",
|
|
"head",
|
|
"neck",
|
|
"stomach",
|
|
"back",
|
|
"arm",
|
|
"finger",
|
|
"leg",
|
|
"rear",
|
|
"tail",
|
|
"wings",
|
|
"anywhere",
|
|
"tongue",
|
|
"right arm",
|
|
"left arm",
|
|
"thumb",
|
|
"indexfinger",
|
|
"longfinger",
|
|
"ringfinger",
|
|
"smallfinger",
|
|
"right leg",
|
|
"left leg",
|
|
"right side",
|
|
"left side",
|
|
"pincer",
|
|
"wheel",
|
|
"core",
|
|
"mount",
|
|
"regular",
|
|
"strike",
|
|
"thrust",
|
|
"slash",
|
|
"magic",
|
|
"crystal",
|
|
"fire",
|
|
"chaos",
|
|
"lightning",
|
|
"blessing",
|
|
"dark",
|
|
"critical hits",
|
|
"bleeding",
|
|
"poison",
|
|
"toxic",
|
|
"frost",
|
|
"curse",
|
|
"equipment breakage",
|
|
"chance",
|
|
"quagmire",
|
|
"hint",
|
|
"secret",
|
|
"sleeptalk",
|
|
"happiness",
|
|
"misfortune",
|
|
"life",
|
|
"death",
|
|
"demise",
|
|
"joy",
|
|
"fury",
|
|
"agony",
|
|
"sadness",
|
|
"tears",
|
|
"loyalty",
|
|
"betrayal",
|
|
"hope",
|
|
"despair",
|
|
"fear",
|
|
"losing sanity",
|
|
"victory",
|
|
"defeat",
|
|
"sacrifice",
|
|
"light",
|
|
"dark",
|
|
"bravery",
|
|
"confidence",
|
|
"vigor",
|
|
"revenge",
|
|
"resignation",
|
|
"overwhelming",
|
|
"regret",
|
|
"pointless",
|
|
"man",
|
|
"woman",
|
|
"friendship",
|
|
"love",
|
|
"recklessness",
|
|
"composure",
|
|
"guts",
|
|
"comfort",
|
|
"silence",
|
|
"deep",
|
|
"good luck",
|
|
"fine work",
|
|
"I did it!",
|
|
"I've failed...",
|
|
"here!",
|
|
"not here!",
|
|
"I can't take this...",
|
|
"lonely...",
|
|
"don't you dare!",
|
|
"do it!",
|
|
"look carefully",
|
|
"listen carefully",
|
|
"think carefully",
|
|
"this place again?",
|
|
"now the real fight begins",
|
|
"you don't deserve this",
|
|
"keep moving",
|
|
"pull back",
|
|
"give it up",
|
|
"don't give up",
|
|
"help me...",
|
|
"impossible...",
|
|
"bloody expensive...",
|
|
"let me out of here...",
|
|
"stay calm",
|
|
"like a dream...",
|
|
"seems familiar...",
|
|
"are you ready?",
|
|
"it'll happen to you too",
|
|
"praise the Sun!",
|
|
"may the flames guide thee"
|
|
};
|
|
|
|
void print_soapstone_ds1( void )
|
|
{
|
|
int template = rand()%13;
|
|
int word = rand()%173;
|
|
char mesg[256];
|
|
if ( template < 8 ) sprintf(mesg,templates1[template],words1[word]);
|
|
else strcpy(mesg,templates1[template]);
|
|
printf("%s\n",mesg);
|
|
}
|
|
|
|
void print_soapstone_ds2( void )
|
|
{
|
|
int template = rand()%11;
|
|
int word = rand()%(((template>5)&&(template<10))?247:220);
|
|
char mesg[256];
|
|
sprintf(mesg,templates2[template],words2[word]);
|
|
if ( rand()&1 )
|
|
{
|
|
char mesg2[256];
|
|
int template2 = rand()%11;
|
|
int word2 = rand()%(((template2>5)&&(template2<10))?247:220);
|
|
int conj = rand()%7;
|
|
sprintf(mesg2,templates2[template2],words2[word2]);
|
|
printf("%s%s%s\n",mesg,conjunctions2[conj],mesg2);
|
|
}
|
|
else printf("%s\n",mesg);
|
|
}
|
|
|
|
void print_soapstone_ds3( void )
|
|
{
|
|
if ( rand()&1 ) printf("[%s] ",gestures3[rand()%33]);
|
|
int template = rand()%17;
|
|
int word = rand()%322;
|
|
char mesg[256];
|
|
sprintf(mesg,templates3[template],words3[word]);
|
|
if ( rand()&1 )
|
|
{
|
|
char mesg2[256];
|
|
int template2 = rand()%17;
|
|
int word2 = rand()%211;
|
|
int conj = rand()%10;
|
|
sprintf(mesg2,templates3[template2],words3[word2]);
|
|
printf("%s%s%s\n",mesg,conjunctions3[conj],mesg2);
|
|
}
|
|
else printf("%s\n",mesg);
|
|
}
|
|
|
|
int main( int argc, char **argv )
|
|
{
|
|
int rsd = 0;
|
|
#ifndef WINDOWS
|
|
FILE *r;
|
|
if ( (r = fopen("/dev/random","r")) )
|
|
{
|
|
fread(&rsd,sizeof(int),1,r);
|
|
fclose(r);
|
|
}
|
|
else
|
|
#endif
|
|
rsd = time(0);
|
|
srand(rsd);
|
|
if ( argc < 2 )
|
|
{
|
|
fprintf(stderr,"usage: %s <gamenumber> [lines]\n",argv[0]);
|
|
return 1;
|
|
}
|
|
int times = 1;
|
|
if ( argc > 2 ) sscanf(argv[2],"%d",×);
|
|
switch( *argv[1] )
|
|
{
|
|
case '1':
|
|
for ( int i=0; i<times; i++ ) print_soapstone_ds1();
|
|
break;
|
|
case '2':
|
|
for ( int i=0; i<times; i++ ) print_soapstone_ds2();
|
|
break;
|
|
case '3':
|
|
for ( int i=0; i<times; i++ ) print_soapstone_ds3();
|
|
break;
|
|
default:
|
|
fprintf(stderr,"unknown gamenum %c\n",*argv[1]);
|
|
break;
|
|
}
|
|
return 0;
|
|
}
|