Programmi C / C++ - prof. Claudio Maccherani - Perugia - 2018
'Gioco spostamento'
* 'Gioco_spostamento.cpp - riconoscere i tasti di spostamento Dev-C++ - prof. Claudio Maccherani - Perugia - 2018/19 */ +--------------------------------------------------------------------------+ | Per la gestione dei colori, il posizionamento del cursore (GOTORC) e | | la rilevazione dei tasti premuti occorre utilizzare le API di Windows. | | - #include
| | - HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); | | - SetConsoleTextAttribute (hCon, x) | | dove 'x' è il codice colore (un numero intero compreso tra 0 e 255) | | - goto(R,C) [per posizionare il colore a riga R e colonna C] | | dove 'R' va da 1 a 25 e 'C' va da 1 a 80 | | - GetAsyncKeyState(TASTO) [per rilevare quale tasto è stato premuto] | | - Sleep(TEMPO) [per attendere un TEMPO di millisecondi] | +--------------------------------------------------------------------------+ */ #include
#include
HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE); using namespace std; void gotorc(short r, short c) { COORD pos = {c, r}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), pos); } int R1=3,C1=3,R2=20,C2=77,R,C; char Avatar='#'; int Attesa=100; char Tracciamento='n'; void Disegna_Riquadro() { // disegna il riquadro di spostamento gotorc(R1,C1); cout << "+"; gotorc(R1,C2); cout << "+"; gotorc(R2,C1); cout << "+"; gotorc(R2,C2); cout << "+"; for(int r=R1+1;r
R1+1) { gotorc(R,C); cout<
C1+1) { gotorc(R,C); cout<
- "; cout<<"Spostamento con TRACCIAMENTO [s/n]? "; cin>>Tracciamento; Disegna_Riquadro(); // disegna il riquadro di spostamento R = 11; C = 39; gotorc(R,C); cout << Avatar; // posiziona l'atavar while (GetAsyncKeyState(VK_ESCAPE)==0) { // gioca (sposta l'avatar) if(GetAsyncKeyState(VK_DOWN)) { Spostamento('B'); } if(GetAsyncKeyState(VK_UP)) { Spostamento('A'); } if(GetAsyncKeyState(VK_LEFT)) { Spostamento('S'); } if(GetAsyncKeyState(VK_RIGHT)) { Spostamento('D'); } Sleep(Attesa); // millisecondi di 'attesa' } return 0; }