Domande (e risposte) sull'HomeWork3




Input

Professore lei ha scritto ke il programma legge in input gli strike e i ball...ma nn dovrebbe dirceli lui come output se abbiamo indovinato o no? Siamo noi ke dobbiamo indovinare, quindi facciamo un programma ke da in automatico i tentativi e li fa vedere, e in automatico le risposte...nn ho capito bene questa cosa

-- Comment added by DavidVulpetti on 07 Nov 2003


Domande su prestazioni e testing

Dopo che il prof. ha svolto in aula l'esercitazione sull'arbitro del mastermind, ho provato subito a implementare la versione indovino, con un algoritmo simile a quello proposto nel Homework3 e con un codice massimo di 4 cifre.

Quindi è bastato cambiare qualche costante per adattare il programma ad un codice di 5 cifre.

Avendo testato il programma su tutte le 99999 combinazioni ho ottenuto un numero medio di 26 tentativi per indovinare il codice.

Volevo quindi sapere dal prof.:

1 - se le prestazioni del programma sono nella norma;

2 - qualche precisazione in più su come intende testare i programmi;

-- Comment added by EmanueleQuattrini on 08 Nov 2003


Credo di non aver capito..

Mi scusi professore, lei nel testo scrive così:


Discussione della strategia. Supponete che siano stati eseguiti già alcuni tentativi, questo separa lo spazio dei codici in due insiemi, i codici che sono in accordo con le proposte precedenti e quelli che non lo sono. Vogliamo proporre solo codici che sono in accordo con tutti i tentativi precedenti.

Credo di non aver capito bene cosa intenda per tentativi precedenti (quando-dove-come) e quando dice 'separa lo spazio dei codici in due insiemi'..forse riguarda qualcosa che ancora non ha spiegato a lezione per il canale P-Z? Lo spero, perchè altrimenti inizio a preoccuparmi, sinceramente non ho capito la logica da implementare..:)

Grazie.

-- Comment added by DaniloRossi on 08 Nov 2003


Strike e Ball

Dato ke siamo noi a dire quanti strike e ball fa un nostro tentativo, il codice per trovare strike e ball del Mastermind nn ci serve?

-- Comment added by DavidVulpetti on 08 Nov 2003


Riformulo la domanda

..in modo più chiaro.

'..i codici che sono in accordo con le proposte precedenti e quelli che non lo sono': sono in accordo rispetto a cosa? Si inizia da 00000 e si memorizza il codice proposto e l'input del giocatore. Dopo di che si esaminano tutti i codici in successione e si confrontano con i codici proposti in precedenza: ma su che base? Non ho capito su cosa si basa il confronto...credo di essermi perso qualcosa :/

P.S. 20 tentativi sono una buona media? Così posso regolarmi per l'algoritmo che stavo implementando per conto mio..

-- Comment added by DaniloRossi on 08 Nov 2003


D'accordo con DaniloRossi

Neanke io ho capito bene cosa dobbiamo fare...allora, innanzitutto printo il valore 00000 e lo memorizzo in un vettore di 5 elementi. Dopo di ke faccio una scanf per le strike e le ball, ma questi 2 numeri ke prendo devo memorizzarli appresso ai 5 zeri di prima? Ovvero faccio un vettore di 7 elementi? Dopo di ke propongo i numeri da 00001 a 99999 e per ogni numero faccio il confronto con il precedente? Cioè...su cosa si basa il confronto? Sugli strike e sui ball? Perkè a questo punto ke memorizzo a fare tutto il tentativo, basta ke memorizzo volta per volta gli strike e i ball...cioè boh...nn ho capito smile

-- Comment added by DavidVulpetti on 08 Nov 2003


Confronto tra codici

Allora vediamo se ho capito...il primo TENTATIVO è 00000, e viene memorizzato tra i TENTATIVI. Prendo strike e ball e memorizzo ank'essi. Dopo di ke comincio ad esaminare tutti i valori da 00001 a 99999 con il TENTATIVO precedente. Quindi nn ad esempio 00004 con 00003, ma solo con i TENTATIVI, ovvero quelli ufficiali ke ho printato. Lì vedo se sono in accordo...ok, ma ke vuol dire sono in accordo? Con cosa? In base a cosa? E' questo ke mi manca.

Altra cosa...se ad esempio sto alla cinquantesima cifra (ovvero 00050) e fino a quel momento ho fatto ufficialmente 4 TENTATIVI, devo confrontare questo 00050 con tutti e 4 i TENTATIVI o solo con l'ultimo? perkè se ogni volta devo confrontare un numero con tutti i tentativi fatti fino a quel momento devo usare una matrice di N (20?) righe e 5 colonne per memorizzare ogni volta un tentativo evitando di perdere quello precedente...

-- Comment added by DavidVulpetti on 08 Nov 2003


era 00049 la cinquantesima cifra...vabe, per precisare smile

-- Comment added by DavidVulpetti on 08 Nov 2003


Finito

Uhm...stavo leggendo e rileggendo l'esercizio quando improvvisamente ho acquisito i superpoteri della programmazione, ho capito quello ke voleva dire il professore e l'ho finito smile P.S: cerki di spiegarlo un po' meglio ke è un po' complicato capire cosa vuole fare in realtà smile Una cosa professore...se provo il numero 30214 lo becco all'undicesimo tentativo e ok. Se provo il numero 43772 lo liscio clamorosamente attorno al diciottesimo tentativo ma poi esco perkè supero i 20 senza prenderlo. Volevo sapere...è giusto ke per qualke numero nn lo si becca, o il suo metodo è INFALLIBILE e quindi ho sbagliato qualcosa?

-- Comment added by DavidVulpetti on 08 Nov 2003


Sono stupido

Sarò stupido ma io non ho capito niente dell'esercizio!

-- Comment added by MatteoLaBella on 09 Nov 2003


Re:Sono stupido

tranq ke anke io all'inizio nn avevo capito niente, poi dal nulla ho avuto l'illuminazione :). Praticamente il discorso è questo: tu devi fare un programma ke ti presenta (quindi dà in output) una serie di tentativi di indovinare il codice segreto, e TU devi pensare il codice e quindi mettere volta per volta gli strike e i ball ke il programma ottiene presentando la sua proposta. Detto questo, devi fare la strategia del professore ke in pratica funge così...prima di tutto fai presentare al programma il tentativo base, ovvero 00000 (con questo i tuoi tentativi SONO GIà 1, dopo il ventesimo il programma deve uscire quindi fatti un contatore). Se il numero ke hai pensato è 00000 gli dai un 5 a strike e hai finito, altrimenti fai la parte piu difficile, ovvero "ti fai un calcolo" di tutti gli altri numeri da 1 (ovvero 00001) a 99999 (dopo 99999 il programma esce anke se nn hai indovinato). Secondo la strategia del professore, per ogni numero da 1 a 99999 devi far calcolare al programma gli strike e i ball (i quali codici sono già belli ke pronti sull'esercizio del Mastermind) e confrontarli ogni volta con quelli dell'ultimo valore UFFICIALMENTE PROPOSTO. Appena il programma trova un valore ke ha gli strike e i ball corrispondenti al tuo ultimo tentativo, devi dirgli di printarlo su skermo e ovviamente aggiornarlo, e di ricevere in input un'altra scanf con i nuovi strike e ball (così si aggiornano anke quest'ultimi). La maggior parte delle volte riesci ad indovinarlo entro 20 tentativi, qualke volta no e il programma esce (spero nn sia un mio errore, il prof deve ancora rispondermi ma credo di no dato ke ha scritto kiaramente ke il progr esce nel caso in cui si superano i 20, quindi...). Spero ke ora ti sia più facile smile

-- Comment added by DavidVulpetti on 09 Nov 2003


...Appena il programma trova un valore ke ha gli strike e i ball corrispondenti al tuo ultimo tentativo, devi dirgli di printarlo su skermo e ovviamente aggiornarlo...

ovviamente intendo dire ke questo nuovo valore DIVENTA LUI STESSO IL NUOVO TENTATIVO UFFICIALE DA PROPORRE, per questo va printato...nn devi printare tutti i numeri da 1 a 99999, ma solo quelli ke hanno gli strike e i ball corrispondenti all' ultimo tentativo ufficiale proposto

-- Comment added by DavidVulpetti on 09 Nov 2003


ANCORA CONSEGNE DI DOMENICA?

Ho appena visto la scadenza del prossimo esercizio,un'altra scadenza di domenica,non tutti hanno la possibilità di avere un collegamento internet a casa e automaticamente ci si ritrova con un giorno e mezzo di lavoraro sul programma in meno rispetto agli altri perchè i laboratori chiudono la mattina del sabato...ci potrebbe essere una soluzione comoda per tutti, che non pregiudichi in ogni caso il tempo che ci concede per progettare prof? Grazie smile

-- Comment added by PierangelaDonapai on 09 Nov 2003


X David Vulpetti

Si ma come fai a capire se i numeri che hai proposto sono validi? Es 12345 mi da 1 strike e 0 ball (il programma mica lo dice in che posizione sono gli strike) come fai ad intuire che su 5 numeri tre sono strike e 2 niente. Forse non ho capito bene il testo.Tu come lo capisci che è strike? Forse perchè fino a quel momento avevi avuto come risposta 0 strike. Visto che la ricerca è sequenziale. Fammi sapere,ciao. smile Un altra cosa che non centra niente con la programmazione sul sito con cui collabori si possono trovare anche soluzioni(gratuite)per la ps2? Fa

-- Comment added by DarioFiorenza on 09 Nov 2003


Re:X David Vulpetti Non ho capito bene cosa vuoi dire...nn è ke devo intuire dov'è ke ci sono strike o ball, io lo so e basta perkè sono io ke penso il numero da indovinare, quindi sono io ke rispondo ai tentativi ke mi propone mano mano il programma e sono io ke do in input gli strike e ball, quindi li so e nn devo intuirli smile . Come fa a capire per ogni codice da 1 a 99999 gli strike e i ball è facile...usi i codici per gli strike e i ball ke ci ha fatto il professore a lezione (e ke trovi qui su twiki) solo ke stavolta li fai in base al vettore codice[] ke contiene il tentativo ufficiale proposto prima, e NON un codice memorizzato all'inizio del programma come per il Mastermind. Un numero è valido per essere proposto quando ha gli stessi strike e ball del tentativo ufficiale proposto in precedenza.

