Funge in parte
This commit is contained in:
parent
c19a47c592
commit
c2ccb780dd
1 changed files with 19 additions and 36 deletions
55
main.go
55
main.go
|
@ -90,6 +90,7 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
|
|||
|
||||
if elemento.Health<=0 {
|
||||
Matrix[h][w] = nil
|
||||
return
|
||||
}
|
||||
direzCasOriz := rand.Intn(3) //numero da 0 a 2
|
||||
direzCasOriz--
|
||||
|
@ -103,18 +104,16 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
|
|||
return
|
||||
}
|
||||
|
||||
tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]
|
||||
|
||||
if 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
|
||||
tmpNewElem = elemento //inglobamento essere perito
|
||||
elemento = nil
|
||||
tmpNewElem.Health -= tmpNewElem.CostoMov
|
||||
if Matrix[nuovaPosizioneH][nuovaPosizioneW] != nil {
|
||||
if Matrix[nuovaPosizioneH][nuovaPosizioneW].Razza != Matrix[h][w].Razza { //se non è dalla stessa razza
|
||||
if Matrix[nuovaPosizioneH][nuovaPosizioneW].IsFood || (Matrix[nuovaPosizioneH][nuovaPosizioneW].Health+Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione) < (Matrix[h][w].Health+elemento.Evoluzione) { // se e' cibo o un insetto piu debole
|
||||
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
|
||||
} else { //perdita nel combattimento per la sopravvivenza
|
||||
tmpNewElem.Health += elemento.Health //il nemico prende l'energia
|
||||
elemento = nil
|
||||
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health += Matrix[h][w].Health //il nemico prende l'energia
|
||||
Matrix[h][w] = nil
|
||||
}
|
||||
} else { //se sono amici
|
||||
if nuovaPosizioneH == h && nuovaPosizioneW == w { //se cerca di mangiare il suo amico
|
||||
|
@ -122,41 +121,25 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
|
|||
}
|
||||
}
|
||||
} else { //si muove sulla nuova casella
|
||||
tmpNewElem = elemento
|
||||
elemento = nil
|
||||
tmpNewElem.Health -= tmpNewElem.CostoMov
|
||||
Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w]
|
||||
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov
|
||||
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 {
|
||||
tmpNewElem.Evoluzione--
|
||||
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione--
|
||||
} else {
|
||||
tmpNewElem.Evoluzione++
|
||||
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione++
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
if (tmpNewElem.Health-tmpNewElem.Premura)>tmpNewElem.CostoSex { //se ha energia a sufficienza per riprodursi
|
||||
//tmpNewElem = Costruttore(elemento.Razza, elemento.Evoluzione, elemento.CostoMov, elemento.CostoSex, elemento.Premura, SaluteIniziale)
|
||||
if (Matrix[nuovaPosizioneH][nuovaPosizioneW].Health-Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura)>Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoSex { //se ha energia a sufficienza per riprodursi
|
||||
//Matrix[nuovaPosizioneH][nuovaPosizioneW] = Costruttore(Matrix[h][w].Razza, Matrix[h][w].Evoluzione, Matrix[h][w].CostoMov, Matrix[h][w].CostoSex, Matrix[h][w].Premura, SaluteIniziale)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
/*func stampaMatrice2() {
|
||||
for i := 0; i < Altezza; i++ {
|
||||
fmt.Printf("Riga %d:\n", i)
|
||||
for j := 0; j < Larghezza; j++ {
|
||||
var stringa string
|
||||
elem := Matrix[i][j]
|
||||
if elem == nil {
|
||||
stringa = "Vuota"
|
||||
} else {
|
||||
stringa = elem.String()
|
||||
}
|
||||
fmt.Printf(" Colonna %d: %s\n", j, stringa)
|
||||
}
|
||||
}
|
||||
}*/
|
||||
|
||||
func stampaMatrice() {
|
||||
for i := 0; i < Altezza; i++ {
|
||||
for j := 0; j < Larghezza; j++ {
|
||||
|
|
Reference in a new issue