From b672485c14d11c4331a1308055f9683054b9be52 Mon Sep 17 00:00:00 2001 From: Claudio Maggioni Date: Fri, 26 May 2017 14:07:10 +0200 Subject: [PATCH] funzione muovi --- main.go | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/main.go b/main.go index 248da36..78d02ee 100644 --- a/main.go +++ b/main.go @@ -8,6 +8,8 @@ import ( ) var Matrix [][]*Element +var Altezza int +var Lunghezza int var SaluteIniziale int func main() { @@ -20,6 +22,8 @@ func main() { if err2 != nil { panic("width not valid") } + Altezza = height + Lunghezza width Matrix = make([][]*Element, height) for i := range Matrix { // inizializzazione matrice Matrix[i] = make([]*Element, width) @@ -49,5 +53,30 @@ func muovi(h int, w int) { // h verticale, w orizzontale if elemento == nil && elemento.IsFood { return } + direzCasOriz := rand.Intn(2) + direzCasOriz-- + direzCasVert := rand.Intn(2) + direzCasVert-- + nuovaPosizioneH = h + direzCasVert + nuovaPosizioneW =w + direzCasOriz + if nuovaPosizioneH > Altezza || nuovaPosizioneH < 0 { + muovi(h, w) + } + if nuovaPosizioneW > larghezza || nuovaPosizioneW < 0 { + muovi(h, w) + } + + if tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]; tmpNewElem != nil { + if tmpNewElem.IsFood || tmpNewElem.Health < elemento.Health { // se e' cibo o un insetto piu debole + elemento.Health += tmpNewElem.Health + Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento + } else { + Matrix[h][w] = nil + tmpNewElem.Health += elemento.Health + } + } else { + Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento + Matrix[h][w] = nil + } }