Per quello ke riguarda il sito...soluzioni di come finire un gioco no, per ora solo trucchi e cheats. Non è una decisione mia, ma del capoccia smile . Cmq se vuoi c'è un nuovo posto da redattore di ps2, i distributori c'hanno mandato una valanga di giochi da recensire e siamo pieni, se ti va... smile

-- Comment added by DavidVulpetti on 09 Nov 2003


Vediamo se ho capito..

Allora...la logica sarebbe questa..il programma propone il suo tentativo (il primo sarà 00000, ok), ed io gli dico (inserendoli) quanti strike e quanti ball ha fatto. Ora il computer si fa il calcolo di tutti i numeri da 00001 a 99999, e per ogni combinazione calcola quanti strike e quanti ball ci sono...ma con cosa? Col codice che ha proposto mi pare di aver capito, in questo caso ancora 00000...

Quindi...il programma mi propone un tentativo..io gli rispondo (ad es.) 1 strike e 2 ball...lui si fa il calcolo ed il primo numero in sequenza che rispetto al suo tentativo da 1 strike e 2 ball..viene proposto come tentativo 'ufficiale' e usato per essere confrontato insieme ai risultati che darà con gli altri numeri in sequenza.

E' così? ....che senso ha questa cosa? ^^'

-- Comment added by DaniloRossi on 09 Nov 2003


Ho riletto e riletto il testo, e a quanto c'è scritto il confronto va fatto con TUTTI i tentativi precedenti...quindi in ogni caso così non è corretto. Proverò a farlo anche se nn ho ben capito la logica di questo algoritmo, magari mi si chiariscono le idee.

-- Comment added by DaniloRossi on 09 Nov 2003


Re:Vediamo se ho capito..

Così invece a me sembra corretto smile Sinceramente il senso di questa cosa nn lo conosco neanke io, ma l'ho provato e funziona...in meno di 20 tentativi spesso ti trova il codice (nn sempre). Secondo me il professore ha in un certo senso "sbagliato" a scrivere ke il confronto va fatto con TUTTI i tentativi precedenti...l'ha scritto per farci "riflettere". E' inutile fare un confronto per tutti i tentativi precedenti, ma basta farlo con l'ultimo...pensaci un attimo, se lo fai con tutti quanti i tentativi ufficiali proposti precedentemente nn troverai mai un numero ke ti da la stessa risposta di strike e ball valida per tutti, semplicemente perkè ogni volta ke il programma ti propone un tentativo ufficiale, tu gli dai un ennessimo valore di strike e di ball ke quindi CAMBIA e AGGIORNA quelli vekki. Se ogni volta gli strike e i ball (ovvero le risposte ke tu devi confrontare) cambiano...mi spieghi confrontando tutte quelle di tutti i tentativi ufficiali come può mai esserci un'uguaglianza? smile

-- Comment added by DavidVulpetti on 09 Nov 2003


Un po' di prove

Allora...il numero 30214 viene indovinato all'undicesimo tentativo. Il numero 07589 arrivo al ventesimo e mi trova 4 strike finali. Il numero 27340 viene indovinato proprio al ventesimo tentativo. Il numero 09128 arriva al ventesimo e mi trova 2 strike e 1 ball finali. Il numero 92486 arriva al ventesimo e mi trova 3 strike finali. Se penso il numero 99999, partendo da 00000 metto sempre 0 strike e 0 ball ovviamente e mi esce automaticamente dopo il tentativo 91111. Il numero 39123 arriva al venterimo e mi trova 1 strike e 1 ball finali. Il numero 50491 arriva al ventesimo (lisciando il numero al diciannovesimo) e mi trova 3 strike e 1 ball finali.

Facendo una media ad occhio sono più i valori che nn trova ke quelli ke riesce a trovare smile Ma faccio sempre la stessa domanda..è giusto ke spesso il programma termina dopo i 20 tentativi o deve essere un metodo infallibile? E' giusto ke se provo a indovinare il numero 99999 il programma esce dopo 91111?

-- Comment added by DavidVulpetti on 09 Nov 2003


Tempi di Consegna

Ho appena letto il testo dell'esercizio e ho due considerazioni: 1)non si capisce l'esercizio; 2)considerando che passiamo molte ore all'università (e dobbiamo anche studiare!) una settimana non è abbastanza.

-- Comment added by AlessandroSpinelli on 09 Nov 2003


Capire ciò che scrive

Scusi Prof ma molte volte l'impatto "iniziale" di quando leggo il testo degli esercizi che propone è del tipo:"Ma cosa devo fare in parole povere"??? Pensavo fosse un problema mio,ma dalle considerazioni che leggo sopra non mi pare.Volevo quindi chiederLe se può formulare i testi dei vari esercizi in maniera---+ chiara!Grazie.

-- Comment added by DavidCordella on 10 Nov 2003


Re: Input

Il programma deve indovinare il codice conosciuto da te, quindi propone i codici e tu rispondi gli strike e ball.

Re: Domande su prestazioni e testing

Non ho capito la domanda sulle prestazioni ... il programma deve esaminare 100000 codici e non so quanto tempo ci metta (lo implemento e ve lo dico).

Il test sarà fatto come per l'HomeWork1 e il Forza4, ovvero fornendo in input al programma una successione di coppie strike ball e controllando che i codici proposti siano quelli giusti.

Re: Credo di non aver capito..

I possibili codici di 5 cifre sono i 100000 numeri da 0 a 99999. Quando si popone un tentativo e si ottiene la risposta si ottiene una informazione che permette di eliminare una parte dei possibili codici perchè, confrontati con il tentativo, danno una risposta diversa (ovvero un numero di strike e/o di ball diversi dalla risposta ricevuta per il tentativo). Voi dovete esaminare i numeri nell'ordine da 0 a 99999 e proporre il primo numero che, confrontato con tutti i tentativi già proposti, dà le stesse risposte ricevute dal giocatore umano.

Re: Strike e Ball

Il codice vi serve per confrontare il codice corrente con i tentativi già proposti e controllare se la risposta è la stessa.

Re: Riformulo la domanda

Il confronto è esattamente il codice del MasterMind visto a lezione

20 tentativi sono un limite imposto da me.

-- Comment added by AndreaSterbini on 10 Nov 2003


La penso anch`io cosi`

