From b0f405ff0be4dc3143579536f89aa30c83c608b6 Mon Sep 17 00:00:00 2001 From: kasa Date: Sun, 27 Aug 2023 17:38:23 +0900 Subject: [PATCH] e.g. add enemy evaluation logic --- enemy.go | 5 +++++ stage.go | 2 +- 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/enemy.go b/enemy.go index 2906eda..20bc229 100644 --- a/enemy.go +++ b/enemy.go @@ -43,6 +43,7 @@ type strategy interface { } type assault struct{} type tricky struct{} +type ambush struct{} type underRune struct { char rune @@ -136,6 +137,10 @@ func (s *tricky) eval(p *player, x, y int) float64 { return math.Sqrt(math.Pow(float64(p.y-y), 2) + math.Pow(float64(p.x-x), 2)) } } +func (s *ambush) eval(p *player, x, y int) float64 { + // Implement the logic for calculating the evaluation value. + return float64(random(0, 30)) +} // Return a value between min and max // e.g. random(0, 3) returns 0,1,2,3 diff --git a/stage.go b/stage.go index 89c3a86..897a05c 100644 --- a/stage.go +++ b/stage.go @@ -26,7 +26,7 @@ func initStages() []stage { { level: 1, mapPath: "files/stage/map01.txt", - hunterBuilder: newEnemyBuilder().defaultHunter(), + hunterBuilder: newEnemyBuilder().defaultHunter().strategize(&ambush{}), assassinBuilder: newEnemyBuilder().defaultAssassin(), // The only change is here. gameSpeed: 1250 * time.Millisecond, },