Oppure

Loading
10/10/09 14:49
ragno7719
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!
aaa
10/10/09 16:44
ilmettiu
Beh, per la stampa io farei qualcosa di questo tipo:

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 10/10/09 16:46
aaa
10/10/09 17:03
lorenzo
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 10/10/09 17:03
aaa
10/10/09 17:19
ragno7719
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!
aaa
10/10/09 17:21
ilmettiu
Probabilmente ti conviene provare prima il volatile, appunto, e ti converrebbe ridurre le montagne :)
aaa
10/10/09 17:27
ragno7719
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…
aaa
10/10/09 20:14
Matthew
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? :rotfl:
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...:k:
aaa
10/10/09 21:07
ilmettiu
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 :-)
aaa