feat: finalize with step 5
This commit is contained in:
1 parent
129dd5d8b8
commit
aab128b55c
10 files changed
+332
-37
No files matched your search
@@ -0,0 +1,37 @@
|
||||
// Command westworldwithmessaging runs the full messaging demo: Miner
|
||||
// Bob and Elsa tick forward together, and each iteration also flushes
|
||||
// any delayed telegrams that have come due (Dispatch.DispatchDelayedMessages).
|
||||
//
|
||||
// Our Clock measures real wall-clock time, same as the book's, and
|
||||
// Elsa's CookStew reminder uses a real 1.5 second delay - so this
|
||||
// loop sleeps a little each tick and runs for several seconds of
|
||||
// real time, giving that delayed message an actual chance to fire
|
||||
// before the program ends. A tight, sleep-free loop would finish in
|
||||
// microseconds and the stew would never get made.
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"git.jjstudio.me/jonas/Programming-Game-AI-by-Example-Go/chapter-2-state-driven-agent-design/westworldwithmessaging"
|
||||
)
|
||||
|
||||
func main() {
|
||||
bob := westworldwithmessaging.NewMiner(1)
|
||||
elsa := westworldwithmessaging.NewElsa(2)
|
||||
|
||||
const (
|
||||
numUpdateSteps = 40
|
||||
tickDelay = 100 * time.Millisecond
|
||||
)
|
||||
|
||||
for range numUpdateSteps {
|
||||
westworldwithmessaging.Dispatch.DispatchDelayedMessages()
|
||||
bob.Update()
|
||||
elsa.Update()
|
||||
time.Sleep(tickDelay)
|
||||
}
|
||||
|
||||
fmt.Println()
|
||||
}
|
||||
Reference in new issue
Block a user