 | |
Il progetto dsy.it è l'unofficial support site dei corsi di laurea del Dipartimento di Scienze dell'Informazione e del Dipartimento di Informatica e Comunicazione della Statale di Milano. E' un servizio degli studenti per gli studenti, curato in modo no-profit da un gruppo di essi. I nostri servizi comprendono aree di discussione per ogni Corso di Laurea, un'area download per lo scambio file, una raccolta di link e un motore di ricerca, il supporto agli studenti lavoratori, il forum hosting per Professori e studenti, i blog, e molto altro...
In questa sezione è indicizzato in textonly il contenuto del nostro forum |
[Progetto] "CARTE" Clicca QUI per vedere il messaggio nel forum |
escanor |
Ripeto una domanda già fatta(ma voglio essere sicuro),quando nel progetto viene chiesto (in torneo):
"una modalità di distribuzione delle carte dal mazzo (tra quelle corrispondenti, rispettivamente, al costruttore delle classi derivate da Mano e all'invocazione del metodo distribuisci nella classe Mazzo)."
Sostanzialmente intende il MODO in cui devono essere distribuite le carte dal mazzo,e cioè o 5 a te e 5 a me,o una a te e una a me? |
karplus |
Originally posted by dayfallen
Questo è ancora un mistero... l'unico modo per distribuire le carte che ho letto nel file del progetto è "una a me e una a te" :D...
Quindi tu come hai fatto? Hai implementato solo quello?
Originally posted by dayfallen
Il link per quel file è sul sito di Mereghetti da quasi una settimana :( non penso proprio che escano oggi...
Certo, lui mette sempre i link prima; infatti ci sono addirittura i link x il testo del prossimo esame, ma non funzionano! :D |
dayfallen |
Originally posted by karplus
Quindi tu come hai fatto? Hai implementato solo quello?
Ehm... sì per ora sì... :oops: l'unico problema è, ora che ci penso, che nella prima partita le carte che faccio usare sono state distribuite 5 a uno e 5 all'altro perché lo fa quando creo la mano... mentre nelle partite successive utilizzando il distribuisci() me le distribuisce 1 ad A e 1 a B... uhm...:? :shock: :help: :caffe: |
karplus |
Originally posted by dayfallen
mentre nelle partite successive utilizzando il distribuisci() me le distribuisce 1 ad A e 1 a B... uhm...:? :shock: :help: :caffe:
Quindi ogni giocatore ha una carta sola in mano? |
K)M4STER |
Sostanzialmente intende il MODO in cui devono essere distribuite le carte dal mazzo,e cioè o 5 a te e 5 a me,o una a te e una a me?
Intende proprio quello, lo posso affermare con certezza perchè ho mandato una mail al tutor e mi ha detto che è così, il mio problema xo' è che non riesco a controllare, mentre creo una nuova mano se il mazzo finisce... O meglio quando finisce come faccio a controllare se ho già dato delle carte a una mano???
Voi che avete fatto? |
karplus |
Mi confermate quindi che bisogna usare distribuisci x dare una carta per ogni giocatore? Ovviamente dopo aver fatto una distribuzione normale con 5 carte x giocatore |
K)M4STER |
Si' confermo, per ulteriore conferma riporto la mail madata al tutor e la sua risposta:
Le scrivo perchè non mi è ben chiaro un punto del progetto.
Ho concluso il progetto ed è funzionante, ma nella descrizione della classe
Torneo viene detto che l'utente deve scegliere una modalità di distribuzione
delle carte dal mazzo (tra qulle corrispondenti, rispettivamente, al costruttore
delle classi derivate da Mano e all'invocazione del metodo distribuisci
nella classe Mazzo).
Il secondo metodo non mi ha creato problemi, ma non riesco a capire cosa
si intenda con "distribuzione delle carte dal mazzo tramite il costruttore
delle classi derivate da Mano".
Il costruttore di Mano pesca NUMCARTE dal mazzo. I costruttori delle classi che ereditano da Mano chiamano suddetto costruttore.
Dunque quando viene istanziato un oggetto di una classe derivata da Mano, vengono pescate NUMCARTE carte.Quindi utilizzando distribuisci le carte vengono assegnate in modo alternato ad un giocatore e all'altro; utilizzando i costruttori vengono assegnate prima NUMCARTE carte al primo giocatore, poi altrettante al secondo.
Spero di esserle stato utile. |
elendil |
Originally posted by K)M4STER
Intende proprio quello, lo posso affermare con certezza perchè ho mandato una mail al tutor e mi ha detto che è così, il mio problema xo' è che non riesco a controllare, mentre creo una nuova mano se il mazzo finisce... O meglio quando finisce come faccio a controllare se ho già dato delle carte a una mano???
Voi che avete fatto?
Io ho gestito l'eccezione, come viene richiesto, nel metodo Pesca.
Se il mazzo finisce io setto prossimaCarta a 0 e "virtualmente" creo un altro mazzo. In questo modo se in una mano ho tre carte e il mazzo finisce, ricomincia a pescare dal "nuovo" mazzo, che poi è lo stesso di prima che riparte dall'inizio. :D
Unico punto dolente: se, sfiga vuole, mescolo il primo mazzo e ASSO DI CUORI finisce in fondo e poi rimescolo il secondo mazzo e ASSO DI CUORI finisce in cima al mazzo, sono cazzi perchè rischio di avere due ASSI DI CUORI in una stessa mano. Ma l'ipotesi, su 52 carte, è abbastanza improbabile. Spero... :shock: |
[>>>>VK<<<<] |
help a me succede una cosa strana quando compilo mi crea il file" Mazzo$Mano.class" e nn "Mano.class".
e giusto o cannato.
se è cannato dove posso aver sbagliato?? |
K)M4STER |
Eh beh elendil, così ci arrivo anch'io... Ma un programma che funziona il 99,9% delle volte è un programma da buttare!!! Cmq credo di aver trovato la soluzione, domani vedo se riesco a sistemarlo una volta per tutte!!! :twisted: |
dayfallen |
Originally posted by elendil
Io ho gestito l'eccezione, come viene richiesto, nel metodo Pesca.
Se il mazzo finisce io setto prossimaCarta a 0 e "virtualmente" creo un altro mazzo. In questo modo se in una mano ho tre carte e il mazzo finisce, ricomincia a pescare dal "nuovo" mazzo, che poi è lo stesso di prima che riparte dall'inizio. :D
Unico punto dolente: se, sfiga vuole, mescolo il primo mazzo e ASSO DI CUORI finisce in fondo e poi rimescolo il secondo mazzo e ASSO DI CUORI finisce in cima al mazzo, sono cazzi perchè rischio di avere due ASSI DI CUORI in una stessa mano. Ma l'ipotesi, su 52 carte, è abbastanza improbabile. Spero... :shock:
Io semplicemente quando finiscono le carte faccio rimescolare il mazzo senza crearne uno nuovo... però ora che mi ci fai pensare quel problema molto poco probabile c'è anche da me... |
pinauz |
ciao a tutti sto facendo un main per vedere se le classi del progetto seme valore e carta funzionano come dovrebbero.
per seme e valore no problem però per carta quando gli do l'istruzione
seme s=new seme(4)
valore v=new valore(6)
carta c=new carta(s,v)
mi da errore: not a statement
cioè non riconosce le classi seme e valore le devo mettere da qualche parte per fargliele leggere nel classpath? se faccio un copia-incolla nel prog.io che importo all'inizio mi da erroe comunque |
pinauz |
il metodo toString() di mazzo vuole una descrizione dell'intero mazzo....
quindi io gli pongo un ciclo for (int i=0;i<maxcarte;i++)
e gli dico di returnare c(che è una carta).toString() in posizione i però mi da missing return statement cosa manca? |
dayfallen |
Originally posted by pinauz
il metodo toString() di mazzo vuole una descrizione dell'intero mazzo....
quindi io gli pongo un ciclo for (int i=0;i<maxcarte;i++)
e gli dico di returnare c(che è una carta).toString() in posizione i però mi da missing return statement cosa manca?
basta non mettere il return in un for ;) |
pinauz |
ma sei sempre tu? ti eleggo miglior membro del forum fino al 9-02!! in che senso basta non mettere il return nel for? bastano le parentesi? se non scrivo return perde il senso! |
dayfallen |
Originally posted by pinauz
ma sei sempre tu? ti eleggo miglior membro del forum fino al 9-02!! in che senso basta non mettere il return nel for? bastano le parentesi? se non scrivo return perde il senso!
beh pensa a come poter restituire soltanto 1 stringa e non 52 stringhe ;)
lui ne vuole solo 1...
Non posso dirti tutto senò annullano il mio... |
pinauz |
non ho ben capito cosa vuole!
vuole una cosa del genere:
pos1 asso di cuori
pos2 tre di picche
pos3 quattro di denari |
dayfallen |
Originally posted by pinauz
non ho ben capito cosa vuole!
vuole una cosa del genere:
pos1 asso di cuori
pos2 tre di picche
pos3 quattro di denari
sì io ho fatto così... anche se nel programma in effetti non viene mai utilizzata...
e cmq tutta quella roba l'ho messa in un'unica stringa... non in tante separate :) |
marcolino85 |
ma nessuno si è chiesto il perchè hanno scritto nell'ultima pagina che NON SI DEVONO USARE CLASSI PUBLIC:
QUESTE SONO LE PAROLE TESTUALI: Dovranno essere consegnati tutti i sorgenti Java che permettano al programma di essere compilato ed eseguito correttamente
§ compressi in un archivio di tipo ZIP che estragga i file nella directory in cui si trova l’archivio stesso, oppure
§ contenuti in un unico file in cui tutte le classi non devono essere dichiarate di tipo public; |
dayfallen |
Originally posted by marcolino85
ma nessuno si è chiesto il perchè hanno scritto nell'ultima pagina che NON SI DEVONO USARE CLASSI PUBLIC:
QUESTE SONO LE PAROLE TESTUALI: Dovranno essere consegnati tutti i sorgenti Java che permettano al programma di essere compilato ed eseguito correttamente
§ compressi in un archivio di tipo ZIP che estragga i file nella directory in cui si trova l’archivio stesso, oppure
§ contenuti in un unico file in cui tutte le classi non devono essere dichiarate di tipo public;
Java non permette la presenza di più di una classe public all'interno di un unico file... e quando dichiari una classe public il nome del file dev'essere lo stesso della classe... ;)
Se hai altri dubbi leggi le FAQ del sito in cui si inseriscono gli esercizi del SiLab... sono esattamente gli stessi problemi :) |
karplus |
Mi sono incartato con il metodo distribuisci; come faccio a usarlo se pretende 2 oggetti della classe mano, ma essendo mano astratta non posso crearli? |
dayfallen |
Originally posted by karplus
Mi sono incartato con il metodo distribuisci; come faccio a usarlo se pretende 2 oggetti della classe mano, ma essendo mano astratta non posso crearli?
Chi ha mai detto che devi crearli scusa? |
[>>>>VK<<<<] |
Qualcuno mi spiega cosa deve fare il metodo :astratto int valore().
il testo dice che deve ritornare un intero rappresentante il valore numerico di una mano.
io ho capito cosi:
deve ritornare il valore complessivo delle carte presenti in una mano ( praticamente sommando i valori anche se i semi sono diversi)?
è giusto |
dayfallen |
Originally posted by [>>>>VK<<<<]
Qualcuno mi spiega cosa deve fare il metodo :astratto int valore().
il testo dice che deve ritornare un intero rappresentante il valore numerico di una mano.
io ho capito cosi:
deve ritornare il valore complessivo delle carte presenti in una mano ( praticamente sommando i valori anche se i semi sono diversi)?
è giusto
Non devi sommare niente... in base alla classe in cui lo implementi ti ritorna il valore della carta più alta / bassa / uguale / briscola presente nel mazzo ;) |
[>>>>VK<<<<] |
Originally posted by dayfallen
Non devi sommare niente... in base alla classe in cui lo implementi ti ritorna il valore della carta più alta / bassa / uguale / briscola presente nel mazzo ;)
grazie.
P.S
Bello il nuovo avatar.:-D |
dayfallen |
Originally posted by [>>>>VK<<<<]
grazie.
P.S
Bello il nuovo avatar.:-D
Ehehe grazie... non avevo niente da fare :D |
[>>>>VK<<<<] |
Originally posted by dayfallen
Non devi sommare niente... in base alla classe in cui lo implementi ti ritorna il valore della carta più alta / bassa / uguale / briscola presente nel mazzo ;)
Scusa un chiarimento ancora.
Ma allora io devo solo definirlo in "MANO" in modo che poi le sotto classi lo ereditano.
L'operazione specifica al tipo di mano(manobriscola,mano+alta
mano+bassa,ecc) le la faccio fare riscrivendo il metodo.
giusto? |
karplus |
Originally posted by dayfallen
Chi ha mai detto che devi crearli scusa?
perché il metod distribuisci secondo il testo vuole come argomento 2 oggetti mano, infatti ricopiandolo pari pari é void distribuisci (Mano, Mano) |
dayfallen |
Originally posted by [>>>>VK<<<<]
Scusa un chiarimento ancora.
Ma allora io devo solo definirlo in "MANO" in modo che poi le sotto classi lo ereditano.
L'operazione specifica al tipo di mano(manobriscola,mano+alta
mano+bassa,ecc) le la faccio fare riscrivendo il metodo.
giusto?
Yes... in mano ci metti solo il "titolo"... |
dayfallen |
Originally posted by karplus
perché il metod distribuisci secondo il testo vuole come argomento 2 oggetti mano, infatti ricopiandolo pari pari é void distribuisci (Mano, Mano)
Esatto... e a te cosa serve creare due oggetti mano? Li hai già... basta che dai due nomi a quelle cose tra parentesi ;) e quello che scriverai andrà bene per tutti e 4 i giochi... |
karplus |
Originally posted by dayfallen
Esatto... e a te cosa serve creare due oggetti mano? Li hai già... basta che dai due nomi a quelle cose tra parentesi ;) e quello che scriverai andrà bene per tutti e 4 i giochi...
Right, come argomenti i 2 rispettivi ManoAlta/bassa/ecc... Dopo una giocata ho usato il metodo distribuisci e ho guardato entrambe le mani ma sono sempre uguali (perché i 2 oggetti non sono stati ricreati).
Come faccio a vedere se sto distribuisci funziona? Cosa dovrei aspettarmi di vedere di diverso rispetto alla distribzione classica?
Oddio, scusate le domande ma la faccenda ancora non mi é molto chiara :oops: |
dayfallen |
Hei sono usciti i bonus di laboratorio!!! |
karplus |
Ne ho fatti 21, ne ho visti parecchi come me ma mi pare ci sia un solo 23, sbaglio?
Ovviamente gli ultimi 2 es non li ha fatti nessuno... :D
Com'é che la seconda matricola ha 3 punti di bonus con 18 esercizi? raccomandato? :shock: |
dayfallen |
Originally posted by karplus
Ne ho fatti 21, ne ho visti parecchi come me ma mi pare ci sia un solo 23, sbaglio?
Ovviamente gli ultimi 2 es non li ha fatti nessuno... :D
Com'é che la seconda matricola ha 3 punti di bonus con 18 esercizi? raccomandato? :shock:
Ahahahahah :D boh... e perché la prima matricola non ha matricola??? :? |
[>>>>VK<<<<] |
Originally posted by dayfallen
Yes... in mano ci metti solo il "titolo"...
ho notato solo adesso che loro chiedono il metodo astratto int valore().
ma per farlo astratto anche tutta la classe mano deve essere astratta giusto? |
dayfallen |
Originally posted by [>>>>VK<<<<]
ho notato solo adesso che loro chiedono il metodo astratto int valore().
ma per farlo astratto anche tutta la classe mano deve essere astratta giusto?
Esatto ;) |
karplus |
Originally posted by [>>>>VK<<<<]
ho notato solo adesso che loro chiedono il metodo astratto int valore().
ma per farlo astratto anche tutta la classe mano deve essere astratta giusto?
Solo la classe e quel metodo sono astratti; il resto dei metodi di questa classe astratta NON sono astratti. |
[>>>>VK<<<<] |
public abstract int valore(){
}
}
mi da questo errore"abstract methods cannot have a bod"
basta che ci scrivi qualsiasi cosa? |
dayfallen |
Originally posted by [>>>>VK<<<<]
public abstract int valore(){
}
}
mi da questo errore"abstract methods cannot have a bod"
basta che ci scrivi qualsiasi cosa?
E' talmente astratto che non ci vanno manco le graffe VK ;):D metti solo un bel ; |
karplus |
Originally posted by karplus
Right, come argomenti per distribuisci i 2 rispettivi ManoAlta/bassa/ecc... Dopo una giocata ho usato il metodo distribuisci e ho guardato entrambe le mani ma sono sempre uguali (perché i 2 oggetti non sono stati ricreati).
Come faccio a vedere se sto distribuisci funziona? Cosa dovrei aspettarmi di vedere di diverso rispetto alla distribzione classica?
Oddio, scusate le domande ma la faccenda ancora non mi é molto chiara :oops:
arf arf, aiutino :D |
[>>>>VK<<<<] |
grazie ancora dayfallen , andando avanti di sto passo ti dovro offrire una cena per una settimana :D |
dayfallen |
Originally posted by [>>>>VK<<<<]
grazie ancora dayfallen , andando avanti di sto passo ti dovro offrire una cena per una settimana :D
Accetto :D |
karplus |
Dai, nessuno che mi vuole dire come faccio a verificare se sto distribuisci che ho fatto é corretto o no? io l'ho fatto e funziona, ma come faccio a vedere la differenza rispetto alla distribuzione 5 a 5 normale? |
dayfallen |
Originally posted by karplus
arf arf, aiutino :D
Più di così non posso fare...:sad: |
dayfallen |
Originally posted by karplus
Dai, nessuno che mi vuole dire come faccio a verificare se sto distribuisci che ho fatto é corretto o no? io l'ho fatto e funziona, ma come faccio a vedere la differenza rispetto alla distribuzione 5 a 5 normale?
Stampa anche il mazzo e guarda come son state distribuite le carte ;) |
karplus |
Ah ecco, ora almeno so come verificare sta distribuzione :-D |
karplus |
Domanda: ma voi potete fare più di 6 partite? io posso farne a bizzeffe come se il mazzo non finisse mai; ho implementato il nomorecardexception, ma nonostante non ne parli mi é venuto sto dubbio.
Il NoMoreCardException dovrebbe venire fuori dopo 6 partite? a logica direi di si, ma nel testo é un po' ambiguo |
dayfallen |
Originally posted by karplus
Domanda: ma voi potete fare più di 6 partite? io posso farne a bizzeffe come se il mazzo non finisse mai; ho implementato il nomorecardexception, ma nonostante non ne parli mi é venuto sto dubbio.
Il NoMoreCardException dovrebbe venire fuori dopo 6 partite? a logica direi di si, ma nel testo é un po' ambiguo
All'inizio anche io ricreavo gli oggetti Mano e rimescolavo il mazzo ad ogni partita... solo che in quel modo non aveva nessun senso implementare tutta la roba che ci hanno chiesto... quindi ho preferito rimescolare il mazzo solo quando si genera quell'errore...:) non so cmq se ho fatto bene...
Notte :? :shock: |
K)M4STER |
Dopo 5 partite...
50 carte per 5 partite, la 6a non ha carte sufficienti quindi rimescolo... |
moonska |
Originally posted by K)M4STER
Si' confermo, per ulteriore conferma riporto la mail madata al tutor e la sua risposta:
Le scrivo perchè non mi è ben chiaro un punto del progetto.
Ho concluso il progetto ed è funzionante, ma nella descrizione della classe
Torneo viene detto che l'utente deve scegliere una modalità di distribuzione
delle carte dal mazzo (tra qulle corrispondenti, rispettivamente, al costruttore
delle classi derivate da Mano e all'invocazione del metodo distribuisci
nella classe Mazzo).
Il secondo metodo non mi ha creato problemi, ma non riesco a capire cosa
si intenda con "distribuzione delle carte dal mazzo tramite il costruttore
delle classi derivate da Mano".
Il costruttore di Mano pesca NUMCARTE dal mazzo. I costruttori delle classi che ereditano da Mano chiamano suddetto costruttore.
Dunque quando viene istanziato un oggetto di una classe derivata da Mano, vengono pescate NUMCARTE carte.Quindi utilizzando distribuisci le carte vengono assegnate in modo alternato ad un giocatore e all'altro; utilizzando i costruttori vengono assegnate prima NUMCARTE carte al primo giocatore, poi altrettante al secondo.
Spero di esserle stato utile.
Ciao,
non ho capito se si puo utilizzare o il costruttore di mano o il metodo distrubuisci o tutte e due insieme, anche se nell'ultimo modo ogni giocatore ha 10 carte.
Qualcuno sa rispondermi? |
K)M4STER |
E' l'utente che ti dice quale usare, logicamente ne deve scegliere uno, non è possibile usarli tutti e 2... |
karplus |
Originally posted by K)M4STER
Il costruttore di Mano pesca NUMCARTE dal mazzo. I costruttori delle classi che ereditano da Mano chiamano suddetto costruttore.
Dunque quando viene istanziato un oggetto di una classe derivata da Mano, vengono pescate NUMCARTE carte.Quindi utilizzando distribuisci le carte vengono assegnate in modo alternato ad un giocatore e all'altro; utilizzando i costruttori vengono assegnate prima NUMCARTE carte al primo giocatore, poi altrettante al secondo.
Spero di esserle stato utile.
E anche questo é andato :D |
pinauz |
ma per mazzo avete usato un array di array? |
pinauz |
come avete costruito il metoso string di mazzo? se gli metto il ciclo for seguito dal return mi da missing return statement |
[>>>>VK<<<<] |
mi sono accorto che nelle classi MANO e MAZZO, tutti i metodi al difuori dei costruttori fanno riferimento all'array c.
ma così facendo non considerano mai quale è il mazzo che invoca il metodo, andando a lavorare sempre sullo stesso array del costruttore.
Come faccio a correggere questo errore??? |
dayfallen |
Originally posted by [>>>>VK<<<<]
mi sono accorto che nelle classi MANO e MAZZO, tutti i metodi al difuori dei costruttori fanno riferimento all'array c.
ma così facendo non considerano mai quale è il mazzo che invoca il metodo, andando a lavorare sempre sullo stesso array del costruttore.
Come faccio a correggere questo errore???
L'array c di mano non è lo stesso di mazzo... anche se hanno lo stesso nome... uno ha 5 elementi l'altro 52... |
karplus |
Originally posted by pinauz
come avete costruito il metoso string di mazzo? se gli metto il ciclo for seguito dal return mi da missing return statement
Da quello che ho capito il compilatore si incazza se il return dentro un body di graffe che non siano quelle che aprono o chiudono il metodo.
Siccome parecchie volte serve un return fra graffe (non di apertura chiusura del metodo), se il compilatore rompe, dagli un return vuoto.
Se il metodo é string dagli return "", se invece il metodo é un int dagli return 0.
Questi return "alternativi" non inficiano minimamente i vari return fra graffe che ti servono realmente, quindi vai tranquillo :D |
Voodoo |
come avete costruito il metoso string di mazzo? se gli metto il ciclo for seguito dal return mi da missing return statement
ciao Pianuz...
il toString() di mazzo l'ho implementato per puro dovere,dal momento che nella classe torneo nn lo uso...devi fare in modo di avere ciascuna carta stampata in un unica stringa...e ricordati che ogni metodo vuole il return,a meno che il tipo restituito sia void...il metodo deve sempre ritornare il tipo restituito,quello a finaco del nome per intenderci...
code:
fai un bel for per scorrere l'array di carte che compongono il mazzo...
tramuti la carta di un certo indice in stringa e la assegni ad una variabile...
e così via vai aggiungendo a questa variabile,senza cancellare quanto salvato prima,tutte le altre carte...
capito? ;) |
Voodoo |
per Mazzo un array di array??Io no
Non ho usato classi speciali (Vector o che so io...),devi solo far un bell'array di 52 carte.... |
[>>>>VK<<<<] |
non so perchè ma il mio metodo mescola fa i capricci, quando lo compilo tutto ok, la compilazione va a buon fine.
quando eseguo il metodo mi esce questa errore:
"
C:\Documents and Settings\VK\Desktop>java P
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
at Mazzo.mescola(Valore.java:423)
at P.main(Valore.java:572)"
Perchè?
ho notato che se la variabile numScambi è 0 funziona, ma se è zero nn mescola!! |
pinauz |
Originally posted by karplus
Da quello che ho capito il compilatore si incazza se il return dentro un body di graffe che non siano quelle che aprono o chiudono il metodo.
Siccome parecchie volte serve un return fra graffe (non di apertura chiusura del metodo), se il compilatore rompe, dagli un return vuoto.
Se il metodo é string dagli return "", se invece il metodo é un int dagli return 0.
Questi return "alternativi" non inficiano minimamente i vari return fra graffe che ti servono realmente, quindi vai tranquillo :D
ti dirò ho messo il return che mi interessa dopo il ciclo for tra parentesi graffe (non quelle che aprono e chiudono il metodo)
dopodichè ho aggiunt un bel return "" ma quando eseguo mi stampa solo asso di cuori vuol dire che il ciclo for non me lo esegue |
pinauz |
Originally posted by Voodoo
ciao Pianuz...
il toString() di mazzo l'ho implementato per puro dovere,dal momento che nella classe torneo nn lo uso...devi fare in modo di avere ciascuna carta stampata in un unica stringa...e ricordati che ogni metodo vuole il return,a meno che il tipo restituito sia void...il metodo deve sempre ritornare il tipo restituito,quello a finaco del nome per intenderci...
code:
fai un bel for per scorrere l'array di carte che compongono il mazzo...
tramuti la carta di un certo indice in stringa e la assegni ad una variabile...
e così via vai aggiungendo a questa variabile,senza cancellare quanto salvato prima,tutte le altre carte...
capito? ;)
avevo già adottato la tua soluzione ma se creo una stringa relativa alla prima carta come posso aggiungere alla stessa stringa un'altra stringa? allora ho creato un array di stringhe ma quando voglio stamparlo mi stampa solo dei simboli strano... |
dayfallen |
Originally posted by pinauz
avevo già adottato la tua soluzione ma se creo una stringa relativa alla prima carta come posso aggiungere alla stessa stringa un'altra stringa? allora ho creato un array di stringhe ma quando voglio stamparlo mi stampa solo dei simboli strano...
Vabbé visto che son giorni che stai su quel metodo te lo dico... hai presente "\n"? mai sentito? se lo metti all'interno di una stringa ti manda a capo il testo che segue... quindi se tu prima del for inizializzi una stringa vuota... e nel for aumenti quella stringa aggiungendoci "\n"+ il toString della carta che ti serve e fuori dal for gli dici "return QuellaStringa;" Java se ne sta buono buono e la smette di darti problemi ;) |
marcolino85 |
ma dentro in manoPiuAlta come faccio a dirgli di riferirsi al metodo valore ereditato da Mano? |
karplus |
Fa in modo che ManoPiuAlta estenda Mano, e poi crea normalmente il suo metodo valore come se quello astratto di Mano non esistesse |
karplus |
Una domanda riguardo al materiale ausiliario che va allegato ai vari java quando verranno sottoposti: bisogna allegare una guida, e un file in cui vengono descritte le principali scelte implementantive, e fin qui ci sono.
Quando Malchiodi ha spiegato il progetto mi pare abbia detto che che nel secondo file bisogna scrivere le variazioni che noi abbiamo apportato alla traccia originaria, mi ricordo che ha detto una roba del tipo "non scrivetemi cosa deve fare il programma che lo so già, é inutile ricopiare la traccia"
Confermate che é così? nel secondo file bisogna inserire e spiegare gli accorgimenti personali? Ma se uno x ipotesi (assurda visto che alcuni punti delle varie classi sono molto ambigui) non cambia niente non dovrebbe scrivere niente?
Poi entrambi i file vanno stampati e allegati anche alla copia cartacea vero? |
karplus |
Se hai passato l'esame dovresti sapere perlomeno da dove iniziare :shock:
Cmq c'é un mega 3ad dove si aiutano coloro che stanno facendo il progetto; io stesso non sapevo da che parte iniziare prima di entrare in quel 3ad :),
Passa di lì, con la scusa che sei una donna magari ti cagheranno molto di più :asd: |
[>>>>VK<<<<] |
Originally posted by [>>>>VK<<<<]
non so perchè ma il mio metodo mescola fa i capricci, quando lo compilo tutto ok, la compilazione va a buon fine.
quando eseguo il metodo mi esce questa errore:
"
C:\Documents and Settings\VK\Desktop>java P
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 52
at Mazzo.mescola(Valore.java:423)
at P.main(Valore.java:572)"
Perchè?
ho notato che se la variabile numScambi è 0 funziona, ma se è zero nn mescola!!
nessuno sa cosa devo fare? |
zak84 |
io non capisco perchè ma quando faccio partire torneo, e gioco, inizia a pescarmi le carte a partitre dall' undicesima anziche dalla prima.. nonostante prossimaCarta è sempre impostata a 0 ovunque... |
pinauz |
Originally posted by [>>>>VK<<<<]
nessuno sa cosa devo fare?
controlla i valori delle variabili. Se ti dice Arrayoutofbound o qualcosa di simile vuol dire che stai tentando di accedere a una carta con indice >52. |
zak84 |
si ma non capisco perche... e tutto perfetto... ma anche se il nomorecardsexception mi dice mazzo esaurito, il programma deve rimescolare e continuare a pescare ma non lo fa... ma tu adesso dove sei? se sei in silab dimmelo che io sono qua e magari puoi darmi una dritta... |
pinauz |
a voi non succede una cosa strana nel metodo pesca()?
prossimacarta è inizializzata a zero all'inizio
nel corpo del metodo lo incremento di 1 e poi gli dico di returnare
c[prossimacarta-1] (che sarebbe c[0]) ma viene pescata sempre la carta in posizione 1 mentre se scrivo return c[0] viene pescata la carta in pozizione 0 allora ho pensato che prossimacarta viene già incrementato da un'altra parte magari in un altro mondo e se gli dico return c[prossimacarta-2] fa riferimento alla posizione -1!!
riepilogo
prossimacarta=0
prossimacarta++
c[prossimacarta-1] riferimento pos 1
c[prossimacarta-2] riferimento pos -1
????? |
pinauz |
Originally posted by zak84
si ma non capisco perche... e tutto perfetto... ma anche se il nomorecardsexception mi dice mazzo esaurito, il programma deve rimescolare e continuare a pescare ma non lo fa... ma tu adesso dove sei? se sei in silab dimmelo che io sono qua e magari puoi darmi una dritta...
ce l'hai con me? guarda che la mia risposta era per vk...a quel punto io non ci sono ancora arrivato... |
zak84 |
pensa un po che il mio metodo pesca funziona da dio (semplicemente gli faccio ritornare c[prossimaCarta++] )
ma il programma torneo mi inizia a pescare dalla carta numero 11 in poi... funziona bene perche pesca la 11, la 12, la 13... ma parte non dalla 0... |
pinauz |
Originally posted by zak84
pensa un po che il mio metodo pesca funziona da dio (semplicemente gli faccio ritornare c[prossimaCarta++] )
ma il programma torneo mi inizia a pescare dalla carta numero 11 in poi... funziona bene perche pesca la 11, la 12, la 13... ma parte non dalla 0...
forse perchè le prime 10 carte se le prende il costruttore di mano |
pinauz |
non ho capito tu gli fai returnare c[prossimacarta++] allora prossimacarta cel'hai inizializzata a -1? |
karplus |
Originally posted by pinauz
non ho capito tu gli fai returnare c[prossimacarta++] allora prossimacarta cel'hai inizializzata a -1?
Io ho fatto così; prossimacarta inizializzata a -1, e la prima istruzione di pesca() é prossimacarta++ (mentre x riazzerarla in mescola() solito prossimaCarta=-1); quindi la prima carta che ritorna é quella che sta alla posizione 0.
Inizializzando prossimacarta a 0, non distribuiva mai la prima carta del mazzo (asso di cuori), la saltava sempre. |
karplus |
Originally posted by karplus
Una domanda riguardo al materiale ausiliario che va allegato ai vari java quando verranno sottoposti: bisogna allegare una guida, e un file in cui vengono descritte le principali scelte implementantive, e fin qui ci sono.
Quando Malchiodi ha spiegato il progetto mi pare abbia detto che che nel secondo file bisogna scrivere le variazioni che noi abbiamo apportato alla traccia originaria, mi ricordo che ha detto una roba del tipo "non scrivetemi cosa deve fare il programma che lo so già, é inutile ricopiare la traccia"
Confermate che é così? nel secondo file bisogna inserire e spiegare gli accorgimenti personali? Ma se uno x ipotesi (assurda visto che alcuni punti delle varie classi sono molto ambigui) non cambia niente non dovrebbe scrivere niente?
Poi entrambi i file vanno stampati e allegati anche alla copia cartacea vero? |
pinauz |
Originally posted by karplus
Io ho fatto così; prossimacarta inizializzata a -1, e la prima istruzione di mescola é prossimacarta++, quindi la prima carta che ritorna é quella che sta alla posizione 0.
Inizializzando prossimacarta a 0, non distribuiva mai la prima carta del mazzo (asso di cuori), la saltava sempre.
volevi dire pesca e volevi dire proprio mescola? |
karplus |
pesca, mi sono sbagliato, rileggi il post sopra, ho corretto :D |
pinauz |
da quanto ho capito io o la stampi e la fai avere in direzione o mandi una mail contenente il doc della documentazione |
pinauz |
avevo già fatto così
public class Mazzo
....
int prossimacarta=-1;
...
public Carta pesca(){
prossimacarta++
return....
succede una cosa strana
c[prossimacarta] fa riferimento alla posizione 1
c[prossimacarta-1] fa riferimento alla posizione -1
lo zero me lo salta in ogni caso amenochè non gli dia c[0] ma mi pesca giustamente 52 assi di cuori |
pinauz |
nella classe ManoUguali per confrontare i diversi valori delle carte e per definire il valore da restituire (0 o 2 per le coppie o 3 per i tris o 4 per i poker) mi tocca confrontare i suddetti valori
es (if x0=x1!!x0==x2||x0==x3....)
return 2;
se non fosse che il compilatore mi da errore quando utilizzo gli or e gli and con gli int... come posso fare per scappare a questo errore?
suggerimenti? |
[>>>>VK<<<<] |
Come faccio in mano + alta nel metodo Valore ad accedere all'array di carte in mano? |
escanor |
Ragazzi ma voi come lo sviluppate?Giusto per avere un idea...cioè bisogna mettere una descrizione del perchè abbiamo scelto quello o questo metodo ecc?:? |
karplus |
Bisogna allegare una guida, e un file in cui vengono descritte le principali scelte implementantive, e fin qui ci sono anche io.
Non mi é ben chiaro cosa scrivere nel secondo file, quando Malchiodi ha spiegato il progetto mi pare abbia detto che bisogna scrivere le variazioni che noi abbiamo apportato alla traccia originaria, mi ricordo che ha detto una roba del tipo "non scrivetemi cosa deve fare il programma che lo so già, é inutile ricopiare la traccia"
Confermate che é così? nel secondo file bisogna inserire e spiegare gli accorgimenti personali? Ma se uno x ipotesi (assurda visto che alcuni punti delle varie classi sono molto ambigui) non cambia niente non dovrebbe scrivere niente?
PS ma i metodi setSeme, setValore e ordina li avete mai usati? io li ho implementati nelle rispettive classi, e provandoli in main provvisori funzionanon ma non li ho mai usati in Torneo
PPS ma quando finiscono le carte del mazzo, anche voi salta fuori oltre a nomorecardsexception l'eccezione ArrayIndexOutOfBoundException? |
[>>>>VK<<<<] |
Originally posted by karplus
PPS ma quando finiscono le carte del mazzo, anche voi salta fuori oltre a nomorecardsexception l'eccezione ArrayIndexOutOfBoundException?
La seconda eccezione di cuoi parli te a me capitava perche cercavo di prelevare oggetti aldifuori del limite dell'aray. |
[>>>>VK<<<<] |
mi serve poter scegliere dei numeri casualmente tra 1 e 4, lo zero deve rimanere escluso .
double y=Math.random()*4(se la uso così mi considera lo zero.
con questa istruzione come faccio a digli di sceglermi un numero tra 1 e 4 trascurando lo zero. |
escanor |
Originally posted by karplus
Bisogna allegare una guida, e un file in cui vengono descritte le principali scelte implementantive, e fin qui ci sono anche io.
Non mi é ben chiaro cosa scrivere nel secondo file, quando Malchiodi ha spiegato il progetto mi pare abbia detto che bisogna scrivere le variazioni che noi abbiamo apportato alla traccia originaria, mi ricordo che ha detto una roba del tipo "non scrivetemi cosa deve fare il programma che lo so già, é inutile ricopiare la traccia"
Confermate che é così? nel secondo file bisogna inserire e spiegare gli accorgimenti personali? Ma se uno x ipotesi (assurda visto che alcuni punti delle varie classi sono molto ambigui) non cambia niente non dovrebbe scrivere niente?
Ma guarda che bisogna consegnare UN UNICO documento....:| |
karplus |
Originally posted by escanor
Ma guarda che bisogna consegnare UN UNICO documento....:|
Ah é vero; poco cambia cmq, c'é da fare cmq una guida, ricordo le parole di Malchiodi "dovete fare una guida che deve spiegare a uno che non sa neanche cons'é un computer come giocare con il progetto che avete fatto".
Quindi un file, con guida (detta anche "descrizione modo in cui interfacciarsi con il programma" --> leggasi guida/manuale/tutorial ecc...) e le cose che abbiamo aggiunto al progetto. |
pinauz |
Originally posted by [>>>>VK<<<<]
mi serve poter scegliere dei numeri casualmente tra 1 e 4, lo zero deve rimanere escluso .
double y=Math.random()*4(se la uso così mi considera lo zero.
con questa istruzione come faccio a digli di sceglermi un numero tra 1 e 4 trascurando lo zero.
+1? |
karplus |
Originally posted by [>>>>VK<<<<]
La seconda eccezione di cuoi parli te a me capitava perche cercavo di prelevare oggetti aldifuori del limite dell'aray.
Infatti capita anche a me in quel frangente; non é un problema perché quel frangente non capita mai, però speravo che l'eccezione NoMoreCardsException in qualche modo oscurasse l'arrayindexboundecc...
Speranza vana :D |
pinauz |
porca t****a non mi pesca l'asso di cuoriiiiiiiiiiiiiiiiiiiiiiiiiiiiiii |
karplus |
Sarà mica perché appena chiami pesca() il bel prossimacarta=0 viene incrementato di 1 e quindi pesca la carta che sta al posto 1 dell'array invece che quella che sta al posto 0? :D |
K)M4STER |
Il compilatore non da errore sugli int...
Hai sicuramente sbagliato a scrivere tu!!! |
K)M4STER |
L'ArrayIndexOutOfBoundException non deve "saltar fuori", è perchè tentate di inserire un oggetto nell'array in una posizione non valida...
es:
int[] c = new int[5];
c[5]=4;
lancia l'eccezione ArrayIndexOutOfBoundException, perchè "c" è formato da 5 elementi che sono nelle posizioni 0,1,2,3,4. |
karplus |
Lo so, mi salta fuori se non rimescolo il mazzo dopo 5 giocate. Speravo solo che il nomorecardsexception che salta fuori insieme ad arryindexboundecc... potesse oscurare la seconda eccezione, tutto qui.
Ma visto che ogni 5 giocate il mazzo viene rimescolato il problema non si pone :D |
pinauz |
Originally posted by karplus
Sarà mica perché appena chiami pesca() il bel prossimacarta=0 viene incrementato di 1 e quindi pesca la carta che sta al posto 1 dell'array invece che quella che sta al posto 0? :D
se guardi un paio di post prima ho descritto la situazione...
io prossimacarta lìho inizializzata a -1 pesca() me lo incrementa ma la prima carta che mi da è c[1] |
pinauz |
si infatti ho notato che strippa solo in determinati casi s'incazza quando non metti le parentesi come vuole lui |
|
|
|
|