Si ferma in automatico

This commit is contained in:
Davide999 2017-05-27 03:21:11 +02:00
parent 9ff35975c1
commit 57ef243408

54
main.go
View file

@ -15,18 +15,19 @@ var Altezza int
var Larghezza int var Larghezza int
var SaluteIniziale int = 50 var SaluteIniziale int = 50
var CostoMovIniziale int = 5 var CostoMovIniziale int = 5
var CostoSexIniziale int = 40 var CostoSexIniziale int = 50
var EvoluzioneIniziale int = 0 var EvoluzioneIniziale int = 0
var PremuraIniziale int = 10 var PremuraIniziale int = 10
var AgeMaxInizio int = 30 var AgeMaxInizio int = 30
var Clock uint var Clock uint
var NumClock uint var NumClock uint
var LivelloSblocco int = 1 var LivelloSblocco int = 2
var Possibilita int = 5 var Possibilita int = 5
var ValoreNutrizionale int =15 var ValoreNutrizionale int =10
var ValoreNutrizionaleCarcassa int =10 var ValoreNutrizionaleCarcassa int =5
var ZonaCiboX int var Supestiti bool=true
var ZonaCiboY int //var ZonaCiboX int
//var ZonaCiboY int
func main() { //FUNZIONE MAIN func main() { //FUNZIONE MAIN
Clock = 1 Clock = 1
@ -56,13 +57,13 @@ func main() { //FUNZIONE MAIN
fmt.Scan(&SaluteIniziale) fmt.Scan(&SaluteIniziale)
fmt.Println("Inserisci il costo di uno spostamento iniziale (riduce l'energia ad ogni movimento) [default = 5]: ") fmt.Println("Inserisci il costo di uno spostamento iniziale (riduce l'energia ad ogni movimento) [default = 5]: ")
fmt.Scan(&CostoMovIniziale) fmt.Scan(&CostoMovIniziale)
fmt.Println("Inserisci il costo di una riproduzione iniziale (riduce l'energia ad ogni riproduzione) [default = 40]: ") fmt.Println("Inserisci il costo di una riproduzione iniziale (riduce l'energia ad ogni riproduzione) [default = 50]: ")
fmt.Scan(&CostoSexIniziale) fmt.Scan(&CostoSexIniziale)
fmt.Println("Inserisci i secondi di vita massimi (limita la durata della vita) [default = 30]: ") fmt.Println("Inserisci i secondi di vita massimi (limita la durata della vita) [default = 30]: ")
fmt.Scan(&AgeMaxInizio) fmt.Scan(&AgeMaxInizio)
fmt.Println("Inserisci il valore nutrizionale del cibo (di quanto aumenta l'energia di chi lo mangia) [default = 15]: ") fmt.Println("Inserisci il valore nutrizionale del cibo (di quanto aumenta l'energia di chi lo mangia) [default = 10]: ")
fmt.Scan(&ValoreNutrizionale) fmt.Scan(&ValoreNutrizionale)
fmt.Println("Inserisci il valore nutrizionale delle carcasse (di quanto aumenta l'energia di chi lo mangia) [default = 10]: ") fmt.Println("Inserisci il valore nutrizionale delle carcasse (di quanto aumenta l'energia di chi lo mangia) [default = 5]: ")
fmt.Scan(&ValoreNutrizionaleCarcassa) fmt.Scan(&ValoreNutrizionaleCarcassa)
fmt.Println("Inserisci il grado di evoluzione iniziale (se maggiore di zero migliora le prestazioni vitali)[default = 0]: ") fmt.Println("Inserisci il grado di evoluzione iniziale (se maggiore di zero migliora le prestazioni vitali)[default = 0]: ")
fmt.Scan(&EvoluzioneIniziale) fmt.Scan(&EvoluzioneIniziale)
@ -106,14 +107,17 @@ func main() { //FUNZIONE MAIN
go ServiHTML() // fai partire il server html go ServiHTML() // fai partire il server html
fmt.Println("Situazione iniziale: ") fmt.Println("Situazione iniziale: ")
for Supestiti{
aggiorna() aggiorna()
rimasti()
}
aggiorna()
} }
func aggiorna() { //FUNZIONE AGGIORNA: chiama la funzione muovi func aggiorna() { //FUNZIONE AGGIORNA: chiama la funzione muovi
for {
time.Sleep(time.Second * time.Duration(Clock)) time.Sleep(time.Second * time.Duration(Clock))
NumClock++ NumClock++
for i := 0; i < Altezza; i++ { for i := 0; i < Altezza; i++ {
@ -124,9 +128,8 @@ func aggiorna() { //FUNZIONE AGGIORNA: chiama la funzione muovi
fmt.Printf("\nSituazione dopo %d movimenti:\n", NumClock) fmt.Printf("\nSituazione dopo %d movimenti:\n", NumClock)
stampaMatrice() stampaMatrice()
giraMatrice() //giraMatrice()
}
} }
func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli oggetti in tabella // h verticale, w orizzontale func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli oggetti in tabella // h verticale, w orizzontale
@ -206,9 +209,9 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
} }
if !trovato { if !trovato {
direzCasVert = rand.Intn(3) direzCasVert = rand.Intn(2)
direzCasVert-- direzCasVert--
direzCasOriz = rand.Intn(3) direzCasOriz = rand.Intn(2)
direzCasOriz-- direzCasOriz--
} }
nuovaPosizioneH := h + direzCasVert //aggiornamento posizione verticale nuovaPosizioneH := h + direzCasVert //aggiornamento posizione verticale
@ -254,15 +257,28 @@ func muovi(h int, w int) { //FUNZIONE MUOVI: aggiorna la posizione di tutti gli
} }
} }
if (Matrix[nuovaPosizioneH][nuovaPosizioneW].Health-(Matrix[nuovaPosizioneH][nuovaPosizioneW].Premura)*5)>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, AgeMaxInizio) 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 rimasti(){
var i int
var j int
Supestiti=false
for i=0;i<Altezza; i++{
for j=0; j<Larghezza;j++{
if Matrix[i][j]!=nil{
if !Matrix[i][j].IsFood{
Supestiti=true
}
}
}
}
}
/*
func giraMatrice(){ func giraMatrice(){
var conta int=0 var conta int=0
var contaMax int=0 var contaMax int=0
@ -325,7 +341,7 @@ func giraMatrice(){
} }
fmt.Printf("%d %d %d",contaMax,ZonaCiboX,ZonaCiboY) fmt.Printf("%d %d %d",contaMax,ZonaCiboX,ZonaCiboY)
} }
*/
func stampaMatrice() { func stampaMatrice() {