diff --git a/element.go b/element.go index e3035b1..887a6e5 100644 --- a/element.go +++ b/element.go @@ -6,7 +6,8 @@ type Element struct { //struttura che contiene sia cibo sia amebe IsFood bool //se il contenuto della cella è cibo Health int //la sua vita Age int //la sua età - Razza int //per distiguere amici da nemici + AgeMax int //la sua età massima + Razza int //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 @@ -17,7 +18,7 @@ func (e Element) String() string { return fmt.Sprintf("E'Cibo=%t Salute=%d Eta=%d", e.IsFood, e.Health, e.Age) } -func Costruttore(razza int, evoluzione int, costomov int, costosex int, premura int, salute int) *Element { +func Costruttore(razza int, evoluzione int, costomov int, costosex int, premura int, salute int, agemax int) *Element { nuovo := new(Element) nuovo.IsFood = false nuovo.Health = salute @@ -27,5 +28,6 @@ func Costruttore(razza int, evoluzione int, costomov int, costosex int, premura nuovo.CostoMov = costomov nuovo.CostoSex = costosex nuovo.Premura = premura + nuovo.AgeMax = agemax return nuovo } diff --git a/main.go b/main.go index de94c65..7c0adad 100644 --- a/main.go +++ b/main.go @@ -17,7 +17,7 @@ var CostoMovIniziale int = 5 var CostoSexIniziale int = 100 var EvoluzioneIniziale int = 0 var PremuraIniziale int = 10 -var AgeLimite int = 30 +var AgeMaxInizio int = 30 var Clock uint var NumClock uint @@ -50,6 +50,7 @@ func main() { //FUNZIONE MAIN Matrix[i][j].CostoSex = CostoSexIniziale Matrix[i][j].Evoluzione = EvoluzioneIniziale Matrix[i][j].Premura = PremuraIniziale + Matrix[i][j].AgeMax = AgeMaxInizio Matrix[i][j].Razza = rand.Intn(2) case 1: Matrix[i][j] = nil //vuota @@ -92,9 +93,11 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli if elemento.Health<=0 { Matrix[h][w] = nil return + } else { + elemento.Age++ } - if elemento.Age>AgeLimite { + if elemento.Age>Matrix[h][w].AgeMax { Matrix[h][w] = nil return } @@ -116,8 +119,7 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli Matrix[h][w].Health += Matrix[nuovaPosizioneH][nuovaPosizioneW].Health //prelevamento energia essere fagocitato Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] //inglobamento essere perito Matrix[h][w] = nil - Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov - Matrix[nuovaPosizioneH][nuovaPosizioneW].Age++ + Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= (Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov+(Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione)*5) } else { //perdita nel combattimento per la sopravvivenza Matrix[nuovaPosizioneH][nuovaPosizioneW].Health += Matrix[h][w].Health //il nemico prende l'energia Matrix[h][w] = nil @@ -129,23 +131,26 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli } } else { //si muove sulla nuova casella Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] - Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov - Matrix[nuovaPosizioneH][nuovaPosizioneW].Age++ + Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov+(Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione)*5 Matrix[h][w] = nil if rand.Intn(10) == 0 { //se ha fortuna (o sfortuna) si evolve if rand.Intn(3) == 0 { Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione-- + Matrix[nuovaPosizioneH][nuovaPosizioneW].AgeMax-=5 } else { Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione++ + Matrix[nuovaPosizioneH][nuovaPosizioneW].AgeMax+=10 } } if (Matrix[nuovaPosizioneH][nuovaPosizioneW].Health-(Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura)*10)>Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoSex { //se ha energia a sufficienza per riprodursi - Matrix[h][w] = Costruttore(Matrix[nuovaPosizioneH][nuovaPosizioneW].Razza, Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione, Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov, Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoSex, Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura, SaluteIniziale) + Matrix[h][w] = Costruttore(Matrix[nuovaPosizioneH][nuovaPosizioneW].Razza, Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione, Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov, Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoSex, Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura, SaluteIniziale, AgeMaxInizio) } } + + } func stampaMatrice() { diff --git a/template/tabella.html b/template/tabella.html index 94b3055..355b8b5 100644 --- a/template/tabella.html +++ b/template/tabella.html @@ -13,7 +13,7 @@ {{ else }} class="razza2" {{ end }} - {{ end }}>{{ $cella.Evoluzione }}
{{ $cella.Health }} + {{ end }}>{{ $cella.Evoluzione }}
{{ $cella.Health }}
{{ $cella.Age }}/{{ $cella.AgeMax }} {{ end }} {{ end }}