Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare
Mova Z70 Ultra Complete è un robot aspirapolvere che coniuga un'aspirazione potente e un lavaggio con rullo a logica di intelligenza artificiale che guida al meglio nella pulizia di casa: rulli e spazzole estensibili a pulire gli angoli e una base di ricarica che lava e ripristina il robot al emglio delle sue funzionalità dopo ogni azione di pulizia
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre
Abbiamo provato Google Pixel 11, il più accessibile della nuova gamma: chip Tensor G6 condiviso con i modelli Pro, fotocamera 48 MP con Magic Capture e Stili Fotografici, display Actua da 3000 nit e batteria da 4985 mAh. Ecco come si comporta nell'uso quotidiano, e cosa cambia davvero rispetto a Pixel 11 Pro e Pro XL
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship
Google Pixel 11 Pro XL debutta in Italia con il nuovo Tensor G6, lo Zoom Pro fino a 120x, il display Super Actua da 3600 nit e la new entry HiLight riservata ai modelli Pro: lo abbiamo provato in anteprima per diversi giorni prima del lancio commerciale, tra fotocamera generativa, ricarica ancora indietro rispetto ai rivali e un prezzo che parte da 1399 euro
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 15-02-2005, 17:06   #1
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
[c++] Non trovo l'errore

Sono alcuni giorni che tento di far funzionare questo programma ma non riesco proprio a capire quale possa essere il problema.
Tutto funziona ma dopo aver fatto le prime istruzioni si blocca e sono costretto a riavviare il pc perchè i tasti non funzionano più.
Riporto solo la parte di codice strettamente legata all'errore, tutte le funzioni usate sono corrette al di fuori dell'IA dove sembra che il programma si blocchi come se non riuscisse ad uscire da un ciclo, anche i comandi disegna sono parte di un motore grafico e fuinzionano bene.
Quello che non capisco è come faccia a crearsi un errore dopo aver chiamato la funzione IA (se non la chiamo il programma funziona) che non fa altro che fare calcoli matematici che al massimo potrebbero generare risultati non corretti e disegnare una immagine in un punto sbagliato dello schermo.


[...]

Codice:
//questa funzione è contenuta in un while che viene ripetuto //all'infinito fino alla pressione di esc

void gestione_eventi(){

     disegna(sfondo, 0, 0);
     disegna(scacchiera, 100, 100);           
     conquiste_giocatore();
     disegna(giocatore, coord_xg, coord_yg, 40, 40, 0, 0);
     disegna(pc, coord_xp, coord_yp, 40, 40, 0, 0);
     scegli_mossa();
     if(turno==0)
     {
           if (i==0)
           {
                 imput_tastiera();
           }
     fine_turno();     //imposta turno=1
     }
     if(turno==1)
     {
          turno=0;
           IA();     
     }
}

[...]

////////////////////////////////////////////////////////////////////////////////
////////////////////////*INTELLIGENZAARTIFICIALE*///////////////////
void IA()
{     
//Fase I INTELLIGENZA ARTIFICIALE
//Calcolo qual'è la casella più vicina da conquistare per il pc
     for(k=1;k<11;k++)
     {
               dc[k]=caselle_da_conquistare[k]/10;
               uc[k]=caselle_da_conquistare[k]-(dc[k]*10);
      }
       dp=pos/10;
       up=pos-(dp*10);
          
//ciclo per il riempimento del vettore distanza          
       for(k=1;k<11;k++)
       {
             if(dc[k]>=dp){distanza[k]=dc[k]-dp;}
                                   else
                                  {distanza[k]=dp-dc[k];}
              if(uc[k]>=up){distanza[k]=distanza[k]+(uc[k]-up);}
                                  else
                                  {distanza[k]=distanza[k]+(dp-dc[k]);}
       }          
//Ora ho 2 vettori di uguale dimensione, uno con tutte le caselle da conquistare
//ed uno con le distanze dalla posizione attuale
     
         minimo=distanza[1];
         obiettivo=1;
         for(k=1;k<11;k++)
         {
              if(distanza[k]<minimo){obiettivo=k;minimo=distanza[k];}                            
         }
         //Obiettivo adesso contiene l'indice della casella che il pc
         //deve tentare di conquistare al momento
      
// CICLI DI CONTROLLO IA      
         if(dc[obiettivo]<dp)
         {
              coord_yp=coord_yp-60;
         }
          if(dc[obiettivo]>dp)
         {
              coord_yp=coord_yp+60;
         }
          if(uc[obiettivo]<up)
         {
              coord_xp=coord_xp-60;
         }
          if(uc[obiettivo]>up)
         {
              coord_xp=coord_xp+60;
         }
         Sleep(150);
         disegna(pc, coord_xp, coord_yp, 40, 40, 0, 0);
         
         
}

