Ciao GianmariaLari,
benvenuto su questo forum!
GianmariaLari ha scritto:
Orso Bruno ha scritto:
Perchè dici che con le palline che rimbalzano è necessaria la programmazione ad oggetti?
Ti dico la mia opinione (ma sono certo che Barba59 non rimarrà a bocca chiusa....)
Per problemi semplici o semplicissimi si può scrivere un pò come si vuole. Quando però il problema si complica la programmazione ad oggetti è un sistema di organizzare il codice che ha diversi vantaggi.... il codice può essere più semplice da scrivere e da leggere, più facile da manutenere e la relazione fra le entità del problema diventano più chiare. Il discorso ovviamente non si conclude così e potrai ottenere pareri molto diversi se chiedi a persone con esperienze diverse.
Nel caso specifico, quando hai più palline ed affronti il problema con la programmazione orientata agli oggetti, penso che Barba59 vedesse il vantaggio nel fatto che crei un singolo oggetto pallina e lo istanzi tutte le volte che vuoi mantenendo incapsulate tutte le informazioni di ogni singola pallina nella rispettiva istanza. Senza programmazione orientata agli oggetti invece avresti tutto un pò sparpagliato..... Barba59 ho intuito bene?
Hai intuito benissimo! specie sul fatto che non sarei rimasto a bocca chiusa
Sull' importanza della programmazione ad oggetti non si insiterà mai abbastanza!
Muovere una pallina è semplice basta scrivere quattro righe nella funzione del timer. Calcolare come devono rimbalzare delle palline che si scontrano è già più interessante e serve un briciolo di matematica e di fisica.
Poi sai, quando cominci a prenderci gusto fai evolvere il problema, le palline cominceranno ad avere diametri differenti, saranno fatte di materiali diversi per cui le masse saranno diverse, il trasferimento della quantità di moto dipenderà dalla massa ecc. Poi magari un bel giorno mi salti fuori dicendo che ora vuoi farlo in OpenGL e quindi bisogna riscrivere tutto.
Per cui da bravi cominciamo a separare quello che è il modello da quello che è la sua rappresentazione grafica.
Cioè creiamo un mondo di oggetti in cui le sfere si muovono secondo le loro regole, completamente separato da una qualsiasi rappresentazione grafica, si ragionerà solo di posizioni, velocità, masse ecc.
Poi se voi rappresentare questa scena un un form scriverai qualche riga di codice per trasferire questo modello sul canvas, se invece vuoi rappresentare la scena usando le openGL farai lo stesso nel metodo Update, ma le classi che descrivono il modello rimarranno invariate.