Torna indietro   Hardware Upgrade Forum > Software > Programmazione

DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta
DLSS 4.5 introduce Dynamic Multi Frame Generation e MFG 6X, permettendo fino a cinque frame generati per ogni frame renderizzato. I test su Cyberpunk 2077 e 007 First Light mostrano forti incrementi di FPS e riduzione della latenza su RTX 5090 Laptop. Migliorano fluidità, stabilità e qualità visiva.
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere)
Quattro modi di indossarlo, stessa app del Plaud Note Pro e integrazione con il desktop. Il registratore IA da indossare di Plaud eccelle in mobilità, ma resta vincolato all'abbonamento ed è facile da perdere
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro
Xiaomi ha portato Redmi Watch 6 anche sul mercato italiano, puntando su un display AMOLED da 2,07 pollici con picco di luminosità a 2000 nit, frame in alluminio da 9,9mm e un'autonomia dichiarata di 12 giorni. Lo smartwatch gira su HyperOS 3 e integra GPS, Bluetooth 5.4 e oltre 150 sport mode. Il tutto a meno di 100 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 19-07-2010, 13:10   #1
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
[c] labirinto...

salve ragazzi ho un problema con un progetto che consiste nel trovare l'uscita di un labirinto.

ho un entrata sulla "cornice" del labirinto mentre l'uscita puo trovarsi dappertutto tranne che negli "spigoli".

In poche parole mi sono creato una matrice allocata dinamicamente e riempita a random...

il mio "algoritmo" di soluzione pero' ha delle pecche...

1)se l'uscita è circondata da muri(ma non nelle celle adiacenti)come lo gestisco?
2)se dall'entrata all'uscita non esiste un percorso come faccio a far terminare l'algoritmo?
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2010, 14:41   #2
lupoxxx87
Senior Member
 
Iscritto dal: Jul 2009
Città: Varès
Messaggi: 658
lavora con algoritmi di visita su grafi, come quello di dijkstra.
se arrivi all'uscita vuol dire che è raggiungibile, se non ci arrivi vuol dire che sei in uno dei due casi che hai scritto
__________________
Quote:
Originariamente inviato da piccolino Guarda i messaggi
l'html si può considerare benissimo un linguaggio di programmazione web. se vogliamo dirla tutta anche css... è come programmare in c++
lupoxxx87 è offline   Rispondi citando il messaggio o parte di esso
Old 19-07-2010, 15:05   #3
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
grazie lupoxxx87...

altre soluzioni possibili?

io stavo utilizzando il principio della mano destra....

Ultima modifica di mic85rm : 19-07-2010 alle 15:28.
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 20-07-2010, 14:01   #4
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mic85rm Guarda i messaggi
se dall'entrata all'uscita non esiste un percorso come faccio a far terminare l'algoritmo?
Quote:
Originariamente inviato da mic85rm Guarda i messaggi
io stavo utilizzando il pincipio della mano destra...
In tal caso, secondo quell'algoritmo, cito:
Quote:
...nel caso particolare di una sola uscita, l'algoritmo conduce a un vicolo cieco, dal quale si ritorna al punto di partenza semplicemente continuando a seguire la parete prescelta.
Dove con "una sola uscita" intende che è presente solo l'entrata (che è quindi anche l'unica uscita).

In teoria, per ogni uscita che trovi con quet'algoritmo devi dunque verificare che non sia l'entrata. Se c'è solo un'uscita in tutto il labirinto per definizione coincide con l'entrata.
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2010, 12:02   #5
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
mi puoi dare il link con la spiegazione di questo algoritmo...sul mio libro è spiegato in modo sbrigativo...grazie
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2010, 12:27   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
http://tinyurl.com/2bnsrkr
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 04-08-2010, 12:32   #7
banryu79
Senior Member
 
L'Avatar di banryu79
 
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
Quote:
Originariamente inviato da mic85rm Guarda i messaggi
mi puoi dare il link con la spiegazione di questo algoritmo...sul mio libro è spiegato in modo sbrigativo...grazie
A dire il vero ho solo consultato il web: fatalità un link di wikipedia.
Guarda anche questo per altre idee: link, dovrebbe essere abbastanza per implementare un tuo metodo, ciao
__________________

