WestWorld3 StateMachine Demo

This is the main exectuable for the westworld3 demo.

Game Data

Game-wide constants for WestWorld3 demo.

Game Entities

  • MINER_BOB: Miner Bob, Elsa’s husband

  • WIFE_ELSA: Wife Elsa, scourge of wandering goats

  • BILLY: The goat (now a real GameEntity!)

Locations

  • SHACK: Bob and Elsa’s humble home

  • MINE: Gold mine. Dig for nuggets here!

  • BANK: A bank, duh. Deposit nuggets here!

  • SALOON: Quench yer thirst here!

  • YARD: Frequently invaded by flower-eating goats!

  • FIELDS: Thar be goats in them fields!

Message Types

  • MINER_HOME: Bob sends this when he comes home from digging.

  • STEW_READY: Elsa sends this when she’s finished cooking.

  • GOAT_IN_YARD: Send this to Elsa when Billy enters the yard.

  • GOAT_SHOO: Elsa sends to Billy to attempt to shoo (extra=shoo_force)

  • GOAT_OUT: Reserved for future use.

class gamedata.Locations(value)

An enumeration.

class gamedata.MsgTypes(value)

An enumeration.

exception gamedata.GameOver

Raise this exception to end the game.

Miner Class

Miner Entity using simple FSM functionality.

class ent_miner.Miner(entity_idstr)

Miner Bob, the only miner in the world!

Parameters

entity_idstr (String) – The id string used by BaseEntity.

Since there’s only one Miner, everything except the BaseEntity idstr is hard-coded. We assume this entity is MINER_BOB, and his spouse is WIFE_ELSA.

update()

Just updates the StateMachine logic.

receive_msg(message)

Let our statemachine handle any messages.

change_location(newlocation)

Instantaneously teleport to a new location.

Parameters

newlocation (Locations) – Must match import from gamedata.py.

change_gold(amount)

Add/subtract the amount of gold currently carried

Parameters

amount – How much gold to add (or subtract, if negative)

pockets_full()

True if this Miner is carrying enough gold (3+ nuggets).

add_fatigue(amount=1)

Increases our current fatigue.

remove_fatigue(amount=1)

Remove fatigue, but don’t let it go below zero.

is_thirsty()

True if this Miner is thirsty.

remove_thirst(amount)

Remove thirst, but don’t let it go below zero.

work_done()

Check if we’ve met our mining goal for now.

Miner State Events

Auto-generated from event docstrings.

— MINER_GLOBAL defined events — MINER_GLOBAL: on_enter()

Check that my spouse is in the game world.

MINER_GLOBAL: on_execute()

Increases thirst, unless I’m at the SALOON.

— DIG_IN_MINE defined events — DIG_IN_MINE: on_enter()

If not already in the mine, travel there.

DIG_IN_MINE: on_execute()

Increase fatigue and dig for gold.

StateChange:
  • Pockets are Full –> DEPOSIT GOLD

  • Thirsty –> DRINK_AT_SALOON

DIG_IN_MINE: on_exit()

Print dialog for leaving the mine.

— DEPOSIT_GOLD defined events — DEPOSIT_GOLD: on_enter()

If I’m not at the bank, travel there.

DEPOSIT_GOLD: on_execute()

Deposit all the gold being carried, and check for victory.

StateChange: * If work_done (enough money in bank) –> REST_AT_HOME * Otherwise –> DIG_IN_MINE

DEPOSIT_GOLD: on_exit()

Print dialog for leaving the bank.

— DRINK_AT_SALOON defined events — DRINK_AT_SALOON: on_enter()

If not already at SALOON, go there.

DRINK_AT_SALOON: on_execute()

Drink until I’ve quenched my thirst.

StateChange: * When no longer thirsty –> revert to previous

DRINK_AT_SALOON: on_exit()

Print dialog for leaving the saloon.

— REST_AT_HOME defined events — REST_AT_HOME: on_enter()

If not at SHACK, go there. Tell my spouse I’m home.

REST_AT_HOME: on_execute()

Sleep until rested or woken for dinner.

StateChange: * When fully rested –> DIG_IN_MINE

REST_AT_HOMEon_msg()

Wake up when dinner is ready.

Messages: * STEW_READY: If from my spouse, change state –> EAT_STEW_MINER

— EAT_STEW_MINER defined events — EAT_STEW_MINER: on_enter()

It doesn’t matter where you get hungry, as long as you go home for dinner.

EAT_STEW_MINER: on_execute()

Eat that tasty stew and recover some fatigue.

StateChange:

update(1) –> revert to previous

EAT_STEW_MINER: on_exit()

Print after-dinner dialog.

Wife Class

Wife Entity using simple FSM functionality

class ent_wife.Wife(*args)

Wife Elsa, scourge of the goats.

Parameters

entity_idstr (String) – The id string used by BaseEntity.

Since there’s only one Wife, everything except the BaseEntity idstr is hard-coded. We assume this entity is WIFE_ELSA, and her spouse is MINER_BOB.

update()

Just updates the StateMachine logic.

receive_msg(message)

Let the statemachine handle any messages.

change_location(newlocation)