Non vorrei essere ripetitiva, ma io la penso esattamente come gli altri. Non e` molto chiara la spiegazione e tra l`altro il tempo a disposizione e` veramente poco, sia per chi frequenta l`Universita` e sia per quelli come me che lavorano e studiano. Non si potrebbe fare uno strappo alla regola e fare felici TUTTI!? Grazie!!!

-- Comment added by ClaudiaCorsaletti on 10 Nov 2003


Re: Finito

Il limite di 20 tentativi è imposto da me. Se si lascia libero il numero di tentativi si è certi di trovare il codice, ma non so quale sia il numero massimo di tentativi possibili (ovviamente meno di 100000).

Re: ultimo tentativo ufficiale

ATTENTI che il codice corrente va confrontato con TUTTI i tentativi già proposti e non solo con l'ultimo.

Re: ANCORA CONSEGNE DI DOMENICA?

Appena possibile creo un piccolo poll così mi suggerite il giorno più adatto.

-- Comment added by AndreaSterbini on 10 Nov 2003


Re:ATTENTI

Scusi professore nn ho capito una cosa...io lo faccio confrontare con l'ultimo per un motivo molto semplice. Noi dobbiamo confrontare il numero da 0 a 99999 con gli strike e i ball assegnati ai vari tentativi ufficiali precedenti giusto? ma se ogni volta gli strike e i ball variano..il confronto con tutti gli altri nn darà mai un valore di strike e ball uguale per tutti.. Se per 00000 do 0 strike e 0 ball, per 11111 do 1 strike e 0 ball....il numero successivo cosa deve trovare? Se cerca gli strike e i ball uguali nn li troverà mai, perkè ho per il primo "0 0" e per il secondo "1 0" quindi...

Ha visto le mie prove nel reply più su? sono giuste?

-- Comment added by DavidVulpetti on 10 Nov 2003


Re: Re:Vediamo se ho capito..

Il programma gioca contro di voi, che conoscete un codice segreto.

Per proporre un nuovo tentativo il programma continua a contare (aveva iniziato da 00000 ed era arrivato ad un certo numero) e confronta ciascun numero con tutti i tentativi già proposti.

Il tentativo corrente x va confrontato con ciascuno dei tentativi proposti in precedenza y_i e per ciascuno dei confronti si controlla se il numero di strike s_i e ball b_i calcolati è lo stesso della risposta che è stata data dal giocatore quando il tentativo y_i era stato proposto.

Insomma ... ragionate, il codice da trovare dev'essere un codice che, confrontato con i tentativi, dà proprio il numero di s/b che il giocatore umano ha risposto!

-- Comment added by AndreaSterbini on 10 Nov 2003


Re: Re:ATTENTI

Non deve dare lo stesso numero di s/b per tutti i tentativi.

Deve dare, per ciascun tentativo, lo stesso numero di strike e ball che il giocatore ha risposto per quel tentativo.

-- Comment added by AndreaSterbini on 10 Nov 2003


Confronto con tutti

Ok ho cambiato l'esercizio e gli ho fatto fare il controllo con tutti i tentativi precedenti...i tentativi vengono diversi in confronto al primo, ma nn capisco perkè farlo fare a tutti...

-- Comment added by DavidVulpetti on 10 Nov 2003


Finito (parte 2)

Ok l'ho finito come voleva lei professore, e ho capito finalmente il significato della sua strategia smile Mi dica se è giusto...voglio indovinare il numero 12345

00000

0 0

11111

1 0

12222

2 0

12333

3 0

12344

4 0

12345

5 0

giusto?

-- Comment added by DavidVulpetti on 10 Nov 2003


RE: Finito (parte 2)

Ma l'output da proporre non dovrebb essere "il primo codice che è in accordo con tutti i tentativi fatti"? C'è qualcosa che non mi torna. Benjo

-- Comment added by BeniaminoLarocca on 10 Nov 2003


Domanda sciocca

Mi sono appena accorto di aver fatto una domanda (domanda precedente)sciocca, forse ho capito l'errore. Benjo

-- Comment added by BeniaminoLarocca on 10 Nov 2003


Re: Re: Domande su prestazioni e testing

Per prestazioni intendevo il numero medio di tentativi per indovinare il codice segreto, che nel caso del mio programma è di mediamente 26 tentativi. Volevo sapere se anche a lei risulta un dato simile anche se a quanto ho capito per questo homework non ha molta importanza, semmai l'avrà per il quinto homework. wink

-- Comment added by EmanueleQuattrini on 10 Nov 2003


Ora ho capito..

Ogni possibile codice (da 00000 a 99999) deve essere confrontato con tutti i tentativi 'ufficiali' proposti in precedenza...e affinchè venga proposto deve dare, chiaramente, lo stesso risultato che ogni codice ha dato precedentemente...cioè, ad es:

1° tentativo: xxxxx, risposta: 0 strike, 1 ball. 2° tentativo: yyyyy, risposta: 1 strike, 0 ball. ecc cc

Il numero da 00000 a 99999 che io posso proporre sarà quel codice che confrontato col primo tentativo mi darà 0 strike e 1 ball, confrontato col secondo 1 strike e 0 ball e così via..right? Avevo capito che per ogni tentativo doveva dare lo stesso valore di strike e di ball.. smile La logica è chiara, però il risultato non è 'garantito', a quanto sembra...cioè dipende dal codice che si cerca in sostanza.

-- Comment added by DaniloRossi on 10 Nov 2003


P.S.

Una domanda che c'entra poco con l'Homework..qualcuno (del canale P-Z) saprebbe dirmi a che punto è arrivato il prof. Silvestri col programma e/o quali argomenti ha trattato? Visto che nn posso seguire sempre mi sarebbe di grande aiuto...Se qualcuno fosse così gentile, tramite posta elettronica però (pau.dr@libero.it), per non intasare questa pagina che è destinata ad altro. Grazie mille.

(Professore se é un problema questo messaggio mi scusi in anticipo, lo cancelli pure).

-- Comment added by DaniloRossi on 10 Nov 2003


Re: Finito (parte 2)

Ad occhio mi pare corretto, ora lo implemento e vi posto qualche esempio.

Re: Re: Re: Domande su prestazioni e testing

Credo che il tuo programma abbia un errore, a occhio (non l'ho ancora implementato) ci vogliono meno tentativi.

-- Comment added by AndreaSterbini on 10 Nov 2003


Re: Ora ho capito

Dato che i tentativi sono sempre scelti tra i possibili codici giusti, è garantito che il codice verrà trovato.

Non so quale sia il numero massimo di tentativi (e per quale codice).

-- Comment added by AndreaSterbini on 10 Nov 2003


X Danilo Rossi

Lo scrivo qui ke nn mi va di mandare l'e-mail smile Oggi (10/11/03) Silvestri ha spiegato i vettori di dimensione variabile e ha fatto le funzioni di printa matrice e duplica stringa

-- Comment added by DavidVulpetti on 10 Nov 2003


Re:

Scusi professore..ma se allora io penso al codice 88888, che è quello che il computer deve indovinare..i tentativi 'ufficiali' sarebbero tutti quelli da 00000 a 00007 (0 strike e 0 ball) continuando con 00008 -quando mi trova finalmente un ball- e così via?

P.S. Grazie David, ti ho risposto via mail, nn vorrei approfittare della pazienza del prof smile

-- Comment added by DaniloRossi on 10 Nov 2003


Re: ???

Se pensi 88888 credo che i tentativi saranno:
  1. 00000 a cui rispondi 0 0
  2. 11111 a cui rispondi 0 0 (il primo numero che risponde 0 0 se confrontato con 00000)
  3. 22222 a cui rispondi 0 0 (dà 0 0 se confrontato con 00000 e 0 0 se confrontato con 11111)
  4. 33333 a cui rispondi 0 0 (dà 0 0 se confrontato con 00000 e 0 0 se confrontato con 11111 e 0 0 se confrontato con 2222)
  5. 44444 a cui rispondi 0 0 ( ... e così via)
  6. 55555 a cui rispondi 0 0
  7. 66666 a cui rispondi 0 0
  8. 77777 a cui rispondi 0 0
  9. 88888 a cui rispondi 5 0 (l'ha trovato)

-- Comment added by AndreaSterbini on 11 Nov 2003


L'incremennto delle cinque cifre?

Da 00000 passo direttamente a 11111 e cosi via,o per i valori 00001,00002,....,00009 come viene specificato nell'esercizio?

-- Comment added by DarioFiorenza on 11 Nov 2003


Scusate o fatto lo sborone

Non avevo letto bene il testo non date retta a cio che ho scritto ora prima di parlare(scrivere) conto fino 0011(3).Ahhhhhh. smile

-- Comment added by DarioFiorenza on 11 Nov 2003


Capito

Col senno di poi ho capito, mi stavo sforzando inutilmente di capire chissà cosa, invece mi è bastata una frase postata dal prof per realizzare. Ora fuziona esattamente come ha detto, anche gli esempi che ha pubblicato mi vengono identici, però c'è un caso che mi da un risultato anomalo. Il codice da indovinare è "90385". Questa è l'esecuzione del programma:
00000
1 0
01111
0 1
20222
1 0
30333
2 0
30444
1 1
50355
3 0
50366
2 1
70357
2 1
80385
4 1
Esce così al 9° tentativo..why? :|

-- Comment added by DaniloRossi on 11 Nov 2003


Re:Capito

esce in quel modo al nono tentativo perkè evidentemente nemmeno il numero 99999 risulta poter essere "ufficiale" e quindi printabile dato ke dopo 99999 il programma esce per forza (come specificato dal professore) allora esce smile

-- Comment added by DavidVulpetti on 11 Nov 2003


Re: Capito

Ma che £$!"$£!" hai capito?

Come fai a dare come risposta 4 strike e 1 ball? Non è mai possibile, per cui il programma va a diritto fino a 99999 e poi esce!

-- Comment added by AndreaSterbini on 11 Nov 2003


Ehm...

Grande svista...fate finta di non aver letto. Pardon..

-- Comment added by DaniloRossi on 11 Nov 2003


Ho corretto l'errore smile

Effettivamente il numero medio di tentativi è di molto inferiore a 26.

-- Comment added by EmanueleQuattrini on 11 Nov 2003


Re:Re Capito

Avevo capito male io il post, è come dice il professore nn come ho detto io smile

-- Comment added by DavidVulpetti on 11 Nov 2003


Consegna

Scusi Professore ma la consegna a distanza di una settimana mi sembra troppo affrettata, soprattutto in questo periodo che cominciamo ad avere gli esoneri!

Non può darci più tempo per fare i programmi!?

-- Comment added by MattiaLaudenzi on 11 Nov 2003


UFFA

Non ci sto capendo niente!! Ma sono deficiente io oppure questo e` un problema comune?

-- Comment added by ClaudiaCorsaletti on 12 Nov 2003


Re: UFFA

Vediamo se riesco ad aiutarti ...

Il codice visto a lezione e pubblicato (corretto) nella pagina del MasterMind ti permette di confrontare due codici e ricavare il numero di strike e di ball corrispondente.

La strategia che devi implementare deve proporre, volta per volta, il più piccolo numero di 5 cifre che è possibile sia il codice segreto, visti i tentativi fatti fino a quel momento.

All'inizio non ci sono tentativi, per cui il più piccolo numero di 5 cifre è 00000.

Un numero, per essere il codice segreto da indovinare, deve, se confrontato con i tentativi fatti, produrre esattamente le stesse risposte date dal giocatore.

Quindi per ogni tentativo proposto, il programma deve ricordare la risposta del giocatore in modo da usarla nella successiva ricerca del prossimo tentativo da proporre.

Pensaci un po', ti accorgerai che il programma si implementa con 3 cicli nidificati.

-- Comment added by AndreaSterbini on 12 Nov 2003


OK!

ok ci provo!!...speriamo bene!! grazie

-- Comment added by ClaudiaCorsaletti on 12 Nov 2003


chirimenti sulla strategia da usare

in questa frase si dice "successivamente si esaminano i codici 00001, 00002, 00003 .... e li si confronta con tutti i codici proposti in precedenza"

ad esempio il mio codice è 12347 all'inizio faccio 00000 e rispondo 0 0 11111 e rispondo 1 0

poi che devo fare? provare con 22222 oppure provare quale dei 1111 sia lo strike? se potete chiarirmi le ideee grazie

-- Comment added by EmanueleDErrico on 12 Nov 2003


chiarimenti sulla strategia da usare

in questa frase si dice "successivamente si esaminano i codici 00001, 00002, 00003 .... e li si confronta con tutti i codici proposti in precedenza"

ad esempio il mio codice è 12347 all'inizio faccio 00000 e rispondo 0 0 11111 e rispondo 1 0

poi che devo fare? provare con 22222 oppure provare quale dei 1111 sia lo strike? se potete chiarirmi le ideee grazie

-- Comment added by EmanueleDErrico on 12 Nov 2003


Re: chiarimenti sulla strategia da usare

Ma quante volte ve lo devo dire? Il programma esamina in sequenza i numeri da 00000 a 99999 e propone il primo numero che è in accordo con tutti i tentativi fatti.

Quindi se il codice è 12347 le sequenza di tentativi sarà:

  1. 00000 a cui si risponde 0 0
  2. 11111 (primo numero che confrontato con 00000 dà 0 0) a cui si risponde 1 0
  3. 12222 (primo numero che confrontato con 00000 dà 0 0 e confrontato con 11111 dà 1 0) a cui si risponde 2 0
  4. eccetera

