diff --git a/element.go b/element.go index 673c8ef..7d93783 100644 --- a/element.go +++ b/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 { diff --git a/main.go b/main.go index 5517b93..41635dc 100644 --- a/main.go +++ b/main.go @@ -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() {