Instantaneously teleport to a new location.

Parameters

newlocation (Locations) – Must match import from gamedata.py.

score_shoo(count)

Score a point for each goat chased from the yard.

final_score()

Final score = number of goats chased away.

Wife State Events

Auto-generated from event docstrings.

— WIFE_GLOBAL defined events — WIFE_GLOBAL: on_enter()

Check that my spouse is in the game world.

WIFE_GLOBALon_msg()

Listen for goats eating flowers and spouse coming home.

— DO_HOUSEWORK defined events — DO_HOUSEWORK: on_enter()

Housework is done at the SHACK only; make sure I’m there.

DO_HOUSEWORK: on_execute()

Occasionally sing while doing the housework…obviously.

— COOK_STEW defined events — COOK_STEW: on_enter()

Go home and cook, if my spouse is still there.

COOK_STEW: on_execute()

Keep an eye on the stew.

StateChange:

stew_is_ruined –> DO_HOUSEWORK

COOK_STEWon_msg()

Listen for STEW_READY and notify my spouse.

Messages:
  • STEW_READY: change state –> EAT_STEW_WIFE

— EAT_STEW_WIFE defined events — EAT_STEW_WIFE: on_enter()

Make sure I’m actually at home.

EAT_STEW_WIFE: on_execute()

Quickly eat and then go back to housework.

StateChange:
  • After one update –> DO_HOUSEWORK

— CHASE_GOAT defined events — CHASE_GOAT: on_enter()

Stare down an incoming goat, or move to the YARD and shoo it!

CHASE_GOAT: on_execute()

Attempt to shoo the goat.

StateChange:

Target goat no longer in yard –> revert state

CHASE_GOATon_msg()

Busy chasing the goat, so forward messages to future self if needed.

Goat Class

Goat Entity using simple FSM functionality

class ent_goat.Goat(*args)

An actual goat, not just a placeholder for some non-goat.

Parameters

entity_idstr (String) – The id string used by BaseEntity.

Since there’s only one Goat, everything except the BaseEntity idstr is hard-coded. We assume this entity is GOAT_BILLY, and will pester WIFE_ELSA.

update()

To be called by the EntityManager each update.

receive_msg(message)

Used by the EntityManage for basic messaging.

change_location(newlocation)

Instantaneously teleport to a new location.

Parameters

newlocation (Locations) – Must match import from gamedata.py.

eat_flowers(count)

Nom nom flowers.

final_score()

Final score = number of flowers nommed.

Goat State Events

Auto-generated from event docstrings.

— GOAT_GLOBAL defined events — GOAT_GLOBAL: on_enter()

Check that I have somebody’s flowers to eat.

GOAT_GLOBAL: on_execute()

Bleat every so often, because that’s what goats do.

— WANDER_FIELDS defined events — WANDER_FIELDS: on_enter()

If not in the FIELDS, go there and wander for a bit.

WANDER_FIELDS: on_execute()

Wander aimlessly for some time.

StateChange:

Wander countdown complete –> EAT_FLOWERS

— EAT_FLOWERS defined events — EAT_FLOWERS: on_enter()

If not in the YARD, go there and let Elsa know.

EAT_FLOWERS: on_execute()

Eat flowers until we’re shooed away.

EAT_FLOWERSon_msg()

Possibly be shooed by Elsa, but goats are stubborn.

Messages:
  • GOAT_SHOO: If sufficient force, change state –> WANDER_FIELDS

Sample Run

[State info output moved elsewhere]