Ripeto: i tentativi sono spaziati, ma vengono trovati dal programma esaminando uno per uno tutti i numeri da 00000 a 99999.

-- Comment added by AndreaSterbini on 12 Nov 2003


Formato Input

Scusi Prof una domanda:quando devo inserire da prompt gli strike e balls,il formato è di questo tipo:" strikeSPAZIOballsINVIO "???

-- Comment added by DavidCordella on 12 Nov 2003


Re: Formato Input

Esatto

-- Comment added by AndreaSterbini on 12 Nov 2003


Incrementare i tentativi

Come si fa ad incrementare il tentativo lasciando gli zeri davanti la cifra? Ex: 00001---+1 sarà uguale a 2 non a 00002.

P.s. Forse sto sbagliando strategia ... e quindi questa domanda sarà solo SPAM---+1.

-- Comment added by MaurizioTrano on 12 Nov 2003


Re: Incrementare i tentativi

La domanda giusta è: come si fa a stampare un numero in 5 caratteri con gli 0 davanti? La risposta è: leggiti il manuale della printf.

-- Comment added by AndreaSterbini on 12 Nov 2003


Re: Re: Incrementare i tentativi

Ok funziona, grazie.

-- Comment added by MaurizioTrano on 12 Nov 2003


Confronti...amletici

Forse questa domanda è stata già fatta, però mi era venuto un dubbio riguardo i confronti che dobbiamo fare fra i codici. Dovendo confrontare il tentativo corrente (Ti) con quelli precedentemente visualizzati, dobbiamo usare una matrice capace di contenere tutti i possibili tentativi? O mi sto semplicemente complicando la vita?

-- Comment added by BeniaminoLarocca on 12 Nov 2003


Risposta per BeniaminoLaRocca

La prima che hai detto.Purtroppo devi salvarti tutto.Ok.

-- Comment added by DarioFiorenza on 12 Nov 2003


Matrice o Coda?

Professore ma si potrebbe implementare il tutto con una coda?

-- Comment added by MatteoLaBella on 12 Nov 2003


Re: Confronti...amletici

Devi ricordarti tutti i tentativi proposti e le corrispondenti risposte.

Re: Matrice o Coda?

Se ci riesci va bene lo stesso.

-- Comment added by AndreaSterbini on 12 Nov 2003


Funzione setvbuf

Professore sotto la dichiarazione delle variabili che utilizzeremo nel main deve essere inserita la funzione setvbuf come nell'homework1? Grazie

-- Comment added by DanielBuccarella on 12 Nov 2003


Funzione setvbuf

Professore sotto la dichiarazione delle variabili che utilizzeremo nel main deve essere inserita la funzione setvbuf come nell'homework1? Grazie

-- Comment added by DanielBuccarella on 12 Nov 2003


Re: Funzione setvbuf

Per questo esercizio non serve.

-- Comment added by AndreaSterbini on 12 Nov 2003


Bah

Domani è giovedi e io ancora non capisco st'esercizio, sara che non ci sto col cervello boh. frown

-- Comment added by DaniloDauria on 12 Nov 2003


Codici non trovati

Stanotte mi sono messo di punta su questo bell'esercizio (stanotte?!... si si, non ho un bel niente da fare) e, terminatolo, ho voluto provarlo con i codici "tabù" elencati da DavidVulpetti.
Contrariamente alle mie paure, tutto è andato egregiamente, tutti i codici sono stati trovati e ho potuto così concludere la giornata sbadigliando al sole che si alzava!

Comunque ecco le mie prove, casomai tornassero utili a qualcuno:

30214 ("viene indovinato all'undicesimo tentativo")
00000
1 0
01111
1 1
20122
1 2
21033
0 4
30214
5 0

Trovato al 5° tentativo

====================================

07589 ("arrivo al ventesimo e mi trova 4 strike finali")
00000
1 0
01111
1 0
02222
1 0
03333
1 0
04444
1 0
05555
2 0
05666
1 1
07577
3 0
07588
4 0
07589
5 0

Trovato al 10° tentativo

====================================

27340 ("viene indovinato proprio al ventesimo tentativo")
00000
1 0
01111
0 1
20222
1 1
23033
1 2
24304
2 2
25340
4 0
26340
4 0
27340
5 0

Trovato all'8° tentativo

====================================

09128 ("arriva al ventesimo e mi trova 2 strike e 1 ball finali")
00000
1 0
01111
2 0
01222
2 1
03123
3 0
04124
3 0
05125
3 0
06126
3 0
07127
3 0
08128
4 0
08129
3 2
09128
5 0

Trovato all'11° tentativo

====================================

92486 ("arriva al ventesimo e mi trova 3 strike finali")
00000
0 0
11111
0 0
22222
1 0
23333
0 1
42444
2 0
42555
1 1
62466
3 0
62477
2 1
82468
2 2
92486
5 0

Trovato al 10° tentativo

====================================

99999 ("partendo da 00000, metto tutti 0 ovviamente ma esce a 91111")
00000
0 0
11111
0 0
22222
0 0
33333
0 0
44444
0 0
55555
0 0
66666
0 0
77777
0 0
88888
0 0
99999
5 0

Trovato duemila tentativi dopo... =D

====================================

39123 ("arriva al venterimo e mi trova 1 strike e 1 ball finali")
00000
0 0
11111
1 0
12222
1 1
31233
2 2
31324
2 2
35123
4 0
36123
4 0
37123
4 0
38123
4 0
39123
5 0

Trovato al 10° tentativo

====================================

50491 ("arriva al ventesimo (lisciando il numero al diciannovesimo) e mi trova 3 strike e 1 ball finali")
00000
1 0
01111
1 1
20122
1 1
30313
1 1
40441
3 0
40551
2 2
50461
4 0
50471
4 0
50481
4 0
50491
5 0

Trovato al 10° tentativo

Nota: casomai qualcuno dovesse pensarlo, questa non è una pubblica umiliazione di DavidVulpetti.
Al contrario, mi complimento con lui per l'enorme attività su Twiki e lo ringrazio in quanto sicuramente qualcosa del mio lavoro sarà uscito dai suoi commenti.

Bella pe tutti smile

-- Comment added by OliverTran on 13 Nov 2003


Re: Codici non trovati

Grazie per gli esempi. Non li ho controllati, spero siano giusti.

-- Comment added by AndreaSterbini on 13 Nov 2003


Forse sto capendo qualcosa!

Allora ho capito che mi devo memorizzare tutti i tentativi che faccio, ma le risposte del giocatore ( strike, ball) anche quelle devono essere memorizzare in una matrice?

-- Comment added by DaniloDauria on 13 Nov 2003


Re: Forse sto capendo qualcosa!

si danilo anche delle risposte associate a un tentativo devi tenere memoria (poi scegli tu la struttura adatta...) altrimenti se non li memorizzi come fai a controllare se il "prossimo tentativo proponibile" e' in accordo con tutte le precedenti proposte fatte e quindi va proposto ? wink

-- Comment added by LuisaDiDionisio on 13 Nov 2003


Tempo a disposizione

Secondo me il tempo a disposizione è troppo poco!!!

-- Comment added by PaoloCoppi on 13 Nov 2003


Re: Codici non trovati

Concordo con il test effettuato da OliverTran, anche il mio programma si comporta così.

-- Comment added by CarloStefani on 13 Nov 2003


Ancora non ci arrivo

In linea di massima ho capito quello che occorre fare. Ma perché occorre memorizzare proprio tutti i tentativi precedenti e non solo l'ultimo? Se ho fatto n tentativi, questi saranno i risultati dei tentativi precedenti. Li posso anche memorizzare, ma per farci cosa? Scusate se la cosa può sembrare stupida o comunque banale, ma ancora non riesco a capire esattamente! :/

-- Comment added by DanieleBernardi on 13 Nov 2003


uhm

si ma forse non ce la faccio a farlo, mancano 3 gg frown speriamo bene

-- Comment added by DaniloDauria on 13 Nov 2003


Re: Ancora non ci arrivo

Vanno tenuti da conto tutti i tentativi gia' proposti perche' se non lo facessi perderesti le informazioni che ogni tentativo ASSIEME allo strike e al ball associato ti fornisce.

Ti faccio un esempio: se hai gia archiviato i seguenti tentativi: 1) |0|0|0|0|0| con |0|0| 2) |1|1|1|1|1| con |1|0| se tu, come dici, considerassi solo il tentativo 2 (l'ultimo) perderesti la informazione del tentativo 1 (cioe' nel caso in questione che la cifra NON contiene zeri) e quindi risulterebbe ufficialmente proponibile un tentativo tipo |1|2|2|2|0| proprio perche' non ricordi (scartandolo) che uno dei tentativi ti dice che non ci sono zeri)

ATTENZIONE che e' importante che il tentativo che e' lecito proporre deve accordare con TUTTI i precedenti... ne basta uno in disaccordo per scartare quel tentativo e esaminare il successivo se proponibile o meno

-- Comment added by LuisaDiDionisio on 13 Nov 2003


Re: Ancora non ci arrivo

Grazie Luisa. Dunque per ogni tentativo deve essere effettuato il confronto con tutti quelli precedenti. Ma poi? Non mi è chiaro questo! Facciamo che ho 3 tentativi già archiviati. Il programma mi propone il quarto. Una volta che io ho dato l'input cosa dovrebbe succedere? Devo fare questi confronti, ma tra chi? Non riesco proprio a realizzare il modo in cui i risultati memorizzati debbano essere usati.

-- Comment added by DanieleBernardi on 13 Nov 2003


Re: Ancora non ci arrivo

umh vediamo come posso aiutarti a capire smile allora il tuo numero sara' SICURAMENTE nell'intervallo che partendo dallo 0 arriva al 99999 pero' di tutte queste "proposte fattibili", ovviamente noi non vogliamo un programma scemo che ci proponga A VIDEO tutti i 100000 numeri (e per forza che indovina cosi'...) che sono nell'intervallo, ma di questi 100000 proponga A VIDEO SOLO quelli che "ha senso proporre"

