Si ferma in automatico
This commit is contained in:
parent
9ff35975c1
commit
57ef243408
1 changed files with 35 additions and 19 deletions
54
main.go
54
main.go
|
@ -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() {
|
||||||
|
|
||||||
|
|
Reference in a new issue