funzione muovi

This commit is contained in:
Claudio Maggioni 2017-05-26 14:07:10 +02:00
parent 8e379a34f7
commit b672485c14

31
main.go
View File

@ -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
}
}