aggiunta paramentri e vario

This commit is contained in:
Giorgio Croci 2017-05-26 14:45:02 +02:00
parent 9ab55fe0b4
commit db028ef08b
2 changed files with 21 additions and 9 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 {

20
main.go
View File

@ -84,15 +84,23 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
}
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
}
}