ragno7719 (Normal User)
Newbie
Messaggi: 6
Iscritto: 10/10/2009
|
Salve mi sto appassionando al C++ ma sono assolutamente alle prime armi. Ecco cosa mi propongo di fare.
Vorrei scrivere un programma che dovrà fare scorrere 100 schermate. Ogni schermata contiene una “V” che dovrebbe rappresentare un volatile, sulla prima riga. Sotto il volatile vi devono essere 6 montagne alte 9 righe, ognuna formata da caratteri “*”.
La successione delle schermate dovrà far si che il volatile si sposti da sinistra a destra ad una velocità di “uno spazio” per ogni schermata. Le montagne rimangono fisse. L’altitudine tra volatile e montagna è indifferente. Unica cosa, assicurarsi che il volatile rimanga sempre sulla prima riga di ogni schermata.
Per fare scorrere le immagini posso far ricorso ad una funzione void systemClearScreen(int resolutionY) e all’istruzione system("sleep 0.1s");.
La prima serve a pulire lo schermo e la seconda fa si che il “film” non scorra troppo velocemente .
La funzione void è la seguente:
void systemClearScreen(int resolutionY){
for(int i = 0; i < resolutionY ; ++i) cout << endl;
}
Mi serve il vostro aiuto ! Non so proprio da dove iniziare !!!
Intuisco che dovrò fare ricorso a qualche for… ma non so come strutture il programma.
Grazie anticipatamente a chiunque voglia darmi una mano!
|
|
ilmettiu (Ex-Member)
Pro
Messaggi: 88
Iscritto: 17/09/2009
|
Beh, per la stampa io farei qualcosa di questo tipo:
Codice sorgente - presumibilmente Delphi |
for(i = 20; i < 50; i++){ --20 spazi da sinistra all'inizio, 50 alla fine clean; for(d = 0; d < i; d++) --Questo scrive i spazi ogni ciclo, in modo che la "V" si sposti write " " write "V" for(f = 0; f < 7; f++) --7 sono gli "A capo" di distanza dalla prima riga alle montagne write "/n" --A capo }
|
Ho scritto in pseudocodice, per farti capire la procedura (che, per inciso, non posso provare, poichè non programmo in C++), a te la conversione dei comandi in qualcosa di utilizzabile. Esempio: Write ==> cout
Ovviamente puoi cambiare i valori 20, 50 e 7 come pare a te, ma... Per le montagne hai già qualcosa? E stai lavorando con una form, su interfaccia grafica, o da riga di comando?
Ultima modifica effettuata da ilmettiu il 10/10/2009 alle 18:46 |
|
lorenzo (Normal User)
Guru
Messaggi: 1178
Iscritto: 15/04/2008
|
adesso, io non vorrei scoraggiarti, è bello che ti stia appassionando al C++ però non ti converrebbe iniziare con qualcosa di semplice come fanno tutti se sono "alle prime armi"?
pian piano i risultati verranno però meglio cominciare dal basso no?
Ultima modifica effettuata da lorenzo il 10/10/2009 alle 19:03 |
|
ragno7719 (Normal User)
Newbie
Messaggi: 6
Iscritto: 10/10/2009
|
Quando ho scritto « alle prime armi » intendevo proprio quello.. qualcosina più di zero!
Infatti per le montagne sto provando semplicemente il comando
cout << “****” << endl;
E anche cosi non ottengo il risultato della foto. In pratica le mie montagne si sovrappongono perché lo schermo non le contiene tutte e 6.
Cerco di andare per tappe, perché ancora ho grandi difficoltà a pensare e quindi a strutturare un programma (anche quelli più semplici). Se riuscissi anche solo a riprodurre il disegno statico della foto sarei contento!
Grazie per la dritta sui for… quasi quasi mi focalizzo prima sul volatile … vediamo di farlo volare!
|
|
ilmettiu (Ex-Member)
Pro
Messaggi: 88
Iscritto: 17/09/2009
|
Probabilmente ti conviene provare prima il volatile, appunto, e ti converrebbe ridurre le montagne
|
|
ragno7719 (Normal User)
Newbie
Messaggi: 6
Iscritto: 10/10/2009
|
hai ragione Lorenzo, infatti da giorni realizzo piccoli programmi per realizzare medie aritmetiche e roba del genere. in media dalle 10 alle 20 righe. Conosco il while, il for il do while, l’if, ecc. in poche parole l’ABC del linguaggio C++. Questo progettino è considerato dal manuale adatto ai principianti del mio livello ed in teoria dovrei avere già le conoscenze basiche per poterlo realizzare. Solo che tra il dire e il fare…
|
|
Matthew (Member)
Expert
Messaggi: 387
Iscritto: 29/01/2007
|
Se avessi le conoscenze base per realizzarlo lo avresti già realizzato.
Visto che non sai da che parte iniziare vuole dire che è troppo difficile...
Dici che da giorni realizzi piccoli programmi?
Scusa se mi viene un po da ridere ma il C++ non si impara in qualche giorno... E' una questione di mesi se non di anni... :-)
Ovviamente per il tuo problema non sono necessari anni di studi, ma qualche giorno di sicuro non basta...
|
|
ilmettiu (Ex-Member)
Pro
Messaggi: 88
Iscritto: 17/09/2009
|
Ma ne sei proprio sicuro? Per questo problema in particolare, bastano (mi pare almeno...) addirittura le mie conoscenze (10 pagine di K&R XD) di C Ansi!! Più o meno siamo lì! Con qualche for il problema è risolto. Avevo un'idea anche per le montagne, in questo caso, ma non ha senso che scriva tutto il codice io. Meglio dare l'input e lasciar fare. Sono d'accordo con la prima parte del tuo post, ma sono convinto che questi livelli siano ancora facilmente raggiungibili, anche con pochi giorni di studio :-)
|
|
ragno7719 (Normal User)
Newbie
Messaggi: 6
Iscritto: 10/10/2009
|
Bravo, è arrivato Matthew, l’uomo saggio!!!!
Ma perché c’è sempre gente che si sente in dovere di giudicare e di sentenziare. Che senso ha il tuo post? Dare una lezione di vita? Ma saranno cavoli miei se intendo affrontare un problema piccolo o grande che sia… questa è, o non è, una comunità dove la gente si può confrontare con le conoscenze altrui e magari cercare aiuto. Servono a questo i forum, o no?
Se l’aiuto me lo puoi dare, grazie, altrimenti della tua lezioncina di morale non so che farne. Hai fatto solo polemica e quindi perso tempo.
Credo di essere stato molto cordiale e sincero nel esporre le mie difficoltà. Ed infatti c’è qui mi è venuto subito in contro (come ilmettiu che ringrazio di cuore). Adesso che dobbiamo fare? Mi devi condannare, perché non mi sarei dovuto permettere, secondo te, di postare una richiesta cosi assurda. Impara ad essere più tollerante.
A proposito, ma tu il problema lo sapresti risolvere? E se si, non avresti fatto una figura migliore dandomi una mano ? Ci avresti guadagnato tutta la mia riconoscenza e la mia stima… e magari davi una mano anche ad altri con lo stesso problema.. non hai capito niente dello spirito di internet.
|
|