Questo "ha senso proporre" significa proprio l'essere in accordo con i tentativi precedenti se come nell'esempio che ti ho fatto sopra proponessi a video il tentativo 12220 sprecheresti una delle 20 possibilita' perche' quel numero non potra' sicuramente essere nell'insieme delle possibili risposte che fanno vincere (perche' contiene uno 0 se consideravo la proposta 00000 00 lo sapevo che i numeri contenenti uno zero sicuramente non vincono...).

In soldoni: io li "penso" tutti i numeri nell'intervallo, ma A VIDEO faccio vedere (propongo) solo le proposte che mi potrebbero dare una vincita (cioe' solo quelle che mi passano il test con le precedenti)

Devo smettere di cercare... qdo l'input inserito dall'umano e' |5|0| quindi se gli input sono diversi da questo continui... tenendo ovviamente conto anche delle altre due condizioni di terminazione pero' wink

-- Comment added by LuisaDiDionisio on 13 Nov 2003


nuova strategia si può usare una strategia nostra perchè io la sua non l'ho capita.....?

-- Comment added by IsaccoGabizon on 13 Nov 2003


Conferme

Confermo anche io i test fatti da Oliver Tran.

Confermo anche che come ha detto, oggi, il prof. a lezione

il numero medio di tentativi è intorno a 10, ma per curiosità sto provando a testare in automatico il programma per tutte le combinazioni per avere una cifra precisa. Mi sa che ci vorrà un bel pò.

Aggiungo anche:

Per coloro che hanno ancora problemi

(Sempre che non sia io il primo ad aver sbagliato tutto). smile

Per implementare il mio programma ho usato un'algoritmo che nella sostanza è identico a quello proposto dal professore ma forse in pratica può essere spiegato in un modo un tantinello più semplice, o almeno spero affinchè possa essere utile per coloro che hanno ancora problemi con il programma.

L'algoritmo è il seguente:

1 - fai un tentativo

2 - ricevi gli strike e ball in risposta

3 - analizza tutti i 100000 codici possibili confrontandoli con il tentativo fatto e scarta definitivamente tutti i codici che non danno come strike e ball quelli che hai ricevuto in risposta nel punto 2

4 - proponi come tentativo il più piccolo codice che non hai scartato

5 - itera il procedimento

-- Comment added by EmanueleQuattrini on 13 Nov 2003


Vediamo se ho capito

allora io c'ho la mia bella matrice con al primo numero 00000. stampo 00000 e quello mi dice 10 allora io aumento 00001 00002 fino a trovare un numero che confrontato co 00000 mi da 1 0 quindi 0 0 0 0 0 0 1 1 1 1 sicuramente sto sbagliando qualcosa all'inizio pero boh.

Cmq se per caso a 01111 risponde 11 non ho capito sta cosa dei ball

-- Comment added by DaniloDauria on 13 Nov 2003


Sei TU ke devi dare gli strike e i ball!!! nn il programma.. lui in output ti mostra un tentativo valido e TU rispondi 00 10 11 ecc..

-- Comment added by DanieleFaraci on 13 Nov 2003


si questo l'ho capito :P la risposta infatti è dell'utente

-- Comment added by DaniloDauria on 13 Nov 2003


Re: Re: Ancora non ci arrivo

Il tuo programma sta cercando il codice da proporre.

Il codice segreto, confrontato dal giocatore umano con i tentativi del programma ha dato certe risposte.

Il codice che il programma sta esaminando può essere quello segreto solo se, confrontato con tutti i tentativi dà proprio le risposte che ha dato il giocatore umano.

Se uno (o più, ma uno basta) dei confronti non dà esattamente la stessa risposta data dal giocatore umano allora sicuramente il numero in esame non potrà mai essere il codice segreto che il programma sta cercando.

Se non è giusto allora lo si scarta e si passa al numero successivo.

Se tutti i suddetti confronti sono giusti il numero potrebbe essere il codice segreto. E lo si propone.

Il giocatore umano darà una risposta, se è 5 0 si è trovato il codice, altrimenti la memorizziamo assieme al tentativo e continuiamo a cercare dal numero che segue.

Re: nuova strategia

Una strategia diversa chiaramente non passerà i test.

Re: Per coloro che hanno ancora problemi

Spero che non analizzerai tutti i 100000 numeri "per ciascun tentativo da fare". Questo sarebbe terribilmente inefficiente. Potresti dover esaminare 100000 numeri per 100000 volte.

Dato che devi proporre il più piccolo e dato che i tentativi (per costruzione) sono in ordine crescente, basta che continui dall'ultimo tentativo fatto e ti fermi al primo numero che passa tutti i confronti producendo gli stessi strike a ball.

In questo modo esamini al massimo 100000 numeri COMPLESSIVAMENTE tra tutti i tentativi.

-- Comment added by AndreaSterbini on 13 Nov 2003


ah un altra cosa, ma il numero prima lo trasformo da vettore in cifra e poi lo devo per caso ritrasformare da cifra o a vettore per incrementarlo oppure devo incrementare le singole parti del vettore?

-- Comment added by DaniloDauria on 13 Nov 2003


Re: ah un'altra cosa

Te lo devo fare io l'esercizio o puoi cercare di pensare da solo a quali strutture dati ti servono e come usarle?

-- Comment added by AndreaSterbini on 13 Nov 2003


Re: Vediamo se ho capito

umh danilo la tua matrice in accordo all'esempio che fai sara':

1^ numero - pc dice: |0|0|0|0|0| tu gli dici: |1|0| 2^ numero - pc dice: |0|1|1|1|1| tu gli dici: |1|1| 3^ numero - pc dice: |2|0|1|2|2| tu gli dici: | | |

non capisco bene il pbma che esponi, cioe' |1|1| sei tu che lo rispondi confrontando la proposta con il NUMERO da indovinare. Dalla domanda che fai sembrerebbe che tu stia parlando di associare |1|1| al confronto tra 01111 e 00000 oppure ho capito male io almeno quello che evinco da cio' che dici e' questo, ma potrei sbagliare

i confronti tra le proposte precedenti e il numero corrente "candidato" a essere proposto lasciali fare al programmino gia' fornito dal prof dopo opportune modifiche wink sara' lui che risponde ai confronti con le proposte precedenti non tu :P

un confronto tra numero e proposta che non restituisce proprio strike e ball che sono associati alla proposta significa che quel numero lo scarti e consideri il prossimo numero "candidato" sempre che ve ne siano ancora da considerare wink

Danilo un cosiglio: soffermati bene sul testo dell'esercizio e sul programma fornito dal professore ti accorgerai che i 3/4 del programma li hai gia a portata di mano e ti resta solo da mettere le giuste condizioni e usare le giuste strutture dati smile

-- Comment added by LuisaDiDionisio on 13 Nov 2003


Re:ah un'altra cosa

ma il problema che ho io non è quello delle strutture dati, non ho afferrato bene la logica delle esercizio, sento che mi manca qualcosa pe accende la lampadina :P

-- Comment added by DaniloDauria on 13 Nov 2003


Re: Re: Per coloro che hanno ancora problemi

Naturalmente, anche perchè per testarlo in automatico senza averlo ottimizzato invece che un bel pò, ci voleva una settimana. smile

-- Comment added by EmanueleQuattrini on 13 Nov 2003


X Luisa

a quanto ho capito io se il prog come numero da 00000 e come risposta a 1 0 allora si scorre tutti i numeri che vanno da 00001 fino al numero piu piccolo che confrontato con 00000 ha come risposta 1 0 quando io ho sto numero di certo non è 00011 perche se confrontato con 00000 da come numero di strike 3. Si arriva a 01111 e l'utente da come input 1 1, io riparto da 01112 e confronto tutti i numeri che prima con 01111 e devo avere come risposta 11 e poi con 00000 e devo avere 1 0, è qui che io ho difficolta frown

-- Comment added by DaniloDauria on 13 Nov 2003


Re: X Luisa

si hai capito wink beh tu parlavi di mettere queste "proposte" in una matrice? giusto? la matrice e' una struttura dati che ha la caratteristica di potersi riferire ai valori contenuti con degli indici... beh allora fa uno sforzicino a pensare dove sara' l'indice quando proponi (e quindi non ti scordare anche a memorizzare nella matrice un tentativo, senza sovrascriverne altri ovviamente :P)

beh allora ci sei dai basta che da dove sei torni fino alla prima proposta esaminandole tutte...

dai che e' facile e' solo questione di indici ops diciamo di indice wink

-- Comment added by LuisaDiDionisio on 13 Nov 2003


Re: X Luisa

Attento che quando riparti da 01112 devi confrontare il numero corrente sia con 01111 (ed ottenere 1 1) sia con 00000 (ed ottenere 1 0). Solo se questi due controlli hanno successo il numero corrente "puo' essere quello pensato dal giocatore umano". Se uno di questi controlli fallisce sei certo che il numero corrente non e' giusto, quindi passi al numero successivo.

Per quanto riguarda le strutture dati:

  • i codici sono numeri interi e vengono "spacchettati" nelle singole cifre solo per eseguire il confronto.
  • per ogni tentativo proposto bisogna ricordare la risposta del giocatore umano (strike e ball)
  • non possono essere eseguiti piu' di 20 tentativi (avete finalmente capito perche' ho inserito questo limite? wink )

-- Comment added by AndreaSterbini on 14 Nov 2003


RE:X Luisa

Si avevo capito che doveva superare tutti i controll, quello che non mi rimaneva chiaro era se dovevo scorrere tutti i numeri fino a trovare quello piu piccolo smile oppure dovevo usare un altro metodo per arrivare al numero, cmq adeso ho capito!

-- Comment added by DaniloDauria on 14 Nov 2003


Problema

Forse forse sono riuscita a fare qualcosa, xo` un problema ce l'ho comunque: sapete dirmi per quale motivo quando il numero di STRIKE e` uguale al numero di BALL il programma si ferma? grazie

