Siccome sto impazzendo (basta vedere l'ora xD), pensavo di aver chiuso col frammento 1 (infatti ho già iniziato col 2), ma mi sono accorto che la mia implementazione di update_wator non andava bene. Mi son messo a rifarla, ma continua a darmi errore di segmentazione. Penso (non ne sono sicuro, ma dato che tutti i test funzionano tranne l'ultimo) che ci sia un errore nella funzione che ho fatto (non so se semantico/sintattico/concettuale) e non nelle altre. In definitiva la posto qua, se per caso qualcuno notasse ad occhio un errore stupido o sapesse dirmi dove sto sbagliando gliene sarei grato (così da poter continuare con il secondo frammento >_ plan -> nrow; ++i){
for(int j=0; j < pw -> plan -> ncol; ++j){
k = i;
l = j;
// PESCI
if (pw->plan->w[j] == FISH){
// PESCE SI RIPRODUCE
if(fish_rule4 (pw, i, j, &k, &l ) == -1){
return -1;
}
// SI E' RIPRODOTTO
if(k != i || l != j){
pw -> plan -> w[k][l] = FISH;
k = i;
l = j;
}
// PESCE SI MUOVE
if(fish_rule3 (pw, i, j, &k, &l ) == -1){
return -1;
}
// SI E' MOSSO
if(k != i || l != j){
pw -> plan -> w[j] = WATER;
pw -> plan -> w[k][l] = FISH;
}
} else {
// SQUALI
if (pw->plan->w[j] == SHARK){
// SQUALO SI RIPRODUCE E MUORE
int a = shark_rule2 (pw, i, j, &k, &l );
if(a == -1){
return -1;
} else {
// SI E' RIPRODOTTO
if(i != k || j != l){
pw -> plan -> w[k][l] = SHARK;
k = i;
l = j;
}
// E' MORTO
if(a == DEAD){
pw -> plan -> w[j] = WATER;
}
}
// SQUALO MANGIA E SI MUOVE
a = shark_rule1 (pw, i, j, &k, &l );
if(a == -1){
return -1;
}
// HA MANGIATO O SI E' MOSSO
if(i != k || j != l){
pw -> plan -> w[j] = WATER;
pw -> plan -> w[k][l] = SHARK;
}
}
}
}
}
// Aggiorno tempo (chronon) e contatori
pw -> chronon++;
pw -> nf = fish_count(pw -> plan);
pw -> ns = shark_count(pw -> plan);
return 0;
}
[Risolto] Aiuto: update_wator
Torna a “[SOL] Sistemi operativi e laboratorio”
Vai a
- Generale
- ↳ Discussioni
- ↳ Discussions (in english)
- ↳ I rappresentanti rispondono
- ↳ Parliamone
- ↳ Mercatino
- ↳ Tirocini
- ↳ Annunci
- ↳ Announcements (in english)
- ↳ Eventi
- I anno
- ↳ Algebra Lineare
- ↳ Analisi Matematica
- ↳ Fondamenti dell'Informatica
- ↳ Laboratorio I
- ↳ Programmazione e Algoritmica
- II anno
- ↳ Architetture e Sistemi Operativi
- ↳ Calcolo Numerico
- ↳ Calcolo Numerico - Vecchio Ordinamento
- ↳ Laboratorio II
- ↳ Paradigmi di Programmazione
- ↳ Ricerca Operativa
- ↳ Ricerca Operativa - Vecchio Ordinamento
- ↳ Statistica
- ↳ Statistica - Vecchio Ordinamento
- III anno
- ↳ Basi di Dati
- ↳ Basi di Dati - Vecchio Ordinamento
- ↳ Introduzione all'Intelligenza Artificiale
- ↳ Introduzione all'Intelligenza Artificiale - Vecchio Ordinamento
- ↳ Ingegneria del Software
- ↳ Ingegneria del Software - Vecchio Ordinamento
- ↳ Reti e Laboratorio III
- Complementari
- ↳ Algebra
- ↳ Cloud Computing
- ↳ Cloud e Green Computing
- ↳ Computer Grafica
- ↳ Crittografia
- ↳ Elementi di Calcolabilità e Complessità
- ↳ Elementi di Calcolabilità e Complessità - Vecchio Ordinamento
- ↳ Esperienze di programmazione
- ↳ Fisica
- ↳ Fisica - Vecchio Ordinamento
- ↳ Gestione di Reti
- ↳ Green Computing
- ↳ Interazione Uomo-Macchina
- ↳ Laboratorio di Basi di Dati
- ↳ Laboratorio di Web Scraping
- ↳ Sicurezza di Sistemi ICT
- ↳ Sviluppo di Applicazioni Mobili
- ↳ Sviluppo di Applicazioni Web
- ↳ Teoria dell'Informazione
- Vecchio Ordinamento
- ↳ I anno
- ↳ [ALL] Algoritmica e Laboratorio
- ↳ [AM] Analisi matematica
- ↳ [FIS] Fisica
- ↳ [LPP] Logica per la programmazione
- ↳ [MDAL] Matematica discreta e algebra lineare
- ↳ [PRL] Programmazione I e laboratorio
- ↳ II anno
- ↳ [AE] Architettura degli elaboratori
- ↳ [BD] Basi di dati
- ↳ [CPS] Calcolo delle probabilità e statistica
- ↳ [CN] Calcolo numerico
- ↳ [IS] Ingegneria del software
- ↳ [PR2] Programmazione II
- ↳ [RO] Ricerca Operativa
- ↳ [SOL] Sistemi operativi e laboratorio
- ↳ III anno
- ↳ [ECC] Elementi di calcolabili e complessità
- ↳ [PI] Programmazione di interfacce
- ↳ [IIA] Introduzione all'intelligenza artificiale
- ↳ [RCL] Reti di calcolatori e laboratorio
- ↳ Advanced databases
- ↳ Advanced programming
- ↳ Advanced software engineering
- ↳ Algorithm design
- ↳ Algorithm engineering
- ↳ Artificial intelligence fundamentals
- ↳ Bioinformatics
- ↳ Competitive programming and contests
- ↳ Computational mathematics for learning and data analysis
- ↳ Data mining
- ↳ Human language technologies
- ↳ ICT infrastructures
- ↳ ICT risk assessment
- ↳ Information Retrieval
- ↳ Intelligent Systems for pattern recognition
- ↳ Laboratory for innovative software
- ↳ Languages, compilers and interpreters
- ↳ Machine learning
- ↳ Mobile and cyber-physical systems
- ↳ Parallel and distributed systems: paradigms and models
- ↳ Peer to peer systems and blockchains
- ↳ Principles for software composition
- ↳ Smart applications
- ↳ Software validation and verification
- Links
- ↳ HomePage Dipartimento
- ↳ Portale Esami