aggiunta paramentri e vario
This commit is contained in:
parent
9ab55fe0b4
commit
db028ef08b
2 changed files with 21 additions and 9 deletions
10
element.go
10
element.go
|
@ -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
20
main.go
|
@ -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
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
Reference in a new issue