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"
type Element struct { //struttura che contiene sia cibo sia amebe
IsFood bool
Health int
Age int
IsFood bool //se il contenuto della cella è cibo
Health int //la sua vita
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 {

22
main.go
View file

@ -88,20 +88,26 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
return
}
fmt.Println(nuovaPosizioneH, nuovaPosizioneW)
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 //prelevamento energia essere fagocitato
Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento //inglobamento essere perito
} else {
Matrix[h][w] = nil //perdita nel combattimento per la sopravvivenza
tmpNewElem.Health += elemento.Health //il nemico prende l'energia
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
Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento //inglobamento essere peritos
} else {
Matrix[h][w] = nil //perdita nel combattimento per la sopravvivenza
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
Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento
Matrix[h][w] = nil
}
}
func stampaMatrice() {