diff --git a/element.go b/element.go index 7d93783..39953f3 100644 --- a/element.go +++ b/element.go @@ -10,6 +10,7 @@ type Element struct { //struttura che contiene sia cibo sia amebe 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 + Premura int //quanto distacco di energia è necessario per compiere la riproduzione allo scopo di evitare di rimanere a secco } func (e Element) String() string { diff --git a/main.go b/main.go index ebe340a..67ae179 100644 --- a/main.go +++ b/main.go @@ -88,6 +88,7 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli } if tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]; tmpNewElem != nil { + 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 @@ -104,9 +105,13 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli } else { //si muove sulla nuova casella Matrix[nuovaPosizioneH][nuovaPosizioneW] = elemento Matrix[h][w] = nil + elemento.Health-=elemento.CostoMov + + if (elemento.Health-elemento.Premura)>elemento.CostoSex { //se ha energia a sufficienza per riprodursi + riproduci(h, w) + } + } - - } func stampaMatrice() { @@ -124,3 +129,7 @@ func stampaMatrice() { } } } + +func riproduci(h int, w int) { + +}