As long as you are basically literate in programming, you should be able to express any logical relationship you understand.
If you don’t understand a logical relationship, you can use the attempt to program it as a means to learn about it.
(Chris Crawford)
banryu79 è offline   Rispondi citando il messaggio o parte di esso
Old 20-08-2010, 20:32   #8
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
ragazzi se vi posto il codice sorgente gli date un occhiata?
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 21:18   #9
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
eccolo...accetto critiche consigli fatevi sotto
Allegati
File Type: zip progetto.zip (4.4 KB, 10 visite)

Ultima modifica di mic85rm : 26-08-2010 alle 13:31.
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 21:44   #10
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
di sicuro ti consiglio di migliorare la leggibilità del codice
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 22:19   #11
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
il codice è indentato..che altro posso fare?
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 23-08-2010, 22:34   #12
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
indentato? :E


Ultima modifica di tuccio` : 26-08-2010 alle 13:54.
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 26-08-2010, 13:31   #13
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
aggiornato...
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2010, 21:09   #14
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
buttateci un occhio e 2 minuti del vostro tempo

se qualcuno è di roma offro caffe' e birra a scelta
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 30-08-2010, 23:56   #15
Opcode
Member
 
L'Avatar di Opcode
 
Iscritto dal: Jun 2010
Città: Asti
Messaggi: 85
Se hai modo di verificare se una dato nodo (zona in cui muovere) è transitabile oppure rappresenta il muro, ovvero zona non transitabile, potresti pensare ad un algoritmo di ricerca, che si scorre tutti i possibili nodi, e trovato quello transitabile procede a trovare quello successivo.

Un esempio è quello proposto da lupo ovvero Dijkstra, altrimenti ti propongo A*
Comunque di questo tipo di algoritmi ne esistono molti, su wikipedia o su google ne trovi sicuramente molti altri.
Opcode è offline   Rispondi citando il messaggio o parte di esso
Old 31-08-2010, 22:33   #16
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
grazie opcode...

ma io chiedevo se potevate dare uno sguardo al mio codice al fine di ripulirlo migliorarlo ecc...
mic85rm è offline   Rispondi citando il messaggio o parte di esso
Old 10-09-2010, 21:57   #17
mic85rm
Senior Member
 
Iscritto dal: Dec 2003
Città: roma
Messaggi: 1629
Codice:
int percorso(char **m,int x,int y,int p_lrig,int p_lcol)
{
 // printf("[%d][%d]",x,y);
 int inizio=0,exit=0;
 int i,j;
 if ((x==0)&&(m[x+1][y]!=SIMBOLO_MURO))
  {
   x++;
   m[x][y]=SIMBOLO_CAMMINO;
   inizio=1;
  }//cerco di capire dove è l'entrata in modo da forzare il primo passo nell'unica direzione possibile
 if ((y==0)&&(m[x][y+1]!=SIMBOLO_MURO))
  {
   y++;
   m[x][y]=SIMBOLO_CAMMINO;
   inizio=2;
  }
 if ((y==p_lcol-1)&&(m[x][y-1]!=SIMBOLO_MURO))
  {
   y--;
   m[x][y]=SIMBOLO_CAMMINO;
   inizio=3;
  }
 if ((x==p_lrig-1)&&(m[x-1][y]!=SIMBOLO_MURO))
  {
   x--;
   m[x][y]=SIMBOLO_CAMMINO;
   inizio=4;
  }
  //getch(); //per controllare se il primo passaggio è ok
    //printf("f[%d]f[%d]-%d",x,y,inizio);
 while((exit==0)&&(!(GetAsyncKeyState(27) < 0))) //mi serve solo per provare a salvare i file
  {
   switch(inizio)
    {
     case 1://da su a giu
          switch(m[x+1][y]){
                            case SIMBOLO_VUOTO:
                                 m[x+1][y]=SIMBOLO_CAMMINO;
                                 x++;
                                 inizio=1;
                                 break;
                            case SIMBOLO_MURO:
                                 inizio=3;
                                 break;
                            case SIMBOLO_CAMMINO:
                                 m[x+1][y]=SIMBOLO_NUOVO;
                                 x++;
                                 inizio=1;
                                 break;
                            case SIMBOLO_USCITA:
                                 printf("Uscita Trovata");
                                 exit=1;
                                 break;
                            case SIMBOLO_NUOVO:
                                 inizio=3;
                                 break;
                            case SIMBOLO_ENTRATA:
                                 inizio=3;
                                 break;     
                            }

     break;
     case 2:
          switch(m[x][y+1]){//da sx a dx
                            case SIMBOLO_VUOTO:m[x][y+1]='*';y++;inizio=2;break;
                            case SIMBOLO_MURO:inizio=1;break;
                            case SIMBOLO_CAMMINO:m[x][y+1]='@';y++;inizio=2;break;
                            case SIMBOLO_USCITA:printf("Uscita Trovata");exit=1;break;
                            case SIMBOLO_NUOVO:inizio=1;break;
                            case SIMBOLO_ENTRATA:
                                 inizio=1;
                                 break;     
                            }
              break;
     case 3:
          switch(m[x][y-1]){//da dx a sx
                            case SIMBOLO_VUOTO:m[x][y-1]='*';y--;inizio=3;break;
                            case SIMBOLO_MURO:inizio=4;break;
                            case SIMBOLO_CAMMINO:m[x][y-1]='@';y--;inizio=3;break;
                            case SIMBOLO_USCITA:printf("Uscita Trovata");exit=1;break;
                            case SIMBOLO_NUOVO:inizio=4;break;
                            case SIMBOLO_ENTRATA:
                                 inizio=4;
                                 break;     
                            }

     break;

                    case 4:   switch(m[x-1][y]){//da giu a su
                            case SIMBOLO_VUOTO:m[x-1][y]='*';x--;inizio=4;break;
                            case SIMBOLO_MURO:inizio=2;break;
                            case SIMBOLO_CAMMINO:
                                 m[x-1][y]='@';
                                 x--;
                                 inizio=4;
                                 break;
                            case SIMBOLO_USCITA:printf("Uscita Trovata");exit=1;break;
                            case SIMBOLO_NUOVO:inizio=2;break;
                            case SIMBOLO_ENTRATA:
                                 inizio=2;
                                 break;     
                            }
     break;



                    case 0:printf("Sei circondato da muri...GameOver");exit=1;break;
                    }
          
mostra_labirinto(m,p_lrig,p_lcol);

system("PAUSE");
                    }
     return 0;
     }

Ultima modifica di mic85rm : 10-09-2010 alle 21:59.
mic85rm è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


DLSS 4.5: con Dynamic Frame Generation e MFG 6X NVIDIA alza la posta DLSS 4.5: con Dynamic Frame Generation e MFG 6X ...
Plaud NotePin S, il registratore IA si fa indossabile (ma è facile da perdere) Plaud NotePin S, il registratore IA si fa indoss...
Redmi Watch 6 in prova: lo smartwatch con ampio display da 2000 nit a meno di 100 euro Redmi Watch 6 in prova: lo smartwatch con ampio ...
Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ADV, ma con molti più pulsanti Mad Catz M.M.O. 7+: lo stesso DNA del R.A.T. 8+ ...
Radeon RX 9070 GRE, AMD la porta in tutto il mondo | Recensione Gigabyte Gaming OC Radeon RX 9070 GRE, AMD la porta in tutto il mon...
Google aggiorna Chrome: chiusa la quinta...
Il presidente è sicuro: "BYD...
La Commissione europea approva un piano ...
Roborock Qrevo Edge 2 a 699,99€: LDS ret...
Una sviluppatrice ottiene l'esenzione pe...
Oltre 340 testate locali bloccano Intern...
Un round di finanziamento da 1 milione p...
Pan-Good ha creato il motore elettrico a...
Lexar avverte: i prezzi della RAM potreb...
Intel come Apple: copia il mondo degli s...
Wolters Kluwer amplia Arca Evolution con...
Microsoft di nuovo violata: 73 repositor...
Amazon salvata in calcio d'angolo: arriv...
Google NotebookLM si aggiorna con Gemini...
4 portatili tuttofare in offerta su Amaz...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 11:32.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Served by www3v