Migliorate le variabili in base all'evoluzione

This commit is contained in:
Giorgio Croci 2017-05-26 19:16:18 +02:00
parent 405b24df9e
commit 0e896d1d12
3 changed files with 17 additions and 10 deletions

View file

@ -6,7 +6,8 @@ type Element struct { //struttura che contiene sia cibo sia amebe
IsFood bool //se il contenuto della cella è cibo IsFood bool //se il contenuto della cella è cibo
Health int //la sua vita Health int //la sua vita
Age int //la sua età 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 Evoluzione int //se evolve in positivo avrà un bonus in attacco che viene sommato a Health
CostoMov int //quanta energia spende per muoversi CostoMov int //quanta energia spende per muoversi
CostoSex int //quanto spende per riprodursi 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) 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 := new(Element)
nuovo.IsFood = false nuovo.IsFood = false
nuovo.Health = salute nuovo.Health = salute
@ -27,5 +28,6 @@ func Costruttore(razza int, evoluzione int, costomov int, costosex int, premura
nuovo.CostoMov = costomov nuovo.CostoMov = costomov
nuovo.CostoSex = costosex nuovo.CostoSex = costosex
nuovo.Premura = premura nuovo.Premura = premura
nuovo.AgeMax = agemax
return nuovo return nuovo
} }

19
main.go
View file

@ -17,7 +17,7 @@ var CostoMovIniziale int = 5
var CostoSexIniziale int = 100 var CostoSexIniziale int = 100
var EvoluzioneIniziale int = 0 var EvoluzioneIniziale int = 0
var PremuraIniziale int = 10 var PremuraIniziale int = 10
var AgeLimite int = 30 var AgeMaxInizio int = 30
var Clock uint var Clock uint
var NumClock uint var NumClock uint
@ -50,6 +50,7 @@ func main() { //FUNZIONE MAIN
Matrix[i][j].CostoSex = CostoSexIniziale Matrix[i][j].CostoSex = CostoSexIniziale
Matrix[i][j].Evoluzione = EvoluzioneIniziale Matrix[i][j].Evoluzione = EvoluzioneIniziale
Matrix[i][j].Premura = PremuraIniziale Matrix[i][j].Premura = PremuraIniziale
Matrix[i][j].AgeMax = AgeMaxInizio
Matrix[i][j].Razza = rand.Intn(2) Matrix[i][j].Razza = rand.Intn(2)
case 1: case 1:
Matrix[i][j] = nil //vuota 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 { if elemento.Health<=0 {
Matrix[h][w] = nil Matrix[h][w] = nil
return return
} else {
elemento.Age++
} }
if elemento.Age>AgeLimite { if elemento.Age>Matrix[h][w].AgeMax {
Matrix[h][w] = nil Matrix[h][w] = nil
return 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[h][w].Health += Matrix[nuovaPosizioneH][nuovaPosizioneW].Health //prelevamento energia essere fagocitato
Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] //inglobamento essere perito Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] //inglobamento essere perito
Matrix[h][w] = nil Matrix[h][w] = nil
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= (Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov+(Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione)*5)
Matrix[nuovaPosizioneH][nuovaPosizioneW].Age++
} else { //perdita nel combattimento per la sopravvivenza } else { //perdita nel combattimento per la sopravvivenza
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health += Matrix[h][w].Health //il nemico prende l'energia Matrix[nuovaPosizioneH][nuovaPosizioneW].Health += Matrix[h][w].Health //il nemico prende l'energia
Matrix[h][w] = nil 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 } else { //si muove sulla nuova casella
Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w]
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov+(Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione)*5
Matrix[nuovaPosizioneH][nuovaPosizioneW].Age++
Matrix[h][w] = nil Matrix[h][w] = nil
if rand.Intn(10) == 0 { //se ha fortuna (o sfortuna) si evolve if rand.Intn(10) == 0 { //se ha fortuna (o sfortuna) si evolve
if rand.Intn(3) == 0 { if rand.Intn(3) == 0 {
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione-- Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione--
Matrix[nuovaPosizioneH][nuovaPosizioneW].AgeMax-=5
} else { } else {
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione++ 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 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() { func stampaMatrice() {

View file

@ -13,7 +13,7 @@
{{ else }} {{ else }}
class="razza2" class="razza2"
{{ end }} {{ end }}
{{ end }}>{{ $cella.Evoluzione }} <br> {{ $cella.Health }}</td> {{ end }}>{{ $cella.Evoluzione }} <br> {{ $cella.Health }} <br> {{ $cella.Age }}/{{ $cella.AgeMax }}</td>
{{ end }} {{ end }}
{{ end }} {{ end }}
</tr> </tr>