 | |
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 |
pinauz |
la classe ManoUguale però non gestisce la doppia coppia: se una mano ha una coppia e la seconda due la partita finisce cmq in parità... |
[>>>>VK<<<<] |
come faccio in TORNEO a istanziare elementi delle classi ManoPiuùAlta, ManoPiuBassa, ManoUguali,ManoBriscola.
sono abstract e mi da questo errore:
"Mano..... is abstract; cannot be instantiated"
help mi manca poco alla fine. |
dayfallen |
Originally posted by [>>>>VK<<<<]
come faccio in TORNEO a istanziare elementi delle classi ManoPiuùAlta, ManoPiuBassa, ManoUguali,ManoBriscola.
sono abstract e mi da questo errore:
"Mano..... is abstract; cannot be instantiated"
help mi manca poco alla fine.
ManoPiuAlta non dovevi dichiararlo astratto... e così nessun'altra di quelle... solo Mano è astratta ;) |
dayfallen |
Originally posted by pinauz
la classe ManoUguale però non gestisce la doppia coppia: se una mano ha una coppia e la seconda due la partita finisce cmq in parità...
Non lo gestisce ma non è richiesto che lo gestisca...:-D |
K)M4STER |
:-D
E poverino, ha anche ragione!!! |
pinauz |
si ha SEMPRE ragione lui |
pinauz |
Originally posted by 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:
allora sono anch'io una donna ah ah ah ah |
K)M4STER |
E' inoltre richiesto di consegnare, entro venerdì 11 febbraio 2005, una copia cartacea della stampa del codice sorgente prodotto in portineria del DSI o nella casella di posta del docente...
Sapreste darmi l'indirizzo preciso? |
dayfallen |
Originally posted by K)M4STER
E' inoltre richiesto di consegnare, entro venerdì 11 febbraio 2005, una copia cartacea della stampa del codice sorgente prodotto in portineria del DSI o nella casella di posta del docente...
Sapreste darmi l'indirizzo preciso?
Via Comelico, 39/40 ? |
karplus |
Ho appena trovato una postilla che non mi piace nella descrizione della classe Torneo.
Il metodo deve anche prevedere la gestione di eventuali
eccezioni che possono venire lanciate durante l'esecuzione della
classe.
Cioè bisognerebbe mettere un try-catch all'interno di ogni gioco, ovvero comprendere con un try ogni gioco, giusto?
Se metto un catch x nomorecards dopo la fine del try che ha abbracciato tutto il relativo gioco ManoXXX, il compilatore mi dice che nel try non c'é alcuna condizione perché nomorecards venga lanciato! Ma se il try comprende tutto il gioco scelto che a sua volta comprende i vari getcarta che fanno capo a pesca che ha all'interno la gestione e il relativo throw di questa eccezione!!!
Io avevo fatto semplicemente che ogni 5 partite il mazzo veniva ri-mischiato, ma temo bisogni usare un try-catch e rimischiare quando salta fuori il nomorecards vero?
però non mi viene sto try catch... :( |
filipp8 |
se non usi nessun try e catch il compilatore ti dice quando c'è qualche eccezione non gestita... semplicemente non compila, quindi sai esattamente dove si può presentare l'eccezione perché ti salta fuori l'errore in fase di compilazione... lì metti un try e catch... |
karplus |
Il compilatore non mi dice di eccezioni non gestite, compila tranquillamente.
Ma quando eseguo il programma l'eccezione nomorecardsexception salta fuori quando creo un qualsiasi Manoxxx dopo 5 partite, allora ho messo la costruzione di questo oggetto in un try e dopo il catch nomorecards ma il compilatore si ostina a dirmi la stessa cosa di prima!
Se invece scelgo di intercettare ArrayIndexOutOfBoundsException e faccio che quando viene intercettata il mazzo viene rimescolato tutto funziona, per cui faccio così. :D |
pinauz |
come avete creato il costruttore di ManoBriscola? il testo dice che bisogna implementare il costruttore che ha argoemento solo mazzo. a questo punto il seme briscola va creato nel main e non nel corpo della classe giusto? |
dayfallen |
Originally posted by pinauz
come avete creato il costruttore di ManoBriscola? il testo dice che bisogna implementare il costruttore che ha argoemento solo mazzo. a questo punto il seme briscola va creato nel main e non nel corpo della classe giusto?
Rileggi bene il testo ;) |
K)M4STER |
In torneo il presentarsi o meno di eventuali eccezioni dipende da come avete scritto il codice, la richiesta è solo di gestire le "EVENTUALI ECCEZIONI", se non ce ne sono non preoccupatevi!!! |
karplus |
Ah, io ho tolto l'if che mi rimescolava le carte ogni 5 partite per mettere un try-catch che intercetta l'eccezione che con il mio if precedente non sarebbe mai stata lanciata :|
Sono quantomeno dubbioso se rimettere l'if di prima o lasciare questo try-catch, il risultato é lo stesso ma imho era più elegante l'if. :x
Ah, quando una partita finisce in pareggio voi aggiungete una vittoria x ogni giocatore o non aggiungete niente? |
filipp8 |
io non aggiungo niente... |
pinauz |
Originally posted by dayfallen
Rileggi bene il testo ;)
il costruttore manobriscola (mazzo, briscola) da implementare tramite chiamata al costruttore della classe mano unitamente all'impostazione della variabile d'istanza briscola
cioè bisogna creare una mano con le sole carte della briscola? |
filipp8 |
no, la mano la crei come hai sempre fatto... il Seme che ti determina la briscola influisce solo sul metodo valore()... |
pinauz |
cioè no scusa ho detto una c******a; non mi torna una cosa se il costruttore di mano vuole come argomenti un mazzo e un seme io gli devo dare cmq un seme generico che poiviene reimpostato automaticamente? |
pinauz |
Originally posted by filipp8
no, la mano la crei come hai sempre fatto... il Seme che ti determina la briscola influisce solo sul metodo valore()...
ok ma il seme viene fuori a caso con il random quindi se voglio fare una partita e creo due mani briscola mi vengono fuori due mani con il seme diverso tra loro |
filipp8 |
il seme non lo devi determinare nel costruttore, ma prima...
fai un
Seme s = new Seme(Math.random ecc ecc);
ManoBriscola a = new ManoBriscola (m, s);
ManoBriscola b = new ManoBriscola (m, s);
così hai due mani e la briscola è la stessa... |
zak84 |
comunque è vero, il mio problema è che mano già pesca 5 carte a testa, ed è per quello che durante la giocata di torneo perdo nel nulla 10 carte... non sò come risolverlo...
il mio costruttore mano è cosi
abstract class Mano
{
CODICE TAGLIATO COME DA REGOLAMENTO
}
funzionano tutti da dio e sempre, ma perdo le prime 10 carte del mazzo... come se fosse un mazzo da 40... capite? |
filipp8 |
ti consiglio di togliere il codice, è vietato postarlo per intero...
cmq io l'ho risolta così...
creo tutto il necessario, mazzo e mani quind, chiedo all'utente quante partite vuole fare, chiudo la gestione della partita in un for che per ultima istruzione ha un bel distribuisci()...
così la prima partita la si fa con le carte pescate dal costruttore, le seguenti dal metodo distribuisci()...
così non si spreca nessuna carta... (ovviamente nel for va gestita l'eccezione NoMoreCardsException che, quando catturata, lancia il metodo mescola() seguito da un bel distribuisci()...
funziona tutto alla grande....
ripeto, togli il codice...
ciao |
yoruno |
Originally posted by zak84
il mio costruttore mano è cosi
Intervento del moderatore: "Era"; sorry ma per Regolamento è vietato postare codice di elaborati in corso :) |
pinauz |
Originally posted by filipp8
il seme non lo devi determinare nel costruttore, ma prima...
fai un
Seme s = new Seme(Math.random ecc ecc);
ManoBriscola a = new ManoBriscola (m, s);
ManoBriscola b = new ManoBriscola (m, s);
così hai due mani e la briscola è la stessa...
il testo dice: la classe deve contenere:
...
-la variabile d'istanza Seme briscola che indica qual'è il seme corrispondente alla briscola
cioè la inzializzo con il seme specificato come secondo argomento?
io all'inizio avevo fatto così ma il grande dayfallen con una delle sue risposte ermetiche mi aveva confuso le idee |
dayfallen |
Originally posted by pinauz
come avete creato il costruttore di ManoBriscola? il testo dice che bisogna implementare il costruttore che ha argoemento solo mazzo. a questo punto il seme briscola va creato nel main e non nel corpo della classe giusto?
Non mi pare tu avessi fatto così visto che in quello che scrivi qui avevi detto che l'unico argomento di ManoBriscola fosse "mazzo"... |
zak84 |
se faccio così però non da la prima carta al primo, la seconda al secondo, la terza al primo... e così via. ma da le prime 5 carte al primo e le secondee 5 al secondo... |
escanor |
Ragazzi nell'archivio .zip andavano consegnati i file .java o i file .class del programma? |
[>>>>VK<<<<] |
Originally posted by escanor
Ragazzi nell'archivio .zip andavano consegnati i file .java o i file .class del programma?
.java altrimenti nn te lo sottopone. |
[>>>>VK<<<<] |
IL codice sorgente va stampato in bianco e nero o a colori (i vari colori per evidenziare le keywords,le stringhe i simbolie..)
P.S
Cosa intendono quando dicono che si devono descrivere le implementazioni fatte???
Se io ho seguito il testo e implementazioni alle clesi nn ne ho fatte nn devo scrivere niente, giusto? |
escanor |
E l'archivio .zip va rinominato in maniera particolare o basta consegnare tipo "progetto2005.zip"? |
Voodoo |
Originally posted by [>>>>VK<<<<]
IL codice sorgente va stampato in bianco e nero o a colori (i vari colori per evidenziare le keywords,le stringhe i simbolie..)
P.S
Cosa intendono quando dicono che si devono descrivere le implementazioni fatte???
Se io ho seguito il testo e implementazioni alle clesi nn ne ho fatte nn devo scrivere niente, giusto?
Devi cmq scrivere un breve allegato che spiega come hai fatto il progetto...se lo hai seguito alla lettera e non hai aggiunto alcun metodo o classe,descrivi magari l'ordine con cui hai implemetato le classi o spiega sommariamente come hai fatto a risolvere certi metodi particolarmente significativi per il progetto...(che so io,mescola(),ordina(),valore() ...).
Il nome che si dà allo zip è insignificante,basta che nn scrivi parolacce,insulti,ecc ...:-D
scrivere in un commento sopra ogni sorgente:
-componenti del gruppo e loro matricola;
-turno e prof di riferimento;
ok?? |
escanor |
Originally posted by Voodoo
Devi cmq scrivere un breve allegato che spiega come hai fatto il progetto...se lo hai seguito alla lettera e non hai aggiunto alcun metodo o classe,descrivi magari l'ordine con cui hai implemetato le classi o spiega sommariamente come hai fatto a risolvere certi metodi particolarmente significativi per il progetto...(che so io,mescola(),ordina(),valore() ...).
Il nome che si dà allo zip è insignificante,basta che nn scrivi parolacce,insulti,ecc ...:-D
scrivere in un commento sopra ogni sorgente:
-componenti del gruppo e loro matricola;
-turno e prof di riferimento;
ok??
Ok grazie!:) |
ToBlEr:OnE |
Ciao programmers!
Mi spiegate una cosa della classe mano? Essa deve contenere un metodo astratto, giusto?
Quindi la devo dichiarare classe astratta? Public abstract class? E anche il metodo, giusto? Peccato che così facendo il compilatore mi dia errore... voi che avete fatto? |
zak84 |
ti da errore perchè non si scrive public abstract class, ma solo abstract class |
pinauz |
Originally posted by filipp8
ti consiglio di togliere il codice, è vietato postarlo per intero...
cmq io l'ho risolta così...
creo tutto il necessario, mazzo e mani quind, chiedo all'utente quante partite vuole fare, chiudo la gestione della partita in un for che per ultima istruzione ha un bel distribuisci()...
così la prima partita la si fa con le carte pescate dal costruttore, le seguenti dal metodo distribuisci()...
così non si spreca nessuna carta... (ovviamente nel for va gestita l'eccezione NoMoreCardsException che, quando catturata, lancia il metodo mescola() seguito da un bel distribuisci()...
funziona tutto alla grande....
ripeto, togli il codice...
ciao
il testo dice che l'utente dev poter scegliere la modalità di distribuzione delle carte cioè
metodo 1: 5 carte alla volta
metodo 2: 1 carta alla volta
detto questo non mi torna una cosa:
per dare 5 carte alla volta creo semplicemente due oggetti manopiualta manopiubassa etc..
per dare una carta alla volta io uso il metodo m.distribuisci ma per poterlo fare devo cmq creare due oggetti di manopiualta,manupoubassaetc che mi tolgono le 10carte automaticamente quando vengono create
tu come hai fatto scusa? |
[>>>>VK<<<<] |
Originally posted by Voodoo
Devi cmq scrivere un breve allegato che spiega come hai fatto il progetto...se lo hai seguito alla lettera e non hai aggiunto alcun metodo o classe,descrivi magari l'ordine con cui hai implemetato le classi o spiega sommariamente come hai fatto a risolvere certi metodi particolarmente significativi per il progetto...(che so io,mescola(),ordina(),valore() ...).
Il nome che si dà allo zip è insignificante,basta che nn scrivi parolacce,insulti,ecc ...:-D
scrivere in un commento sopra ogni sorgente:
-componenti del gruppo e loro matricola;
-turno e prof di riferimento;
ok??
Per quanto riguarda il codice va bene anche in bianco e nero?? |
Voodoo |
Originally posted by pinauz
il testo dice che l'utente dev poter scegliere la modalità di distribuzione delle carte cioè
metodo 1: 5 carte alla volta
metodo 2: 1 carta alla volta
detto questo non mi torna una cosa:
per dare 5 carte alla volta creo semplicemente due oggetti manopiualta manopiubassa etc..
per dare una carta alla volta io uso il metodo m.distribuisci ma per poterlo fare devo cmq creare due oggetti di manopiualta,manupoubassaetc che mi tolgono le 10carte automaticamente quando vengono create
tu come hai fatto scusa?
No.
Ecco il prototipo del metodo distribuisci:
public void distribuisci(Mano uno,Mano due);
Come vedi non c'è da creare di nuovo due mani ma utilizzare quelle già create,anke perkè il metodo distribuisci usa il metodo pesca della classe Mazzo,il quale tiene conto delle carte date tramite la variabile prossimaCarta...
poi io ho fatto accedere il metodo all'array di carte della mano,quindi non rendendo private quest'ultima...
Spero di essere stato chiaro |
Voodoo |
Per quanto riguarda il codice va bene anche in bianco e nero??
ma certo!!! |
Voodoo |
Originally posted by zak84
ti da errore perchè non si scrive public abstract class, ma solo abstract class
Sbagliato.
L'errore di tobierone dev'essere un altro,il modificatore non c'entra nulla.
Ricordo che le classi astratte devono avere almeno un metodo astratto che NON abbia il corpo del metodo implementato,perkè lo devono fare le sottoclassi delle stesse.
:) |
pinauz |
Originally posted by Voodoo
No.
Ecco il prototipo del metodo distribuisci:
public void distribuisci(Mano uno,Mano due);
Come vedi non c'è da creare di nuovo due mani ma utilizzare quelle già create,anke perkè il metodo distribuisci usa il metodo pesca della classe Mazzo,il quale tiene conto delle carte date tramite la variabile prossimaCarta...
poi io ho fatto accedere il metodo all'array di carte della mano,quindi non rendendo private quest'ultima...
Spero di essere stato chiaro
infatti non devi creare due mani perchè devi averle già create ma se le hai già create m1=new ManoPiuAlta(Mazzo m) m2=new ManoPiuAlta(m) hai già dato 5 carte alla mano 1 e 5 carte alla mano 2 e perchè il costruttore di mano è c[i].pesca(m) e il metodo pesca setta la variabile prossimacarta |
ToBlEr:OnE |
Originally posted by Voodoo
Sbagliato.
L'errore di tobierone dev'essere un altro,il modificatore non c'entra nulla.
Ricordo che le classi astratte devono avere almeno un metodo astratto che NON abbia il corpo del metodo implementato,perkè lo devono fare le sottoclassi delle stesse.
:)
Quoto e confermo! Sbagliavo semplicemente a dare un corpo al metodo con le graffe!
Grazie mille!
Però nella classe ManoPiuAlta come si fa ad implementare sto metodo valore, se non posso richiamare le variabili della classe Mano? |
Voodoo |
infatti non devi creare due mani perchè devi averle già create ma se le hai già create m1=new ManoPiuAlta(Mazzo m) m2=new ManoPiuAlta(m) hai già dato 5 carte alla mano 1 e 5 carte alla mano 2 e perchè il costruttore di mano è c[i].pesca(m) e il metodo pesca setta la variabile prossimacarta
Non capisco se hai risolto il problema o se c'è ancora qualcosa che ti turba...
Facendo un riassuntino:
1)il costruttore di mano pesca dal mazzo 5 carte e le assegna alle posizioni del proprio array;
2)il metodo pesca accede alla posizione dell'array che rappresenta il mazzo di carte,indicata dalla variabili prossima carta;
3)il metodo distribuisci sfrutta (per come l'ho fatto io)il metodo pesca accedendo alla variabile c[] di mano e sfruttando il metodo pesca prima per una mano e poi per un'altra;
4)Una volta create le due mani,nella classe Torneo se sfrutti la modalità distribuisci una carta alla volta usi il metodo distribuisci, altrimenti crei di nuovo due oggetti Mano che pescheranno 5 carte a testa e terranno conto della posizione...
stop |
pinauz |
Originally posted by Voodoo
Non capisco se hai risolto il problema o se c'è ancora qualcosa che ti turba...
Facendo un riassuntino:
1)il costruttore di mano pesca dal mazzo 5 carte e le assegna alle posizioni del proprio array;
2)il metodo pesca accede alla posizione dell'array che rappresenta il mazzo di carte,indicata dalla variabili prossima carta;
3)il metodo distribuisci sfrutta (per come l'ho fatto io)il metodo pesca accedendo alla variabile c[] di mano e sfruttando il metodo pesca prima per una mano e poi per un'altra;
4)Una volta create le due mani,nella classe Torneo se sfrutti la modalità distribuisci una carta alla volta usi il metodo distribuisci, altrimenti crei di nuovo due oggetti Mano che pescheranno 5 carte a testa e terranno conto della posizione...
stop
no che non ho risolto!
fermati al tuo punto 4: per poter usare la modalità distribuisci devi aver già creato le due mani che ti hanno già tolto 5 carte a testa! anche se poi le carte glie le cambi con quelle che distribuisci hai cmq buttato via 10carte! |
muffi3005 |
Aiuto!
Ma il vostro programma come si svolge?
Io lancio torneo, questo mi chiede di scegliere tra i 4 giochi, dopodiche' scelgo in numero di giocate e la modalita' di distribuzione, poi per ogni mano guardo se chi vince o chi perde perso...
sommo il numero di vinte e vedo se ho vinto il gioco...
finisce cosi' ..? in realta' non si gioca a niente ma si vede solo cosa mi capita di volta in volta...
non e' che il giocatore deve anche fare oter cambiare le carte e quelle cose li' vero?
grazie!
ciao!!! |
[>>>>VK<<<<] |
Originally posted by muffi3005
Aiuto!
Ma il vostro programma come si svolge?
Io lancio torneo, questo mi chiede di scegliere tra i 4 giochi, dopodiche' scelgo in numero di giocate e la modalita' di distribuzione, poi per ogni mano guardo se chi vince o chi perde perso...
sommo il numero di vinte e vedo se ho vinto il gioco...
finisce cosi' ..? in realta' non si gioca a niente ma si vede solo cosa mi capita di volta in volta...
non e' che il giocatore deve anche fare oter cambiare le carte e quelle cose li' vero?
grazie!
ciao!!!
si, in realta è un susseguirsi di stampate di carte ( quelle che ha in mano l'utente), e di verdetti di vittoria/sconfitta/pareggio.
in fondo ha tutto se vuoi un consiglio per fare una finezza chiedi se vogliono tonare al menu principale, a seconda della risposta torni o esci. |
muffi3005 |
ah ok!
mi stava venendo il "dubbio esistenziale il giorno prima della consegna"
acc.. :asd:
Grazie!!!
ciao |
zak84 |
no che non ho risolto!
fermati al tuo punto 4: per poter usare la modalità distribuisci devi aver già creato le due mani che ti hanno già tolto 5 carte a testa! anche se poi le carte glie le cambi con quelle che distribuisci hai cmq buttato via 10carte!
esatto è proprio questo il mio problema... e vi chiedo un aiuto assurdo... se non potete in un topic ditemelo via email...
grazie anticipato |
pinauz |
Originally posted by zak84
esatto è proprio questo il mio problema... e vi chiedo un aiuto assurdo... se non potete in un topic ditemelo via email...
grazie anticipato
meno male pensavo di essere l'unico! o miraccomando appena sai qualcosa fai un segnale! |
dayfallen |
Originally posted by pinauz
meno male pensavo di essere l'unico! o miraccomando appena sai qualcosa fai un segnale!
Penso ce l'abbiano tutti quel problema se hanno seguito alla lettera il testo...:sad: |
[>>>>VK<<<<] |
ma cosa si deve consegnare di cartaceo, solo il codice sorgente e basta oil codice sorgente + la documentazione? |
dayfallen |
Originally posted by [>>>>VK<<<<]
ma cosa si deve consegnare di cartaceo, solo il codice sorgente e basta oil codice sorgente + la documentazione?
Penso anche la documentazione ma non ne sono sicuro...:sad: |
[>>>>VK<<<<] |
Per la consegna del codice va consegnato in busta chiusa con su il nome del docente ? |
dayfallen |
Originally posted by [>>>>VK<<<<]
Per la consegna del codice va consegnato in busta chiusa con su il nome del docente ?
Boooh:? qualcuno lo sa? |
pinauz |
Originally posted by dayfallen
Penso ce l'abbiano tutti quel problema se hanno seguito alla lettera il testo...:sad:
in effetti basta modificare un pò le classi per gestire il problema ci vuole solo un pò di fantasia |
pinauz |
non ci credo sono riuscito a finire quasi tutto e funziona! non ci avrei mai scommesso! devo solo sistemare la modlità di distribuzione ma penso di lasciarla così com'è...solo una cosa non mi torna e spero che qualcuno mi aiuti dato che ormai siamo agli sgoccioli:
per la scelta del gioco ho fatto:
switch(scelta){
case 'a':
....
case 'b':
...
case 'c':
...
case 'd':
...
default:
...}
solo che finita l'esecuzione del gioco scelto il programma comincia ad eseguire il gioco successivo. ad esempio se scelgo 'a' finita l'esecuzione di 'a' mi parte automaticamente l'esecuzione di 'b' e via via 'c' e 'd' compreso il default da cosa può dipendere?
le parentesi le ho messe come indicato sopra |
karplus |
direi che mancano i break alla fine di ogni gioco :D |
pinauz |
Originally posted by karplus
direi che mancano i break alla fine di ogni gioco :D
sono proprio un pirla! |
filipp8 |
ragazzi, ho letto che qualcuno ha fatto il metodo ordina() in una riga...
io l'ho fatto, ma è tutt'altro che semplice e corto... ho perfino scomodato i vector...
non è che qualcuno mi da una dritta? |
karplus |
Avevamo fatto un es in cui bisognava ordinare un array e lì veniva fornito un algoritmo, io ho usato pari pari quello + il compareTo di carta, e funziona da dio.
Solo che non l'ho implementato ordina in torneo perché non é richiesto. Voi? |
filipp8 |
ecco, lo sapevo, io non ho seguito le lezioni perché devo fare solo il progetto e mi sono perso i consigli del prof... |
Docguitar |
Ma la gestione delle eccezzioni (quindi le cndizioni e i messaggi) l'avete fatta nella main di torneo (come insegnano le regole della buona programmazione) o all'interne delle classi?? |
moonska |
ciao a tutti,
ho un problema per quanto riguarda l'implementazione dell'interfaccia Comparable.
Nel metodo compareTo per esempio della classe Seme bisogna gestire l'eccezione InvalidCardException. Nel caso per appunto avviene l'eccezione che cosa ritornate 0, -1 o 1? |
zak84 |
per l'eccezione ho messo ogni volta il try catch quando trovavo il metodo distribuisci nel torneo. per spiegazioni accurate solo via email...
allora nessuno ha risolto il mio problema(e anche di altri) delle 10 carte perse?
grazie |
Docguitar |
io dopo ogni creazione di mazzo e delle 2 mani nel torneo faccio che riazzerare prossimaCarta.. |
dayfallen |
Originally posted by filipp8
ragazzi, ho letto che qualcuno ha fatto il metodo ordina() in una riga...
io l'ho fatto, ma è tutt'altro che semplice e corto... ho perfino scomodato i vector...
non è che qualcuno mi da una dritta?
Io l'ho fatto in una riga ^_^... basta aver implementato bene l'interfaccia comparable in seme, valore e carta... e basta usare un bel metodo che hanno gli Array in Java... 1 riga non è un'esagerazione... è proprio 1 riga... |
Odeen |
raga sono incasinato!
non capisco come fare il metodo distribuisci(Mano, Mano)
qualche anima pia può darmi delle indicazioni?
grazie mille |
karplus |
usa il setCarta e dei bei for :D |
Voodoo |
Originally posted by Odeen
raga sono incasinato!
non capisco come fare il metodo distribuisci(Mano, Mano)
qualche anima pia può darmi delle indicazioni?
grazie mille
io ho usato ancora il metodo pesca con un for che distribuisce 5 carte ciascuno...quindi ripete il pesca() 5 volte...poi faccio accedere il tutto direttamente alla variabile d'istanza di mano,che quindi nn ho dikiarato private... |
Voodoo |
Originally posted by moonska
ciao a tutti,
ho un problema per quanto riguarda l'implementazione dell'interfaccia Comparable.
Nel metodo compareTo per esempio della classe Seme bisogna gestire l'eccezione InvalidCardException. Nel caso per appunto avviene l'eccezione che cosa ritornate 0, -1 o 1?
Beh gli fai tornare quello che vuoi alla fine...io gli ho fatto tornare 1 nel caso il paragone fosse positivo e -1 nel caso fosse negativo...cioè a me interessava vedere se l'argomento passato al metodo avesse lo stesso seme di quello dato come parametro,che sarebbe poi la briscola... ;) |
Voodoo |
Originally posted by karplus
Avevamo fatto un es in cui bisognava ordinare un array e lì veniva fornito un algoritmo, io ho usato pari pari quello + il compareTo di carta, e funziona da dio.
Solo che non l'ho implementato ordina in torneo perché non é richiesto. Voi?
no,ordina è un metodo che ho usato praticamente per ManoPiuAlta e ManoPiuBassa,perkè mi semplificava di molto il codice delle suddette...
In torneo nn l'ho messo quindi.
Ho usato un BubbleSort per questo metodo,ma ho visto che dayfallen l'ha fatto in una riga...bravo!IO NO:sad: |
dayfallen |
Originally posted by Voodoo
no,ordina è un metodo che ho usato praticamente per ManoPiuAlta e ManoPiuBassa,perkè mi semplificava di molto il codice delle suddette...
In torneo nn l'ho messo quindi.
Ho usato un BubbleSort per questo metodo,ma ho visto che dayfallen l'ha fatto in una riga...bravo!IO NO:sad:
Leggete nelle API i metodi della classe Arrays... non posso dirvi tutto che è già troppo banale... |
ToBlEr:OnE |
Vi faccio una domanda: voi nella briscola come fate a decidere qual'è il seme incriminato, la briscola appunto?
Io pensavo di fare random tra i quattro semi, però non so se va bene... Che dite? |
karplus |
Originally posted by dayfallen
Leggete nelle API i metodi della classe Arrays... non posso dirvi tutto che è già troppo banale...
Mi tengo il mio che é ben collaudato, 4 righe al posto di 1 non mi cambieranno di certo il voto.
Cmq ora che ci penso negli es di laboratorio avevamo usato java.util.Arrays.sort() che ordinava un array di numeri. |
pinauz |
Originally posted by ToBlEr:OnE
Vi faccio una domanda: voi nella briscola come fate a decidere qual'è il seme incriminato, la briscola appunto?
Io pensavo di fare random tra i quattro semi, però non so se va bene... Che dite?
io ho fatto il random *4+1 dato che ti approssima per diftto quando fai il cast ad int può uscire 1,2,3 o 4 |
pinauz |
Originally posted by Voodoo
io ho usato ancora il metodo pesca con un for che distribuisce 5 carte ciascuno...quindi ripete il pesca() 5 volte...poi faccio accedere il tutto direttamente alla variabile d'istanza di mano,che quindi nn ho dikiarato private...
idem |
filipp8 |
Originally posted by dayfallen
Leggete nelle API i metodi della classe Arrays... non posso dirvi tutto che è già troppo banale...
mi lancia ClassCastException
sto disperato... |
K)M4STER |
io per la briscola ho usato un metodo più semplice e volendo vedere anche più azzeccato... Pesco una carta e guardo il seme! |
karplus |
quando crei un oggetto manobriscola nell'argomento esige anche il seme della briscola, se non lo determini prima come fai ad ottenerlo dalla ManoBriscola stessa visto che non la puoi creare a causa della mancanza del seme della briscola in argomento? |
pinauz |
Originally posted by karplus
quando crei un oggetto manobriscola nell'argomento esige anche il seme della briscola, se non lo determini prima come fai ad ottenerlo dalla ManoBriscola stessa visto che non la puoi creare a causa della mancanza del seme della briscola in argomento?
la può sempre pescare prima di creare gli oggetti manobriscola! cmq il metodo non mi sembra tanto sicuro assicurati piuttosto che la carta che peschi per la briscola torni a suo posto prima di creare gli oggetti manobriscola altrimenti la carta per la briscola non verrà mai inizializzata |
filipp8 |
si può fare a meno di pescare la carta per guardare il seme, basta considerare la carta che è al primo posto nell'array... |
pinauz |
Originally posted by filipp8
si può fare a meno di pescare la carta per guardare il seme, basta considerare la carta che è al primo posto nell'array...
si ma se fai così è logico che tu o il computer abbiate una briscola in mano amenochè tu non faccia mescolare il mazzo prima di creare le mani ma se fai così non puoi fare più di una mano senza mescolare il mazzo! |
filipp8 |
questo è vero, cmq non penso sia un grosso problema...
chi mi aiuta con il sort()? |
Odeen |
scusate, ma farlo scegliere all'utente il seme per la briscola? no? |
pinauz |
Originally posted by filipp8
questo è vero, cmq non penso sia un grosso problema...
chi mi aiuta con il sort()?
non so cosa sia mi spiace |
pinauz |
Originally posted by Odeen
scusate, ma farlo scegliere all'utente il seme per la briscola? no?
anche però non mi sembra molto coerente. ma vi fa schifo il math.random? |
pinauz |
bella ho finito tutto compreso l'allegato! ci sentiamo l'anno prossimo |
K)M4STER |
la può sempre pescare prima di creare gli oggetti manobriscola! cmq il metodo non mi sembra tanto sicuro assicurati piuttosto che la carta che peschi per la briscola torni a suo posto prima di creare gli oggetti manobriscola altrimenti la carta per la briscola non verrà mai inizializzata
Ma dici a me?
E perchè dovrebbe tornare a suo posto la carta? Ma scusa, quando giochi a briscola mica peschi una carta e la metti da parte per ricordare il seme? Ecco io faccio così, se la pesco come briscola non può finire in mano a un giocatore... Non mi sembra un errore, anzi... |
fulminato1 |
di solito a briscola il seme che determina la briscola è quello dell'ultima carta del mazzo che viene girata sotto il resto e ovviamente alla fine può essere pescata da qualsiasi giocatore!!
alle superiori cosa facevate??lezione??;);:D |
Odeen |
ciao raga!
ma cosa intende ilprof con la voce "modalità di distribuzione delle carte..." nella classe Torneo? |
yoruno |
Originally posted by Odeen
ciao raga!
ma cosa intende ilprof con la voce "modalità di distribuzione delle carte..." nella classe Torneo? leggi più sopra nel thread... |
moonska |
Originally posted by Odeen
ciao raga!
ma cosa intende ilprof con la voce "modalità di distribuzione delle carte..." nella classe Torneo?
devi far decide all'utente se vuole distribuire le carte 5 alla volta utilizzando il costruttore della classe Mano, o una alla volta utilizzando il metodo distribuisci della classe Mazzo.
Io ho capito cosi. :-D |
grazy84 |
Mano.java:29;class expected
return (CARTA)C[].get(CARTA);
Non riesco a capire perche mi da sempre questo err....
Qualche suggerimento... |
pinauz |
Originally posted by K)M4STER
Ma dici a me?
E perchè dovrebbe tornare a suo posto la carta? Ma scusa, quando giochi a briscola mica peschi una carta e la metti da parte per ricordare il seme? Ecco io faccio così, se la pesco come briscola non può finire in mano a un giocatore... Non mi sembra un errore, anzi...
si ok ma è anche vero che nella briscola reale l'asso e il re sono le carte più alte mentre qui sono le più basse questa non è briscola è un gioco inventato da malchiodi cmq penso anzi spero che non guardi questi piccoli particolari del gioco |
K)M4STER |
Si infatti, credo e spero che gli interessi il programma sotto un puro e semplice aspetto informatico... |
|
|
|
|