This commit is contained in:
Claudio Maggioni 2017-05-26 14:55:39 +02:00
commit fb5aa3ac6a
2 changed files with 21 additions and 11 deletions

View file

@ -3,9 +3,13 @@ package main
import "fmt" import "fmt"
type Element struct { //struttura che contiene sia cibo sia amebe type Element struct { //struttura che contiene sia cibo sia amebe
IsFood bool IsFood bool //se il contenuto della cella è cibo
Health int Health int //la sua vita
Age int Age int //la sua età
Razza string //per distiguere amici da nemici
Evoluzione int //se evolve in positivo avrà un bonus in attacco che viene sommato a Health
CostoMov int //quanta energia spende per muoversi
CostoSex int //quanto spende per riprodursi
} }
func (e Element) String() string { func (e Element) String() string {

14
main.go
View file

@ -88,20 +88,26 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
return return
} }
fmt.Println(nuovaPosizioneH, nuovaPosizioneW)
if tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]; tmpNewElem != nil { if tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]; tmpNewElem != nil {
if tmpNewElem.IsFood || tmpNewElem.Health < elemento.Health { // se e' cibo o un insetto piu debole if tmpNewElem.Razza!=elemento.Razza { //se non è dalla stessa razza
if tmpNewElem.IsFood || (tmpNewElem.Health+tmpNewElem.Evoluzione) < (elemento.Health+elemento.Evoluzione) { // se e' cibo o un insetto piu debole
elemento.Health += tmpNewElem.Health //prelevamento energia essere fagocitato elemento.Health += tmpNewElem.Health //prelevamento energia essere fagocitato
Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento //inglobamento essere perito Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento //inglobamento essere peritos
} else { } else {
Matrix[h][w] = nil //perdita nel combattimento per la sopravvivenza Matrix[h][w] = nil //perdita nel combattimento per la sopravvivenza
tmpNewElem.Health += elemento.Health //il nemico prende l'energia tmpNewElem.Health += elemento.Health //il nemico prende l'energia
} }
} else { //se sono amici
if nuovaPosizioneH==h && nuovaPosizioneW==w { //se cerca di mangiare il suo amico
muovi(h, w)
}
}
} else { //si muove sulla nuova casella } else { //si muove sulla nuova casella
Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento
Matrix[h][w] = nil Matrix[h][w] = nil
} }
} }
func stampaMatrice() { func stampaMatrice() {