-- Comment added by ClaudiaCorsaletti on 14 Nov 2003


Re:Problema

Dipende da come hai fatto il programma...o dipende da come hai scritto il codice ke riguarda il calcolo degli strike e dei ball. Se l'hai preso dal Mastermind pubblicato dal professore, controlla bene se hai messo le variabili giuste secondo il tuo programma, e i cicli messi nel modo giusto..

-- Comment added by DavidVulpetti on 14 Nov 2003


Forse un po' off-topic

Io ho cambiato ambiente di sviluppo proprio quando ho ricominciato a programmare all'università. Prima, a scuola, utilizzavamo il Turbo C---++ (vecchio, ma affascinante :P) di Borland, versione 3. Lì un intero senza segno aveva come range -32767..+32767, un unsigned andava da 0 a 65536. Domanda: è lo stesso per il gcc? O faccio prima ad usare, che so, un long?

Chiedo scusa per la domanda paranoica, ma non si sa mai :/

-- Comment added by DanieleBernardi on 14 Nov 2003


Implementazione

Vorrei sapere se dobbiamo implementarlo con la sua filosofia e possiamo utilizzare la nostra.

-- Comment added by MauroGasperini on 14 Nov 2003


posticipare consegna

Non si potrebbe avere una piccola proroga???

-- Comment added by DanieleCarrabba on 14 Nov 2003