Ultima modifica di -Ivan- : 16-02-2005 alle 17:24.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 17:20   #2
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
1) codice non indentato
2) non ti sembra un pò impossibile se non è un errore sintattico capire l'errore basandosi su un pezzo di un programma che non si sa neppure che fa?

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 17:26   #3
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Il codice non è indentato perchè l'ho copiato male.
L'errore secondo le prove che ho fatto dovrebbe essere in una condizione dei cicli nella funzione IA quindi non serve sapere cosa fa il programma.
Vi chiedo solo di dare un'occhiata alle condizioni perchè magari ci può essere un errore banale che mi sfugge in una delle condizioni.
Dalle ultime prove che ho fatto sembra bloccarsi in uno dei 2 cicli for dell'IA.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 17:30   #4
Fenomeno85
Senior Member
 
L'Avatar di Fenomeno85
 
Iscritto dal: Jun 2002
Città: Provincia De VaRéSe ~ § ~ Lat.: 45° 51' 7" N Long.: 8° 50' 21" E ~§~ Magica Inter ~ § ~ Detto: A Chi Più Amiamo Meno Dire Sappiamo ~ § ~ ~ § ~ Hobby: Divertimento allo Stato Puro ~ § ~ ~ § ~ You Must Go Out ~ § ~
Messaggi: 8897
ok indenta sto codice e poi ne parliamo

~§~ Sempre E Solo Lei ~§~
__________________
Meglio essere protagonisti della propria tragedia che spettatori della propria vita
Si dovrebbe pensare più a far bene che a stare bene: e così si finirebbe anche a star meglio.
Non preoccuparti solo di essere migliore dei tuoi contemporanei o dei tuoi predecessori.Cerca solo di essere migliore di te stesso
Fenomeno85 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 18:46   #5
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Non mi viene indentato qua non so perchè, quando clicco su modifica per andare a modificarlo lo vedo indentato ma qua no.
Mi sa che è perchè è indentato con i tab.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 20:15   #6
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
devi racchiudere il codice tra i tag CODE e /CODE chiusi tra parentesi quadri affinche resti l'indentazione
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 15-02-2005, 23:07   #7
Corponi
Member
 
Iscritto dal: Aug 2004
Città: Vattelapesca
Messaggi: 45
ti posso chiedere che gioco è che stai tentando di realizzare?
magari quando hai finito me lo passi

hai provato con un buon debugger? dovresti riuscire ad eseguire un passo alla volta la procedura fino a vedere il punto nel quale il cidlo si blocca no? Un bel breakpoint al primo ciclo e testi, se funziona passi a quello successivo...

La mia è solo un' idea eh, non vorrei dare l'idea di saperla lunga. Piu che altro vorrei imparare qualcosa, sono un po' gnubbo in materia.
Corponi è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 17:23   #8
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Sto tentando di fare un gioco su una scacchiera in cui bisogna conquistare alcune caselle, è il mio progetto che presenterò all'esame di stato.
Con il debug sono riuscito a capire che si blocca nei for, anche se non ho capito se il primo o il secondo, adesso cerco di capire quale è dei 2, la cosa che mi sembra strana è che non in quei 2 cicli non viene fatto niente che potrebbe bloccare in modo così drastico il programma in quanto le variabili usate in quella parte di programma non vengono usate da nessuna altra parte e non faccio altro che fare un paio di operazioni matematiche che nel peggiore dei casi mi dovrebbero solo dare risultati sbagliati.

ps: se vuoi potrai farmi da beta tester
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 17:34   #9
anx721
Senior Member
 
L'Avatar di anx721
 
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
Quote:
Originariamente inviato da -Ivan-
Sto tentando di fare un gioco su una scacchiera in cui bisogna conquistare alcune caselle, è il mio progetto che presenterò all'esame di stato.

esame di stato per cosa?
__________________
Sun Certified Java Programmer
EUCIP Core Level Certified

