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: 2763
Iscritto: 21/09/2007

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


Ingegnere Informatico
https://ldlagency.it
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!!


Computer Science
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.....


"There's no point in being exact about something if you don't even know what you're talking about."

JOHN VON NEUMANN


Siamo italiani NO??
Allora scriviamo in ITALIANO!!!!
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


Computer Science
PM Quote