mi associo (anche e sopratutto perchè ieri abbiamo sostenuto un esonero e Lunedi ce n'è un altro!)...


-- EnricoLiguori - 14 Nov 2003


Circa l'homework2

Ma quando usciranno i risultati?Ormai la scadenza è passata da 5gg!!! Noi in una settimana dobbiamo riuscire a crearlo dovendo studiare anke le altre materie...voi non riuscite a correggerlo?!?!?! Meno male che la correzione è AUTOMATICA!!!!!!!!!!!

-- Comment added by StefanoConte on 14 Nov 2003


Ci Rinuncio....

Ci ho rinunciato.............tra un esonero e l'altro non ho il tempo RINUNCIO!!

-- Comment added by Users.691942 on 14 Nov 2003


Fine test

Ho finito di testare il mio prog. su tutte le combinazioni e ho ottenuto:

numero medio di tentativi: 9,16837

numero massimo di tentativi: 15 con il codice 99678

Ho messo in attachment alla mia pagina personale un file di testo con il dettaglio del numero di tentativi per ogni codice. Se provando qualche codice trovate degli errori fatemelo sapere. smile

Due domande per il prof.:

1 - Condivido il fatto che mio il prog. debba esaminare al massimo 100000 numeri complessivamente tra tutti i tentativi.

Riguardo al metodo per ottenere ciò il mio prog. quando scarta un codice, questo non viene mai più considerato.

Per il implementare questa cosa creo altre inefficienze più piccole, in quanto spreco memoria con un vettore[100000] per tenere conto dei codici scartati e spreco tempo ogni volta che devo interrogarlo.

Si potrebbe fare meglio, ma credo che valga la pena mantenere queste inefficienze se mi permettono di comprendere meglio che combina il mio prog. di volta in volta.

Lei che ne pensa?

2 - Esiste un comando della shell di linux per laciare due programmi simultaneamente? (non uno dopo l'altro ma proprio simultaneamente).

-- Comment added by EmanueleQuattrini on 14 Nov 2003


RE:Due domande per il prof.:

Ma il programma deve memorizzare anke i numeri che non vanno bene?

-- Comment added by DaniloDauria on 14 Nov 2003


RE:Due domande per il prof.: X Danilo Dauria

Nota: sto parlando dell'algoritmo del mio prog. non di quello proposto dal professore, lo specifico perchè non vorrei si creasse confusione.

Il mio prog. non memorizza numeri. Quando un codice viene scartato il vettore scartati[indice codice da scartare] viene posto uguale a true.

-- Comment added by EmanueleQuattrini on 14 Nov 2003


Re:Re:Problema

Stò incontrando il tuo stesso problema in questo momento...se metto come risposta 1 1 oppure 2 2 esce automaticamente(con 0 0 funziona bene)...stò cercando di risolvere con il debugger....però x ora non ho risolto...

-- Comment added by DavidCordella on 14 Nov 2003


Re:Re:Re: Problema

Se all'inizio dell'esecuzione del programma mettete come risposta al tentativo 00000 : 1 1 o 2 2, non esiste un codice che corrisponda alla risposta data. Se invece il problema si verifica in altre occasioni non lo so. Tenete cmq presente che i tentativi con tutte cifre uguali come 11111, 22222 etc. ricevono sempre zero ball in risposta.

-- Comment added by EmanueleQuattrini on 14 Nov 2003


Non inizio

Questo programma non so nemmeno da dove iniziare, ed oramai il tempo è finito!!! Vabbe... ciao ciao

-- Comment added by MatteoLaBella on 15 Nov 2003


Re: Forse un po' off-topic

Gli interi di Linux sono a 32 bit, quindi possono rappresentare (nella codifica in complemento a 2) numeri da -2^31 a---+2^31-1

Re: Implementazione

La mia

Re: posticipare consegna

D'accordo, due esoneri sono un motivo sufficiente. Si consegna fino a mercoledì sera.

Re: Circa l'homework2

Ho pubblicato i RisultatiHomework2 .

Re: Ci Rinuncio....

Ho prorogato la consegna, forse ce la fai.

Re: Fine test

Interessante, mandami il file.

-- Comment added by AndreaSterbini on 15 Nov 2003


Stampa dei tentativi

Per stampare i tentativi bisogna stampare una variabile float o possiamo tranquillamente fare un ciclo for che stampa le cifre intere?

-- Comment added by LivioDellaCorte on 15 Nov 2003


RE:RE:RE:RE:Problema

Si lo so che non esiste mettere 11 o 22 all'inizio,infatti il problema si presenta dopo....cercherò di risolvere....menomale che è stata prorogata la consegna!

-- Comment added by DavidCordella on 15 Nov 2003


Re: Stampa dei tentativi

Basta che stampi 5 cifre, che si tratti di un ciclo o di un codice di formato appropriato per la printf a me fa lo stesso.

-- Comment added by AndreaSterbini on 15 Nov 2003


Piccolo aiuto...

vorrei chiedervi un piccolo aiuto... ho capito che il tentativo che il programma deve proporre deve essere in accordo con tutti i tentativi precedenti e che quindi bisogna memorizzare sia ,appunto, i tentativi precedenti che gli Strike e i Ball relativi a quel tentativo.... quello che non riesco a capire è con quale struttura( funzione,while,for,ecc. boh!) io debba confrontare i tentativi che mano a mano prende in cosiderazione con tutti quelli precedenti che ha proposto... magari non sono stato tanto chiaro ma se qualcuno mi risponde gliene sarei grato smile

-- Comment added by EnricoLiguori on 15 Nov 2003


Re: Re: Fine test

Al mio intervento intitolato Fine Test lei ha risposto:

Re: Fine test

Interessante, mandami il file.

Le ho mandato in allegato via e-mail il file, e lei mi ha risposto: "E con ciò?".

C'è qualcosa che mi sfugge? smile

-- Comment added by EmanueleQuattrini on 15 Nov 2003


Re: Re: Fine test

Non hai idea quanti scrivono, mi è sfuggito smile .

-- Comment added by AndreaSterbini on 15 Nov 2003


Messaggi di uscita...

Nel caso si superino i venti tentativi o si raggiunga il numero 99999 il programma deve stampare qualche messaggio particolare? In altre parole c'e' qualcosa da inserire quando esce senza indovinare il numero?

-- Comment added by StefanoGiachetti on 15 Nov 2003


Re: Piccolo aiuto...

Ciao. Usare un ciclo come while o for è essenziale, in quanto il numero dei tentativi proposti non andati a buon fine aumenterà col decorrere dell'esecuzione del programma. Opportunamente usato, il contatore del ciclo stesso (o altri, qualora il codice che hai steso preveda già una variabile con questa proprietà) ti può permettere di verificare quanti tentativi sono stati salvati nella matrice relativa e di effettuare il paragone tra i tentativi passati ed il potenziale codice in esame.

Una funzione non è essenziale, però renderebbe più chiaro il tuo codice.

Bella smile

-- Comment added by OliverTran on 15 Nov 2003


Debugger

Una volta lanciato kdbg, come si fa a vedere il contenuto delle variabili passo passo x capire che cosa fa il programma??? grazie!! p.s. sto allucinato, sono le nove di sabato sera...

-- Comment added by SimoneDAndreta on 15 Nov 2003


Re: Messaggi di uscita...

Nessun messaggio.

Secondo EmanueleQuattrini che ha provato tutti i possibili codici il numero massimo di tentativi è 15.

Re: Debugger

Basta che apri la finestra "Visualizza->Locals"

-- Comment added by AndreaSterbini on 16 Nov 2003


Il tempo stringe

Professore, io non riesco a superare un ostacolo, che per quanto banale sia, rappresenta pur sempre l'impossibilità di far girare questo Cacchio di prog.

Non riesco ad incrementare il tentativo, come si può incrementare di uno il mio vettore tentativo[5]= 00000 come posso dirgli di avanzare di uno per arivare a 00001?!?

Una cosa così piccola un problema così grande.

-- Comment added by GiuseppeDiFederico on 16 Nov 2003


Il tempo stringe

non ragionare sull'incremento del vettore giuseppe, ma su quello di un "numero" che poi tu ridurrai a cifre in un vettore wink

-- Comment added by LuisaDiDionisio on 16 Nov 2003


Dubbio

il testo dice che dobiamo esaminare i codici con quelli in precendeza

ho un grande dubbio...conviene usare un array di 5 elemnti x memorizzare le cifre o un array da 99999 per memorizzare ogni singolo elemento?? forse sto fuori strada...:-(

-- Comment added by EmanueleDErrico on 16 Nov 2003


Utilizzo degli array e delle matrici

A parte il fatto che ancora non sono riuscito a capire per niente la strategia che vuole farci utilizzare (ancora qualche tentativo e poi ci rinuncio! smile ), la mia domanda riguarda le strutture dati da utilizzare. Conviene utilizzare delle matrici per conservare i codici proposti (memorizzando cifra per cifra) o degli array (memorizzando il codice per intero come se fosse un unico numero).

-- Comment added by AlessandroSpinelli on 16 Nov 2003


Ho risolto!

Finalmente sono riuscito a risolvere il problema che avevo in precedenza esposto.Il problema che avevo incontrato era dovuto al fatto che non reinizializzavo a zero i valori di strike,balls,usata[],usatas[] nella funzione controllo(quella che ho creato per fargli fare il controllo con ogni codice precedente)!Evvai,speriamo bene!

-- Comment added by DavidCordella on 16 Nov 2003


Attenzione alla formattazione.

Cliccate QUI, soprattutto per chi fa l'esame con Prof. Tronci

-- Comment added by MatteoLaBella on 16 Nov 2003


Riflessione...

Volevo dire una cosa..nel fare gli Homework o cmq nel provare a cavolo qualke programmino qua e la noto spesso, anzi quasi sempre, ke nn funge tutto alla prima compilazione. Magari logicamente fila tutto, il programma è ok e magari penso ke sia ok ma mi manca quella variabile, quella parentesi, quell'incremento a cui nn pensavo...morale della favola: so ke il canale E-O fa l'esame al pc, e gli altri 2 canali su un foglio di carta..come si fa a fare un esame corretto se puo saltare fuori un qualsiasi errore di distrazione o anke logico (ma stupido) ke solo una compilazione puo darti? Boh...

-- Comment added by DavidVulpetti on 17 Nov 2003


Concordo, come vengono valutati questi casi?

-- Comment added by OliverTran on 17 Nov 2003


Re: Riflessione...

Nel caso di errori su carta il docente ha una manica più larga di quanto non abbia il compilatore.

-- Comment added by AndreaSterbini on 17 Nov 2003


Re:Re:Riflessione...

A dire il vero,vedendo quante persone hanno passato Prog1 con Piperno l'anno scorso e quante persone l'hanno passato negli altri 2 canali,non direi proprio che il Prof abbia avuto manica larga...anche perchè---+ di un errore stupido si può fare,e solo lavorandoci sopra si arriva a risolverlo,e con il Pc davanti è + semplice rispetto ad un voglio bianco...Tante volte anche Voi Professori in classe dite "questa cosa dovrei provarla per vedere se è corretta"...oppure "non so come si comporta il compilatore in questo caso,bisognerebbe fare delle prove"...e alla fine le prove si fanno con uno schermo davanti,non con un foglio di carta....

-- Comment added by DavidCordella on 17 Nov 2003


Re: Il tempo stringe

X Luisa, ho capito perfettamente quello che vuoi dirmi,e ti ringrazio, ma il mio numero 0, quando subisce il primo incremento diventa ovviamente uno, il problema sorge quando lo vado a mettere nel vettore, perchè il risultato sarà non l'atteso 00001, ma 11111. I really don't know why!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

-- Comment added by GiuseppeDiFederico on 17 Nov 2003


Re: Il tempo stringe

umh giuseppe un consigliuccio wink guarda ben bene il programma del mastermind che il prof ha messo online, in esso trovi proprio le istruzioni che cerchi, infatti c'e' un punto in cui non fa altro che prendere un numero (intero) e lo restituisce come cifre in un vettore.

NON devi mettere tutti 1 nelle cinque posizioni del vettore se hai come numero in input 1

-- Comment added by LuisaDiDionisio on 17 Nov 2003


Re: Il tempo stringe

In realtà non devi "metterlo" in un vettore, ma "trasformarlo" in un vettore...Per esempio: 1 deve essere spacchettato come se fosse 00001 e poi messo nel vettore. Spero di esserti stato d'aiuto.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


scusate

ops...scusate per la formattazione della risposta precdente...

-- Comment added by BeniaminoLarocca on 17 Nov 2003


Ciao a tutti, un informazione.....io utilizzo come tool di sviluppo Dev-C---++(consigliato sul sito)in ambiente windows 98, e possibili che tutto cio' mi crei problemi quando il prof. fa la correzione??a me da casa il gioco funzionava mentre non e' passato a neanche una prova!!:-( come mai???

-- Comment added by LauraFagioni on 17 Nov 2003


XLaura

Non so che dirti, anche a me a casa funzionava (sia su win con devc---++, sia su linux con gcc), però non ho passato neanche un test. Forse hai, abbiamo, fatto qualche errore di formattazione di cui non riusciamo ad accorgerci.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


Come Gestire i ball?

Kome dire al programma che ci sono dei ball? Come li gestisco mi manca solo questo per rendere efficiente al 100% il mio programma!...

-- Comment added by DarioFiorenza on 17 Nov 2003


Re:Come Gestire i ball?

cioè?

-- Comment added by BeniaminoLarocca on 17 Nov 2003


X il prof. Sterbini Matrici nella scanf(%d%d",&m[ ][ ],&m[ ][ ])?

Volevo sapere se nella scanf("%d%d",&m[ ][ ],&m[ ][ ]); posso passargli direttamente strike e ball alla matrice dei tentativi senza che il programma mi crei due matrici diverse ??? Ho fatto una prova e sembra funzionare salvo poi quando cerco se ci sono stati 5 strike lui non li trova mai?

-- Comment added by DarioFiorenza on 17 Nov 2003


Volevo dire....

Che il programma per proporre un numero bisogna considerare sia i ball che gli strike e per ora non riesco a trovare un modo.... per i ball

-- Comment added by DarioFiorenza on 17 Nov 2003


Re:Come Gestire i ball?

dovresti farlo esattamente nel modo in cui hai fatto gli strike. Guarda quello che fa il codice del prof.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


Si ma dove?

Perchè io volevo fare solo con un unica istruzione. Il programma del mastermind non ci serve tutto, ma solo 7-8 righe di codice sono utili per noi le altre non ci servono dimmi se sbaglio?

-- Comment added by DarioFiorenza on 17 Nov 2003


Re:Come Gestire i ball?

Non sono d'accordo. Il programma del prof. può, o meglio, deve, diventare solo una parte del tuo programma; cioè, quella parte che confronta e che ti dice il numero di strike e ball. A questo punto, se ci pensi, il gioco è fatto...Diciamo che se utilizzi al meglio il codice del prof. il tuo lavoro puoi farlo veramente con poche righe in più...o almeno così a me pare.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


Se lo dici te?

Se vedi il controllo dei ball lui lo fa se hai inserito tu il numero? a me sembra impossibile modificarlo per il nostro caso? Se è possibile "senza dirmi il codice " come è possibile utilizzare il controllo del professore?

-- Comment added by DarioFiorenza on 17 Nov 2003


Re: Re:Re:Riflessione...

Parlane con i docenti, io faccio le esercitazioni.

Re X Laura

-Giocatore 1: 
-| | | | | | | |
---+Giocatore 1: | | | | | | | |
Mi sembra che il tuo programma inserisca un accapo di troppo.

Re: X Beniamino

--- output   2003-11-17 12:47:51.000000000---+0100
---+++ 3.out   2003-11-14 16:57:23.000000000 +0100
@@ -110,12---+110,4 @@
  |1| |1|2|2|1|2|
  ---------------
   0 1 2 3 4 5 6
- | | | | | | | |
- | | | | | | | |
- |1| | | | | | |
- |1| | | | | | |
- |1| |2|1|2| |2|
- |1| |1|2|2|1|2|
- ---------------
-  0 1 2 3 4 5 6
 Ha vinto il giocatore 1
Mi sembra che il tuo programma stampi due volte la configurazione finale.

Re: X il prof. Sterbini Matrici nella scanf(%d%d",&m[ ][ ],&m[ ][ ])?

Ricordati di mettere i valori degli indici senno' ti da errore di compilazione.

Se non è questo il problema, allora c'e' un errore logico da qualche parte.

Re: Re:Come Gestire i ball?

Il programma MasterMind vi fornisce già scritto quasi 2/3 del codice dell'esercizio.

-- Comment added by AndreaSterbini on 17 Nov 2003


Re:Se lo dici te?

Il programma fa solo un confronto fra due stringhe di 5 numeri. Il calcolo che ne risulta rappresenta il numero di strike e, ugualmente, il numero di ball. Pensaci bene; non fa molta differenza se il numero lo inserisci tu o se viene fuori da un insieme (di 100000 elementi; dallo 0 al 99999) di stringhe.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


doh

l'ho visto solo ora...scusi prof...ho ricontrollato il codice e ho visto l'errore. Probabilmente l'avevo messo per controllo e non l'ho più tolto.

-- Comment added by BeniaminoLarocca on 17 Nov 2003


Re: esame EnricoTronci

Allora diciamo che l'esame di tronci avviene in questo modo:
  1. Hai 8 esercizi con i valori punteggi (generalmente sono 4 Alberi, 2 Stringhe, 1 Coda, 1 Pila)
  2. Hai la possibilità di compilare quante volte vuoi
  3. Ti mette a disposizione alcuni input e output, cosi puoi provare il programma.
  4. Quello che posso dirvi e quello di fare gli esercizi degli anni passati.

-- Comment added by MatteoLaBella on 17 Nov 2003


alberi,stringhe,code e pile...bello..

-- Comment added by DavidVulpetti on 18 Nov 2003


Re:Re: esame EnricoTronci

ce l'hai i compiti passati? Casomai mandameli a benjosh@libero.it Grazie.

-- Comment added by BeniaminoLarocca on 18 Nov 2003


Re:Re: Re: Compiti passati

  • I compiti passati, ovviamente i testi, le puoi trovare sul sito web del prof. EnricoTronci
http://www.dsi.uniroma1.it/~tronci
  • Inoltre vai su AppuntiTronci ho inserito direttamente i collegamenti al sito di Tronci



Strategia vincente....obbligatoria??

Volevo sapere se dobbiamo implementare la sua stessa procedura vincente o ne possiamo creare una nostra. Perchè il passaggio nel secondo esempio alla riga 8: 56666 11 75677 Non mi è molto chiaro.

-- Comment added by EmanueleDErrico on 18 Nov 2003


Re: Strategia vincente....obbligatoria??

Sì, è obbligatorio che implementi la strategia descritta da me, altrimenti il tuo output sarà diverso da quello atteso e non supererai i test.

Per realizzare la tua strategia personale aspetta uno degli homework successivi.

Il passaggio

  • 56666 11
  • 75677
è giustificato dal fatto che tutti i numeri tra 56666 e 75677, quando vengono confrontati con i tentativi proposti (anche con quelli prima del 56666) non danno le stesse risposte che ha dato il giocatore umano, e quindi non possono essere il codice segreto .

Esaminando i tentativi si vede che i numeri da 0 a 4 non possono essere presenti, che c'e' un solo 5 ed un solo 6 e che essi non si trovano come prime due cifre del codice 56XXX. Il primo numero che soddisfa questi confronti è proprio 75677, controlla.

-- Comment added by AndreaSterbini on 18 Nov 2003


Controlli l'email

Controlli l'email perchè le ho fatto una richesta importante

-- Comment added by NicolaMarioMarcucci on 18 Nov 2003


OK

-- Comment added by AndreaSterbini on 18 Nov 2003


Debugger???

Qualcuno di voi sa come utilizzare il debugger di dev-c----++? Se no se potete indicarmi un altro compilatore che ce l'ha. Grazie

-- Comment added by FrancescoColanera on 19 Nov 2003


Re: Debugger???

Se usi cygwin installati il pacchetto gdb, è il debugger.

-- Comment added by AndreaSterbini on 19 Nov 2003


Il programma esce a 99999

Nella descrizione dell'homework3 dice che il programma deve uscire "se non ci sono piu codici disponibili (si è arrivati al codice 99999": Questo vuol dire che quando si arriva 99999 il codice segreto è sicuramente quello e quindi il programma non deve nemmeno leggere il numero di strike e ball?

-- Comment added by MarcoGrechi on 19 Nov 2003


Re: Il programma esce a 99999

Vuol dire che dopo il numero 99999 non ci sono codici e semplicemente si esce. Si tratta del caso in cui il giocatore ha sbagliato una o più risposte. Non va scritto nessun messaggio di errore.

-- Comment added by AndreaSterbini on 19 Nov 2003


Oltre 99999?

Ma noi dobbiamo considerare il caso in cui il giocatore sbagli una o più risposte? Nell'homework ha scritto che non dobbiamo gestire alcun errore e che l'input è sempre corretto, quindi non abbiamo bisogno di far uscire il programma dopo il numero 99999, semplicemente perchè non arriveremo mai oltre...

-- Comment added by RiccardoManni on 19 Nov 2003


Data di consegna homework3

la data di consegna indicata e' giovedi 19 novembre ora poiche giovedi e' 20 e il 19 e' mercoledi, in quale fase quantica del tempo dovremmo consegnare l'homework? smile

-- Comment added by TommasoGalassiDeOrchi on 19 Nov 2003


Spero sia per giovedì...

-- Comment added by ManueleManni on 19 Nov 2003


Mercoledì sera

-- Comment added by AndreaSterbini on 19 Nov 2003


X il Prof Ma quando è la consegna?

Giovedì???? 19????? ma giovedi non è 20 e mercoledì 19 lei ha un suo calendario privato? O li conta in complemento a due????:-)) vorrei una risposta illuminante sperando che sia Giovedì 20!!!! Vorrei saperlo al piu presto!! Oooops un altra cosa volevo il codice.... oooppss un aiuto sul caso dei ball che io non riesco a capire potrebbe rispiegarmelo in parole povere , so che il programma del mastermind forniva gia 2/3 del codice ma non riesco ad adattare la parte dei ball.... puo aiutarmi Helpppppppppppppppp!!!!!! ;-))

-- Comment added by DarioFiorenza on 19 Nov 2003


Che c'e' da adattare?

Una volta che sai quanti strike/ball fa il numero corrente confrontato con ciacun tentativo, se non è la stessa risposta data dal giocatore passi al numero che segue e sennò passi al tentativo seguente. Se tutti i confronti coi tentativi passano il test puoi proporre il numero.

-- Comment added by AndreaSterbini on 19 Nov 2003


X il prof. Sono sempre io

Allora devo prendere il codice del master mind e cambiare quattro cose?

-- Comment added by DarioFiorenza on 19 Nov 2003


Formato

nella stampa dell'output lei ha scritto che va stampato un numero decimale seguito da accapo... la mia printf è del tipo ("%d",vettore[n]) dove ovviamente il vettore è composto da 5 cifre... va bene? anche perchè altrimenti il numero 00000 non verrebbe stampato cosi come si vede ma solo 0

-- Comment added by MarcoRuffelli on 19 Nov 2003


usa una: printf("%05ld", Contatore); se non usi un long leva la "l"

Tom.


Re: X il prof. Sono sempre io

Dario ... mi prendi in giro vero?

-- Comment added by AndreaSterbini on 19 Nov 2003


MA COME STATE??????????

per due settimane c'è scritto che il compito va consegnato entro Giovedi 19, e non è la prima volta che un compito viene dato da consegnare per Giovedi, ma che mi sarei io dovuto fare i calcoli se giovedi sarebbe stato 19 o 20? Inoltre, è molto più probabile che si sbagli il numero del giorno che non il nome no ntrovate????

In sostanza, stamattina mi metto a fare l'homework, e leggo che Mercoledi sera viene confermata la scadenza per Mercoledi sera. Si si, va proprio bene!

PS. Quando si commette un errore del genere lo si corregge NON PER DIFETTO. Grazie per la collaborazione.

-- Comment added by SalvatoreBerti on 20 Nov 2003


Re:MA COME STATE??????????

Bene grazie, un pò raffreddato ma tutto ok. smile

-- Comment added by MaurizioTrano on 20 Nov 2003


Re:MA COME STATE??????????

Ma avevi guardato la pagina della consegna? Li' non c'e' mai stato errore.

Solo in uno dei 3 posti in cui avevo scritto la data di consegna:

Sorry for the inconvenience.

(sto bene anche io, grazie smile )

-- Comment added by AndreaSterbini on 20 Nov 2003


Risultati

Ho pubblicato la SoluzioneHomework3 e i primi RisultatiHomework3. Mi rimane da:
  • testare un paio di esercizi
  • controllare quelli che non compilano e quelli che non passano

-- Comment added by AndreaSterbini on 27 Nov 2003


Prof Sterbini, ho visto i risultati dell'homework3 e mi trovo in disappunto sul risultato dei suoi test, in particolar modo: 1) il n°15790, testandolo ho verificato che impiega 17 passaggi; 2) il n°21961 impiega 17 passaggi; 3) il n°17770 impiega 16 passaggi; 4) il n°21043 impiega 13 passaggi; 5) il n°30230 impiega 13 passaggi; 6) il n°98765 impiega 20 passaggi. mi sembra che ogni test non superi i 20 passaggi, come da lei richiesto. Mi farebbe piacere sentire un suo parere sull'argomento, magari davanti ad una tazza di thè, dopo aver verificato la mia teoria (non si sa mai...). Spero di avere sue notizie, la ringrazio in anticipo per l'interessamento. e-mail: elio.chiapperini@libero.it

-- Comment added by ElioChiapperini on 27 Nov 2003


Re: numero di tentativi

Ti sbagli. Probabilmente controlli solo con l'ultimo tentativo. Guarda i file .out che contengono la sequenza giusta di tentativi.

PS come mai allora gli altri hanno fatto giusto?

-- Comment added by AndreaSterbini on 27 Nov 2003


Perchè???

Scusi prof,ho appena compilato l'esercizio su gcc,preso dall'email di conferma del suo esercizio,e gcc non mi dà l'errore che da a lei,dovuto al fatto che alla linea 80 e 81 del codice ho inizializzato due vettori in questo modo: int us[5]=0;int uss[5]=0; sò che è sbagliato dal punto di vista logico/sintattico,e lo sapevo già quando le ho mandato l'esercizio,ma non procurando errori nè in fase di compilazione,nè in fase di esecuzione,l'avevo lasciato così!E' possibile che versioni diverse di gcc segnalino certi errori ed altre no?Mi pare che una cosa del genere fosse accaduta anche l'anno scorso per altri motivi...attendo notizie!

-- Comment added by DavidCordella on 27 Nov 2003


Re: Perchè???

Si può sapere perchè non hai usato l'inizializzatore { 0 } che ho sempre consigliato a lezione?

Non so perchè il tuo gcc non da errore. Il mio lo da sia su redhat 7.3 che redhat 8.0.

-- Comment added by AndreaSterbini on 27 Nov 2003


Forse ho capito male il testo del programma... ho capito che dovevano solo essere minori di 20 i passaggi, non che i risultati dovevano contenere ugual numero di tentativi. comunque io non ho gestito errori di input da tastiera, quindi se si invertono gli strike con i ball può causare dei problemi.

-- Comment added by ElioChiapperini on 27 Nov 2003


Re:Re:Perchè???

Non l'ho inizializzato a dovere perchè il mio cervello si era abituato all'idea ke funzionava cmq perchè non mi dava errore e funzionava a dovere il programma... frown

-- Comment added by DavidCordella on 27 Nov 2003


Questo vi interessa http://www.divx.com/divx/mastermind/

-- Comment added by MatteoLaBella on 30 Nov 2003

No such template def TMPL:DEF{PROMPT:before}

<tre spazi>---+++<spazio>Titolo della domanda   "non dovete mettere <>" 
Testo della domanda


This topic: Programmazione1/AA0506/PZ > 
HomeWork3 > DomandeHomework3
Topic revision: r189 - 2003-11-30 - MatteoLaBella
 
This site is powered by the TWiki collaboration platform Powered by PerlCopyright © 2008-2024 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback