Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Un
Forum - C/C++ - Un "film' in C++! Aiuto

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
ragno7719 (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/10/2009

Segnala al moderatore
Postato alle 16:49
Sabato, 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!


ragno7719 ha allegato un file: ImmagineV.JPG (30956 bytes)
Clicca qui per guardare l'immagine
PM Quote
Avatar
ilmettiu (Ex-Member)
Pro


Messaggi: 88
Iscritto: 17/09/2009

Segnala al moderatore
Postato alle 18:44
Sabato, 10/10/2009
Beh, per la stampa io farei qualcosa di questo tipo:

Codice sorgente - presumibilmente Delphi

  1. for(i = 20; i < 50; i++){ --20 spazi da sinistra all'inizio, 50 alla fine
  2.   clean;
  3.  
  4.   for(d = 0; d < i; d++)  --Questo scrive i spazi ogni ciclo, in modo che la "V" si sposti
  5.     write " "
  6.  
  7.   write "V"
  8.  
  9.   for(f = 0; f < 7; f++)  --7 sono gli "A capo" di distanza dalla prima riga alle montagne
  10.     write "/n" --A capo
  11. }



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
PM Quote
Avatar
lorenzo (Normal User)
Guru


Messaggi: 1178
Iscritto: 15/04/2008

Segnala al moderatore
Postato alle 19:03
Sabato, 10/10/2009
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
PM Quote
Avatar
ragno7719 (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/10/2009

Segnala al moderatore
Postato alle 19:19
Sabato, 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!

PM Quote
Avatar
ilmettiu (Ex-Member)
Pro


Messaggi: 88
Iscritto: 17/09/2009

Segnala al moderatore
Postato alle 19:21
Sabato, 10/10/2009
Probabilmente ti conviene provare prima il volatile, appunto, e ti converrebbe ridurre le montagne :)

PM Quote
Avatar
ragno7719 (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/10/2009

Segnala al moderatore
Postato alle 19:27
Sabato, 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…

PM Quote
Avatar
Matthew (Member)
Expert


Messaggi: 387
Iscritto: 29/01/2007

Segnala al moderatore
Postato alle 22:14
Sabato, 10/10/2009
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:

PM Quote
Avatar
ilmettiu (Ex-Member)
Pro


Messaggi: 88
Iscritto: 17/09/2009

Segnala al moderatore
Postato alle 23:07
Sabato, 10/10/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 :-)

PM Quote
Avatar
ragno7719 (Normal User)
Newbie


Messaggi: 6
Iscritto: 10/10/2009

Segnala al moderatore
Postato alle 23:07
Sabato, 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.

PM Quote
Pagine: [ 1 2 ] Precedente | Prossimo