Vogliamo fare rimbalzare un carattere sullo schermo... usiamo una struttura che ne contenga i dati! Molto più semplice, no?
#include <iostream>
#include "semigraf.h"
using namespace std;
struct Punto {
char carattere; // Il carattere da fare rimbalzare
int colore; // Il colore del carattere
int x; // La posizione x sullo schermo
int y; // La posizione y sullo schermo
int velX; // La velocità sull'asse x a cui sta viaggiando
int velY; // La velocità sull'asse y a cui sta viaggiando
Punto() { // imposto i valori inziali
carattere = '>';
colore = 3; // Colore iniziale
x = 1; // posizione iniziale x
y = 1; // posizione iniziale y
velX = 1; // è fermo all'inizio, velocità X = 0
velY = 1; // è fermo all'inizio, velocità Y = 0
}
};
// Stampa la pallina nella posizione corrente
void stampaPunto(Punto p) {
gotoxy(p.x, p.y);
setcolor(p.colore);
cout << p.carattere;
}
// Cancella la pallina nella posizione corrente
void cancellaPunto(Punto p) {
gotoxy(p.x, p.y);
cout << " ";
}
int main() {
Punto pallina; // Il punto p ha già i valori impostati nel costruttore
setcursor(_NOCURSOR); // Nascondo il cursore
for (int i=0; i<20; i++) {
stampaPunto(pallina);
delay(125);
cancellaPunto(pallina);
// Aggiorno x e y in base alla velocità
pallina.x = pallina.x + pallina.velX;
pallina.y = pallina.y + pallina.velY;
}
}
Il codice precedente muove una pallina a in diagonale in basso a destra partendo da 1,1.
Quindi carica su moodle un il programma realizzato.
Maggiori informazioni su cplusplus
Buon lavoro!