PDA

Visualizza la versione completa : [C++] Gioco dell'impiccato


rand89
12-02-2010, 22:43
Ciao a tutti!! Bellissimo forum! Spero di trovarmi bene...dato che sono nuovo qui!
Sono uno studente di informatica e sto preparando l'esame di Fondamenti di informatica.
Ho un problema: non riesco a risolvere l'esercizio 1 della traccia d'esame reperibile al seguente link:
https://www.mat.unical.it/informatica/Fondamenti_di_Informatica/areadidattica?action=AttachFile&do=get&target=05-02-2010.doc

In pratica.. è il gioco dell'impiccato:
io assegno un array di char letto da input tramite cin>> e quindi anche la lunghezza dell'array la leggo da input dato che non si può dire genericamente di quante lettere sia formata la parola segreta.
Poi mostro su schermo con cout<< una serie di trattini...(faccio cosi': for(int j=0; j<v[i]; j++) cout<<"_";
(v[i] sarebbe l'array di prima comandato da un suo for con indice i che arriva alla dimensione dell'array stesso...quindi lo scorro col for);
Il secondo giocatore deve inserire una lettera o indovinare la parola intera. Il mio PROBLEMA È: siccome ad ogni lettera indovinata devo mostrarla al posto del relativo trattino... come faccio a fare ciò??

GRAzie in anticipo a chi mi aiuterà!

oregon
12-02-2010, 22:56
Originariamente inviato da rand89
Ciao a tutti!! Bellissimo forum! Spero di trovarmi bene...dato che sono nuovo qui!

Bene .... allora comincia a leggere il regolamento ... (il titolo non va bene ...)


dato che non si può dire genericamente di quante lettere sia formata la parola segreta.

Perchè ?


Poi mostro su schermo con cout<< una serie di trattini...(faccio cosi': for(int j=0; j<v[i]; j++) cout<<"_";

Perchè

j<v[i]

???


Il mio PROBLEMA È: siccome ad ogni lettera indovinata devo mostrarla al posto del relativo trattino... come faccio a fare ciò??


Fai un vettore parallelo con le lettere indovinate ...

rand89
12-02-2010, 23:11
opss........scusatemi!!! ho dimenticato di aggiungere il titolo! ho scritto solo c++ e volevo scrivere PROBLEMA GIOCO IMPICCATO. CHiedo ai moderatori gentilmente di modificare.

Innanzitutto grazie ancora per la tempestiva risposta!

1)Comunque j<v[i] non servirebbe a stampare tanti trattini quante sono le lettere contenute nell'array? altrimenti come posso fare?

2)Dato che la parola segreta può essere formata da 2 lettere come anche da 10...mica posso usare una variabile const! no? Non devo chiedere all'utente di inserire la lunghezza dell'array?

3)Eh...alla soluzione ci arrivo...ma come la metto in pratica? Come faccio a fare un vettore parallelo? CIoè come faccio a indicare la posizione esatta dove si trova la lettera indovinata e sostituirla al trattino?

oregon
13-02-2010, 00:07
Originariamente inviato da rand89
1)Comunque j<v[i] non servirebbe a stampare tanti trattini quante sono le lettere contenute nell'array? altrimenti come posso fare?

No ... scusa ... cosa contiene v[i] ? Perchè confrontare il contatore j con il contenuto di v[i] ? E poi, i quanto vale ?

Semmai dovrai confrontare j con la "lunghezza" di v, ovvero con il numero di caratteri contenuti nel vettore ...


2)Dato che la parola segreta può essere formata da 2 lettere come anche da 10...mica posso usare una variabile const! no? Non devo chiedere all'utente di inserire la lunghezza dell'array?

No ... esiste una funzione per ottenere la lunghezza effettiva della stringa (la strlen).
Ovviamente dovrai impostare un valore massimo di lettere utilizzabili, ma penso che 50 bastino per qualsiasi parola ...

(a parte il fatto che non ho ben compreso perchè utilizzi gli array di char e non le string dato che programmi in C++ ... )


3)Eh...alla soluzione ci arrivo...ma come la metto in pratica? Come faccio a fare un vettore parallelo? CIoè come faccio a indicare la posizione esatta dove si trova la lettera indovinata e sostituirla al trattino?

Crea un secondo vettore oltre a quello della stringa e riempilo con dei trattini ...
Inizia a mostrarci il codice che hai scritto e poi vediamo ...

rand89
13-02-2010, 00:23
Uso gli array di char perchè è un esame di fondamenti di informatica! Cioè..programmazione strutturata...non ad oggetti.
Comunque ora non mi trovo a casa mia... domani vedrò di postare il codice.

Ma se creo un altro array con i trattini... come faccio poi ad "aggiornarlo man mano"? Cioè se la parola è portogallo e l'utente indovina la o dovrei mostrare tutte le o contenuto nella parola... _o _ _o_ _ _ _o
Questo non ho idea di come posso farlo...

c_junior
13-02-2010, 00:28
Originariamente inviato da rand89
Uso gli array di char perchè è un esame di fondamenti di informatica! Cioè..programmazione strutturata...non ad oggetti.
però sul testo che hai linkato c'è scritto:

Si scriva in C++ un programma completo quindi potenzialmente anche se usi le std::string andrebbe bene!

oregon
13-02-2010, 00:51
Originariamente inviato da rand89
Uso gli array di char perchè è un esame di fondamenti di informatica! Cioè..programmazione strutturata...non ad oggetti.

E perchè utilizzi l'oggetto

cout

allora ?


Ma se creo un altro array con i trattini... come faccio poi ad "aggiornarlo man mano"? Cioè se la parola è portogallo e l'utente indovina la o dovrei mostrare tutte le o contenuto nella parola... _o _ _o_ _ _ _o
Questo non ho idea di come posso farlo...

Con un ciclo for esamini gli elementi del primo vettore con i corrispondenti della parola inserita e aggiorni i corrispondenti elementi del vettore "risultato" ...

Loading