aboutsummaryrefslogtreecommitdiff
path: root/go/game/ai_test.go
diff options
context:
space:
mode:
authorFlorian Fischer <florian.fischer@muhq.space>2025-07-19 18:39:59 -0400
committerFlorian Fischer <florian.fischer@muhq.space>2025-08-20 15:57:25 +0200
commit0be3f6cb2373a71e301bb693fa947d7fa258fba0 (patch)
tree871d5ecc64e0d5e09047737ed1e9e3389eeaee2a /go/game/ai_test.go
parent5af1145d2cfe50fcd61098f3bbc853ef06cbf04e (diff)
downloadmuhqs-game-0be3f6cb2373a71e301bb693fa947d7fa258fba0.tar.gz
muhqs-game-0be3f6cb2373a71e301bb693fa947d7fa258fba0.zip
add simple ai implementation
Diffstat (limited to 'go/game/ai_test.go')
-rw-r--r--go/game/ai_test.go31
1 files changed, 31 insertions, 0 deletions
diff --git a/go/game/ai_test.go b/go/game/ai_test.go
index 08cef2cb..632c6991 100644
--- a/go/game/ai_test.go
+++ b/go/game/ai_test.go
@@ -168,3 +168,34 @@ symbols:
t.Fatal("Target is not a Tile")
}
}
+
+func TestSuggestUnitAi(t *testing.T) {
+ mapDef := `map: |1-
+ HST
+ HSF
+ TST
+symbols:
+ T: tower
+ H: house
+ F: farm
+ S: street
+`
+ r := strings.NewReader(mapDef)
+ m, _ := readMap(r)
+ a := NewUnit(NewCard("base/archer"), m.TileAt(Position{0, 0}), nil)
+ if SuggestUnitAI(a) != "aggressive" {
+ t.Fatal("expected aggressive")
+ }
+
+ f := NewUnit(NewCard("misc/farmer"), m.TileAt(Position{2, 2}), nil)
+ exp := "target-oriented farm tile"
+ is := SuggestUnitAI(f)
+ if exp != is {
+ t.Fatal(exp, " != ", is)
+ }
+
+ tc := NewUnit(NewCard("base/tax_collector"), m.TileAt(Position{3, 3}), nil)
+ if SuggestUnitAI(tc) != "shy" {
+ t.Fatal("expected shy")
+ }
+}