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 {
|
if elemento.Health<=0 {
|
||||||
Matrix[h][w] = nil
|
Matrix[h][w] = nil
|
||||||
|
return
|
||||||
}
|
}
|
||||||
direzCasOriz := rand.Intn(3) //numero da 0 a 2
|
direzCasOriz := rand.Intn(3) //numero da 0 a 2
|
||||||
direzCasOriz--
|
direzCasOriz--
|
||||||
|
@ -103,18 +104,16 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
tmpNewElem := Matrix[nuovaPosizioneH][nuovaPosizioneW]
|
if Matrix[nuovaPosizioneH][nuovaPosizioneW] != nil {
|
||||||
|
if Matrix[nuovaPosizioneH][nuovaPosizioneW].Razza != Matrix[h][w].Razza { //se non è dalla stessa razza
|
||||||
if tmpNewElem != nil {
|
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
|
||||||
if tmpNewElem.Razza != elemento.Razza { //se non è dalla stessa razza
|
Matrix[h][w].Health += Matrix[nuovaPosizioneH][nuovaPosizioneW].Health //prelevamento energia essere fagocitato
|
||||||
if tmpNewElem.IsFood || (tmpNewElem.Health+tmpNewElem.Evoluzione) < (elemento.Health+elemento.Evoluzione) { // se e' cibo o un insetto piu debole
|
Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w] //inglobamento essere perito
|
||||||
elemento.Health += tmpNewElem.Health //prelevamento energia essere fagocitato
|
Matrix[h][w] = nil
|
||||||
tmpNewElem = elemento //inglobamento essere perito
|
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov
|
||||||
elemento = nil
|
|
||||||
tmpNewElem.Health -= tmpNewElem.CostoMov
|
|
||||||
} else { //perdita nel combattimento per la sopravvivenza
|
} else { //perdita nel combattimento per la sopravvivenza
|
||||||
tmpNewElem.Health += elemento.Health //il nemico prende l'energia
|
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health += Matrix[h][w].Health //il nemico prende l'energia
|
||||||
elemento = nil
|
Matrix[h][w] = nil
|
||||||
}
|
}
|
||||||
} else { //se sono amici
|
} else { //se sono amici
|
||||||
if nuovaPosizioneH == h && nuovaPosizioneW == w { //se cerca di mangiare il suo amico
|
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
|
} else { //si muove sulla nuova casella
|
||||||
tmpNewElem = elemento
|
Matrix[nuovaPosizioneH][nuovaPosizioneW] = Matrix[h][w]
|
||||||
elemento = nil
|
Matrix[nuovaPosizioneH][nuovaPosizioneW].Health -= Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoMov
|
||||||
tmpNewElem.Health -= tmpNewElem.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 {
|
if rand.Intn(3) == 0 {
|
||||||
tmpNewElem.Evoluzione--
|
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione--
|
||||||
} else {
|
} else {
|
||||||
tmpNewElem.Evoluzione++
|
Matrix[nuovaPosizioneH][nuovaPosizioneW].Evoluzione++
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}*/
|
|
||||||
|
|
||||||
if (tmpNewElem.Health-tmpNewElem.Premura)>tmpNewElem.CostoSex { //se ha energia a sufficienza per riprodursi
|
if (Matrix[nuovaPosizioneH][nuovaPosizioneW].Health-Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura)>Matrix[nuovaPosizioneH][nuovaPosizioneW].CostoSex { //se ha energia a sufficienza per riprodursi
|
||||||
//tmpNewElem = Costruttore(elemento.Razza, elemento.Evoluzione, elemento.CostoMov, elemento.CostoSex, elemento.Premura, SaluteIniziale)
|
//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() {
|
func stampaMatrice() {
|
||||||
for i := 0; i < Altezza; i++ {
|
for i := 0; i < Altezza; i++ {
|
||||||
for j := 0; j < Larghezza; j++ {
|
for j := 0; j < Larghezza; j++ {
|
||||||
|
|
Reference in a new issue