Indice del forum Olimpo Informatico
I Forum di Zeus News
Leggi la newsletter gratuita - Attiva il Menu compatto
 
 FAQFAQ   CercaCerca   Lista utentiLista utenti   GruppiGruppi   RegistratiRegistrati 
 ProfiloProfilo   Messaggi privatiMessaggi privati   Log inLog in 

    Newsletter RSS Facebook Twitter Contatti Ricerca
* Aiuto per liste e puntatori...
Nuovo argomento   Rispondi    Indice del forum -> Programmazione
Precedente :: Successivo  
Autore Messaggio
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 12:33    Oggetto: Rispondi citando

Grazie per l'aiuto Crono,

in realtà era la direzione in cui mi ero mosso anch'io, il fatto è, che nel creare cicli di controllo a runtime [for(list<NODO>::iterator it=lst.begin(); it!=lst.end(); it++)] mi fa perdere FPS.

Stò cercando un sistema diverso, vi tengo aggiornati se ci riesco.

Ma se qualkuno vuole esporre idee che ben vengano. Very Happy
Top
Profilo Invia messaggio privato
Crono
Semidio
Semidio


Registrato: 24/03/05 14:12
Messaggi: 224
Residenza: Trieste

MessaggioInviato: 13 Lug 2007 14:25    Oggetto: Rispondi citando

Ho condotto un piccolo test e il seguente codice è risultato un pò più veloce rispetto al ciclo for

Codice:
unsigned int i=0;
list<NODO>::iterator it=lst.begin();
while(i<lst.size()) {
 //codice da eseguire
 i++;
 it++;
}
Top
Profilo Invia messaggio privato
Crono
Semidio
Semidio


Registrato: 24/03/05 14:12
Messaggi: 224
Residenza: Trieste

MessaggioInviato: 13 Lug 2007 14:37    Oggetto: Rispondi citando

Ora mi è venuto in mente che puoi creare una ulteriore lista contenente gli indirizzi dei soli membri attivi e fare il ciclo solo su quest'ultima
Top
Profilo Invia messaggio privato
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 14:46    Oggetto: Rispondi citando

Penso di aver risolto ... guarda e dimmi cosa te ne sembra ...

Codice:

#include <iostream>
#include <cstdlib>
using namespace std;


struct lista {
    int val;
    lista *next;
};

int conta_lista=0; //contatore

 

 
void stampa(lista *p) {
    if(p != NULL) {
          cout << p -> val << ' ';
          stampa(p -> next);
    }
}
 


void inserisci(lista *&p, int x) {
 if(p == NULL) {
      p = new lista;
      p -> val = x;
      p -> next = NULL;
      conta_lista++; //contatore
    }
  else inserisci(p -> next,x);
}


void cancella(lista *&p, int x) {
 if(p != NULL) {
    if(p -> val== x){
          p=NULL;
          conta_lista--; //contatore
     }else{
     cancella(p -> next, x);
      }
}

void main() {
    lista *p = NULL;
    for(int i = 0; i < 10; i++) inserisci(p,i);
stampa(p);
cancella (p,5);
stampa (p);

}
Top
Profilo Invia messaggio privato
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 15:16    Oggetto: Rispondi citando

Mmmmmm non ci siamo .... GRRRRRRRRRRRRRR Very Happy
Top
Profilo Invia messaggio privato
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 15:47    Oggetto: Rispondi citando

OK funziona Ufffff....

Codice:

#include <iostream>
#include <cstdlib>
using namespace std;
 
struct lista {
     int val;
     lista *next;
};
 
void inserisci(lista *&p, int x) {
     if(p == NULL) {
           p = new lista;
           p -> val = x;
           p -> next = NULL;
     }
     else inserisci(p -> next,x);
}
 
void stampa(lista *p) {
     if(p != NULL) {
           cout << p -> val << ' ';
           stampa(p -> next);
     }
}
 
void cancella(lista *&p, int x) {
     if(p != NULL) {
           if(p -> val == x) {
                 p = p -> next;
                 return;
           }
           else cancella(p -> next, x);
     }
}
 
int num_elem(lista *p) {
     if(p == NULL) return 0;
     return 1 + num_elem(p -> next);
}
 
void main() {
     int x;
     int n;
     lista *p = NULL;
 
     for(int i = 0; i < 10; i++) inserisci(p,i);
     n = num_elem(p);
     stampa(p);
     cout <<"\n Elements: " << n;
 
     cout <<"\n x = "; cin >> x;
     cancella(p,x);
     n = num_elem(p);
     stampa(p);
     cout <<"\n Elements: " << n;
 
     cout << '\n'; system("pause");
}
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11568
Residenza: Tokelau

MessaggioInviato: 13 Lug 2007 15:56    Oggetto: Rispondi citando

Diegs ha scritto:
Certo che ti dico tutto e con vero piacere ...


fantastico... mi ci butto a capofitto Smile grazie Very Happy
Top
Profilo Invia messaggio privato HomePage
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 16:11    Oggetto: Rispondi citando

Se hai bisogno non esitare a chiedere ... Very Happy

Per iniziare ti consiglio un buon sito dove trovare sprite:

http://sdb.drshnaps.com/index.htm

Se ti interessano alte Info su altri engine 2D/3D chiedi pure. ^_^
Top
Profilo Invia messaggio privato
SverX
Supervisor Macchinisti
Supervisor Macchinisti


Registrato: 25/03/02 11:16
Messaggi: 11568
Residenza: Tokelau

MessaggioInviato: 13 Lug 2007 16:14    Oggetto: Rispondi citando

Diegs ha scritto:
Se hai bisogno non esitare a chiedere ...


ah non sai in che guaio rischi di metterti... Wink

Diegs ha scritto:
Per iniziare ti consiglio un buon sito dove trovare sprite


...credo invece che sentirò i miei storici collaboratori e vediamo che ne dicono Wink
Top
Profilo Invia messaggio privato HomePage
Diegs
Mortale devoto
Mortale devoto


Registrato: 12/07/07 12:17
Messaggi: 14

MessaggioInviato: 13 Lug 2007 17:43    Oggetto: Rispondi

Citazione:
ah non sai in che guaio rischi di metterti... Wink


No problem --- No problem ... Very Happy

Cmq il gioco che stò facendo su DS lo avevo fatto in 3D per PC ...

Ma non era un gioco adatto per PC e quindi ci siamo spostati su DS.

Se vuoi dare un occhiata al video del gioco nella versione 3D puoi scaricarlo da:
http://www.torabyte.com/videoreel/sb.rar

okkio che è 65 MB

e poi c'è la recensione apparsa questo mese sul num di TGM in TalentZone se vuoi dare un occhiata:

http://www.torabyte.com/videoreel/recensione.rar

[/quote]
Top
Profilo Invia messaggio privato
Mostra prima i messaggi di:   
Nuovo argomento   Rispondi    Indice del forum -> Programmazione Tutti i fusi orari sono GMT + 1 ora
Pagina 1 di 1

 
Vai a:  
Non puoi inserire nuovi argomenti
Non puoi rispondere a nessun argomento
Non puoi modificare i tuoi messaggi
Non puoi cancellare i tuoi messaggi
Non puoi votare nei sondaggi