Migliorate le variabili in base all'evoluzione
This commit is contained in:
parent
405b24df9e
commit
0e896d1d12
3 changed files with 17 additions and 10 deletions
|
@ -6,6 +6,7 @@ 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à
|
||||||
|
AgeMax int //la sua età massima
|
||||||
Razza int //per distiguere amici da nemici
|
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
|
||||||
|
@ -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
19
main.go
|
@ -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() {
|
||||||
|
|
|
@ -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>
|
||||||
|
|
Reference in a new issue