Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Problema con il kbhit e il gatch
Forum - C/C++ - Problema con il kbhit e il gatch

Avatar
Giuliano94 (Normal User)
Newbie


Messaggi: 3
Iscritto: 21/12/2010

Segnala al moderatore
Postato alle 23:07
Martedì, 21/12/2010
Salve a tutti sto creando un programmino inutile e senza scopo se non quello di migliorare le mio conoscenze.
Praticamente il programma stampa una sfera che "cammina" verso destra o verso sinistra e l'utente deve premere 'a' per farla andare verso sinistra, e premere 'l' per farla andare verso destra in modo da non farle toccare i bordi.
io ho pensato di usare un getch, ma quando avvio il programma si muove solo la sfera.
Potreste gentilmente farmi vedere dove sbaglio?
Grazie in anticipo.
Ecco il codice:
Codice sorgente - presumibilmente C++

  1. #include <cstdlib>
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <windows.h>
  5.  
  6. using namespace std;
  7.  
  8. int main(int argc, char *argv[])
  9. {
  10.     int pos=10,i=0;                                                                    
  11.     bool destra;                                                                      
  12.     char comando;                                                                        
  13.    
  14. while((pos<19)||(pos>0))
  15. ///Sfera
  16. {for(i=0;i<pos;i=i+1)
  17. cout<<" ";
  18. cout<<"O \r";
  19. ///Comando
  20. kbhit();
  21. if(kbhit()==true)
  22. comando=getch();
  23. ///input comandi DX e SX
  24. if(comando=='a')
  25. destra=false;
  26. if(comando=='l')
  27. destra==true;
  28. if(destra==true)
  29. pos=pos+1;
  30. if(destra==false)
  31. pos=pos-1;
  32. Sleep(100);
  33. }
  34.      system("PAUSE");
  35.     return EXIT_SUCCESS;
  36. }




Ultima modifica effettuata da Giuliano94 il 21/12/2010 alle 23:10
PM Quote
Avatar
HeDo (Founder Member)
Guru^2


Messaggi: 2765
Iscritto: 21/09/2007

Segnala al moderatore
Postato alle 9:07
Mercoledì, 22/12/2010

PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 9:42
Mercoledì, 22/12/2010
Secondo me ti conviene studiarti la funzione gotoxy!! che per queste cose è molto comoda che restituisce le coordinate dello schermo! senza usare quelle var booleane!!

PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 15:26
Mercoledì, 22/12/2010
peccato che esista solo nei compilatori borland.....

PM Quote
Avatar
Giuliano94 (Normal User)
Newbie


Messaggi: 3
Iscritto: 21/12/2010

Segnala al moderatore
Postato alle 15:38
Mercoledì, 22/12/2010
@carmine il mio prof vuole che io usi il kbhit e il gatch ora vedrò come fare =)

PM Quote
Avatar
Giuliano94 (Normal User)
Newbie


Messaggi: 3
Iscritto: 21/12/2010

Segnala al moderatore
Postato alle 15:49
Mercoledì, 22/12/2010
Ragazzi ci sono riuscito!!grazie per la disponibilità.

PM Quote
Avatar
carmine (Member)
Pro


Messaggi: 168
Iscritto: 20/04/2010

Segnala al moderatore
Postato alle 9:58
Giovedì, 23/12/2010
io conosco una procedua grz alle api win che permette di usare la gotoxy anke inltri compilatori:
Codice sorgente - presumibilmente C++

  1. #include <windows.h>
  2. void gotoxy(int x,int y);
  3.  
  4. ....
  5.  
  6.  
  7. void gotoxy(int x,int y)
  8. {
  9.     COORD coor;
  10.     HANDLE hOutput;
  11.     hOutput = GetStdHandle(STD_OUTPUT_HANDLE);
  12.     coor.X = x;
  13.     coor.Y = y;
  14.     SetConsoleCursorPosition(hOutput,coor);
  15. }



questa io la uso in dev c++

cmq io intendevo gotoxy insieme al kbhit() e alla getch()

Ultima modifica effettuata da carmine il 23/12/2010 alle 9:59
PM Quote