Miner Bob : Spouse is WIFE_ELSA
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Spouse is MINER_BOB
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : I will eat the flowers of WIFE_ELSA
=== Clock time is now 0 ===
=== Clock time is now 1 ===
Miner Bob : Found me a gold nugget! 
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 2 ===
Miner Bob : Found me a gold nugget! 
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
=== Clock time is now 3 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Billy the Goat : Baaaaah!
=== Clock time is now 4 ===
Miner Bob : Now depositin' 4 gold...
Miner Bob : Saved myself 4 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 5 ===
Miner Bob : Found me a gold nugget! 
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 6 ===
Miner Bob : Keep on a-diggin'... 
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 7 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
=== Clock time is now 8 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 7 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Walkin' to the gold mine...
=== Clock time is now 9 ===
Miner Bob : Keep on a-diggin'... 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Billy the Goat : Baaaaah!
=== Clock time is now 10 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 11 ===
Miner Bob : Found me a gold nugget! 
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom flowers*
=== Clock time is now 12 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 13 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 10 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Day's a finished, headin' on home!
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 14 ===
Miner Bob : Zzzzzz....
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Gonna rustle up some mighty fine stew!
=== Clock time is now 15 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
Billy the Goat : Baaaaah!
=== Clock time is now 16 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 17 ===
Miner Bob : Zzzzzz....
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 18 ===
Miner Bob : Zzzzzz....
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Heading back to the kitchen...
Wife Elsa : Hope mah stew ain't burnt!
Billy the Goat : Baaaaah!
Wife Elsa : Stew's ready, come an' git it!
Miner Bob : I hears ya', lil' lady...
=== Clock time is now 19 ===
Miner Bob : That's some might fine stew...thank ya much, Elsa!
Miner Bob : Now where was I...?
Wife Elsa : Eatin' the stew...I outdone myself this time.
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 20 ===
Miner Bob : Done restin' fer now, back to work!
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 21 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 22 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 23 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 24 ===
Miner Bob : Keep on a-diggin'... 
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 25 ===
Miner Bob : Keep on a-diggin'... 
Billy the Goat : Baaaaah!
=== Clock time is now 26 ===
Miner Bob : Found me a gold nugget! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 27 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 13 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 28 ===
Miner Bob : Keep on a-diggin'... 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 29 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 30 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom flowers*
=== Clock time is now 31 ===
Miner Bob : Keep on a-diggin'... 
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom nom nom flowers*
=== Clock time is now 32 ===
Miner Bob : Found me a gold nugget! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom flowers*
=== Clock time is now 33 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 16 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Nom flowers*
=== Clock time is now 34 ===
Miner Bob : Found me a gold nugget! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
=== Clock time is now 35 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
=== Clock time is now 36 ===
Miner Bob : Keep on a-diggin'... 
Billy the Goat : Baaaaah!
=== Clock time is now 37 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 38 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 19 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom nom nom flowers*
=== Clock time is now 39 ===
Miner Bob : Keep on a-diggin'... 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 40 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 41 ===
Miner Bob : Found me a gold nugget! 
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
=== Clock time is now 42 ===
Miner Bob : Keep on a-diggin'... 
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 43 ===
Miner Bob : Keep on a-diggin'... 
Billy the Goat : Baaaaah!
=== Clock time is now 44 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 45 ===
Miner Bob : Now depositin' 3 gold...
Miner Bob : Saved myself 22 gold...soon'll be rich!
Miner Bob : Leavin' the bank...
Miner Bob : Day's a finished, headin' on home!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 46 ===
Miner Bob : Zzzzzz....
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Wife Elsa : Gonna rustle up some mighty fine stew!
=== Clock time is now 47 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
=== Clock time is now 48 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
Billy the Goat : Baaaaah!
=== Clock time is now 49 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
Billy the Goat : Baaaaah!
=== Clock time is now 50 ===
Miner Bob : Zzzzzz....
Wife Elsa : Wrassalin' with dinner...
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 51 ===
Miner Bob : Zzzzzz....
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 52 ===
Miner Bob : Zzzzzz....
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Heading back to the kitchen...
Wife Elsa : Darnit, done burnt mah stew!
Billy the Goat : Baaaaah!
=== Clock time is now 53 ===
Miner Bob : Zzzzzz....
Wife Elsa : Better clean up this mess.
Wife Elsa : Housework ain't gonna do itself!
=== Clock time is now 54 ===
Miner Bob : Zzzzzz....
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 55 ===
Miner Bob : Zzzzzz....
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 56 ===
Miner Bob : Zzzzzz....
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
=== Clock time is now 57 ===
Miner Bob : Zzzzzz....
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
=== Clock time is now 58 ===
Miner Bob : Zzzzzz....
Billy the Goat : Baaaaah!
=== Clock time is now 59 ===
Miner Bob : Zzzzzz....
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 60 ===
Miner Bob : Zzzzzz....
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 61 ===
Miner Bob : Zzzzzz....
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
Billy the Goat : Baaaaah!
=== Clock time is now 62 ===
Miner Bob : Done restin' fer now, back to work!
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
=== Clock time is now 63 ===
Miner Bob : Found me a gold nugget! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Billy the Goat : Baaaaah!
=== Clock time is now 64 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 65 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : Baaaaah!
Billy the Goat : *Nom nom flowers*
=== Clock time is now 66 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Wife Elsa : Shoo, ya silly goat!
Billy the Goat : *Scampers away*
=== Clock time is now 67 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Mah flowers are safe fer now.
Wife Elsa : Headin' on home...
Wife Elsa : Housework ain't gonna do itself!
Billy the Goat : Baaaaah!
=== Clock time is now 68 ===
Miner Bob : Found me a gold nugget! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to the saloon fer a drink...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
=== Clock time is now 69 ===
Miner Bob : Havin' a whiskey...mighty refreshin'!
Miner Bob : Leavin' the saloon fer now...
Miner Bob : Walkin' to the gold mine...
Wife Elsa : Workin' round the house...tra-la-lah-la-lah...
Billy the Goat : Baaaaah!
=== Clock time is now 70 ===
Miner Bob : Found me two nuggets, whaddaya know! 
Miner Bob : Done diggin' fer now.
Miner Bob : Headin' to bank, yessiree!
Wife Elsa : Thar's a goat out in mah yard!
=== Clock time is now 71 ===
Miner Bob : Now depositin' 4 gold...
Miner Bob : Saved myself 26 gold...soon'll be rich!
Miner Bob : Whee, doggy! A winner is y'all!

 === Final Results ===
Elapsed time: 71 clock ticks.
Miner Bob: Deposited 26 gold nuggets.
Wife Elsa: Chased a goat 12 times.
Billy the Goat: Ate 12 flowers.