European Certification of Informatics Professionals
anx721 è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 17:37   #10
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Quote:
Originariamente inviato da anx721
esame di stato per cosa?
ITIS specializzazione informatica.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 17:45   #11
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Come posso vedere le variabili cosa contengono in modalità grafica?
Il debug del dev c++ non mi sta aiutando granchè.
Come posso fare il corrispettivo del cout o della printf in ambiente grafico?
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 18:07   #12
Corponi
Member
 
Iscritto dal: Aug 2004
Città: Vattelapesca
Messaggi: 45
io all'esame peril liceo l'anno scorso, volevo portare un programma di simulazione di vita artificiale...

poi mi han tolto informatica dalla commissione
non me ne son fatto + nulla. sigh! Erano altri 5 punti sicuri all'orale.

adesso faccio informatica pura all'uni e mi sto stracciando le palle a sentire gente che mi spiega cose che gia so...
almeno adesso invece di farle in pascal le faccio in c++

se mi passi tutta la roba potrei provare a darci un occhiata perche così l'errore non son riuscito a trovarlo.
Che compilatore usi?
Corponi è offline   Rispondi citando il messaggio o parte di esso
Old 16-02-2005, 18:26   #13
-Ivan-
Senior Member
 
L'Avatar di -Ivan-
 
Iscritto dal: Mar 2003
Città: Rimini
Messaggi: 1846
Quote:
Originariamente inviato da Corponi
io all'esame peril liceo l'anno scorso, volevo portare un programma di simulazione di vita artificiale...

poi mi han tolto informatica dalla commissione
non me ne son fatto + nulla. sigh! Erano altri 5 punti sicuri all'orale.

adesso faccio informatica pura all'uni e mi sto stracciando le palle a sentire gente che mi spiega cose che gia so...
almeno adesso invece di farle in pascal le faccio in c++

se mi passi tutta la roba potrei provare a darci un occhiata perche così l'errore non son riuscito a trovarlo.
Che compilatore usi?

Beato te, se io mi straccerò le palle all'università, cosa che dubito inizierò immediatamente a fare un po' di grafica 3d.
Oggi stavo per comprare un manualone su 3d studio max, avevo già iniziato a fare qualcosa ma ora per mancanza di tempo ho dovuto smettere.

per il programma uso il dev c++ ma con l'aggiunta di alcune librerie prese da un sito di programmazione di giochi che uso come motore grafico.
Se ti va di provarlo fammi un fischio da msg [email protected]).
Ho individuato la parte di codice che da problemi, è il secondo ciclo for della funzione IA.
L'ho riscritta senza else ma fa uguale.
Che stress non ne posso più, non vedo possibili errori logici.
-Ivan- è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Mova Z70 Ultra Roller Complete: motore potente, rullo di lavaggio e l'IA a guidare Mova Z70 Ultra Roller Complete: motore potente, ...
Recensione Google Pixel 11: non ha l'HiLight dei Pro, ma è il Pixel più equilibrato di sempre Recensione Google Pixel 11: non ha l'HiLight dei...
Google Pixel 11 Pro XL: fotocamera al top, batteria indietro. Luci e ombre del nuovo flagship Google Pixel 11 Pro XL: fotocamera al top, batte...
Non sai programmare? Ecco cosa si può fare con un LLM e una GeForce RTX 5070 Ti Non sai programmare? Ecco cosa si può far...
Recensione Samsung Galaxy Z Fold8 Ultra: il pieghevole più famoso diventa quasi perfetto Recensione Samsung Galaxy Z Fold8 Ultra: il pieg...
Torna il super doppio sconto sulle e-bik...
Offerte Amazon componenti PC: RTX 5060 T...
Crucial Pro DDR5 da 32GB a 389,99€: perc...
Fable 5, il modello più potente d...
PC all-in-one Lenovo super elegante, per...
Lo Smart TV più venduto su Amazon...
Periferiche gaming in offerta su Amazon:...
L'IA non è una bolla, ma pu&ograv...
Il cinema in salotto: oggi TV Xiaomi QLE...
Passa a ho. Mobile, fino a fine agosto c...
Ai Giochi di Pechino i robot prendono fu...
Arianespace Ariane 6: lanciato il satell...
Starship: la nave Forte ha caricato Ship...
ROCm 10 punta sull'AI agentica: AMD auto...
Meta cambia la privacy degli AI Glasses:...
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: 20:42.


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