Tombola

di il
9 risposte

Tombola

Buongiorno!
qualcuno si metterà le mani sui capelli, ma si! sono tornato!
in verità non volevo chiedere aiuto, ma solo la vostra opinione su come ho strutturato, a livello uml, questo progetto. giusto per capire se a livello concettuale ho capito bene tutto, e quindi se le mie classi son fatte bene oppure se manca ancora qualcosa.
se avete voglia di leggervi queste poche righe e darmi la vostra opinione, ve ne sarei grato
(p.s. per chi mi dirà "studia", lo sto facendo ahahah sto usando il manuale, e anzi dopo farò un altro post su una cosa fatta in classe che non ho ben capito ma spiego di là)
dato che il file di staruml non lo ho qua con me al momento, faccio un breve riepilogo scritto di come l'ho strutturato, di cosa dovrebbe fare e della consegna, e delle mie aggiunte

1) consegna
sviluppare il gioco della tombola. ovviamente più che chiedere all'utente quanti giocatori inserire, e quindi quante cartelle creare, non ci sarà ulteriore interazione con l'utente, salvo in caso di estrazione manuale dei numeri

2) quello che voglio fare io
voglio avere un frame che contiene il tabellone e che mi estrae i numeri. qua sono indeciso su 2 strade da seguire:
a) mano a mano che i numeri vengono estratti compaiono sul tabellone
b) mano a mano che i numeri vengono estratti, la casella corrispondente si colora, a indicare che è stato estratto
poi voglio avere un metodo che mi crea n frame (diciamo massimo 10) con la cartella del giocatore, e anche qua, quando un numero viene estratto e corrisponde a quello presente in una cartella, colora la casella corrispondente
a questo punto voglio avere 2 metodi di estrazione
a) quello automatico tramite l'uso di un timer
b) quello manuale tramite la pressione di un bottone

3) cosa deve fare
niente, semplicemente estrarre e confrontare i numeri e dichiarare il vincitore

4) progetto
main Tombola:
invocazione frame tabellone

classe frame:
questa classe si occuperà esclusivamente della creazione del frame che visualizzeranno il tabellone e le cartelle, non sto a mettere tutti i metodi e gli attributi perché senno viene troppo lunga come cosa, ma sostanzialmente avrò un metodo che mi crea il frame cartella (creaCartella), che si appoggerà alla classe cartella, e il metodo che mi crea il tabellone (creaTabellone) che mi creerà il tabellone

classe bancone:
attributi:
sacchetto: list di 90 numeri //non ero sicuro se metterla qua o nel tabellone
metodi:
estrai(); //estrae un numero dal sacchetto
isEmpty(); //controlla se il sacchetto è vuoto, non credo abbia comunque senso metterlo perché un giocatore dovrebbe vincere prima che il sacchetto sia vuoto

classe cartella
attributi:
cartella[9][3]; //conterrà i numeri della mia cartella
metodi:
Cartella(); //costruttore che mi crea la cartella
generaCartella(); //metodo che mi genera i numeri nella cartella, eseguendo gli opportuni controlli per quanto riguarda i doppioni, le decine etc
checkCombinazioni(); //nome provvisorio, controllerà i numeri che sono usciti e in caso di combinazioni vincenti, ambo terno etc, manderà un breve messaggio
segna(); //indicherà in qualche modo che un numero è stato estratto

classe tabellone
attributi:
tabellone: list int //lista di 90 numeri che costituiranno il mio tabellone
metodi:
segna(); //indicherà in qualche modo che un numero è stato estratto

ok teoricamente dovrebbe esserci tutto, un po' scarno, e sicuramente ho dimenticato qualcosa, non avendo sottomano l'uml fatto ieri, ma l'idea generale è questa:
ho il banco, ossia chi gestisce il tabellone, che mi estrae i numeri, (e probabilmente il metodo per segnare quelli usciti andrebbe qua), poi ho il tabellone che mi segna quelli usciti, e infine ho le cartelle che mi segnano i numeri usciti e diranno quando faranno punto (anche se io ci avrei messo una classe "giocatore" il cui unico scopo è quello di controllare i numeri usciti per vedere se si è fatto punto o meno, e mandare un output.). il tutto organizzato a frame
spero di aver detto tutto l'essenziale per farvi capire quello che voglio fare e come (ho omesso una parte a livello grafico, che se la leggono @andbin e @Ansharja, vengono a prendermi a casa e mi tirano una mazzata in testa ), quindi spero abbiate voglia di darmi qualche consiglio a livello strutturale.
ho cercato di fare diverse classi ognuna addetta a poche specifiche cose (anche se magari non risulta chiaro da quanto ho scritto), la mia preoccupazione è di aver stirato troppo o troppo poco ecco
e nietne, ripeto, spero abbiate voglia di dirmi la vostra, e vi ringrazio per aver letto

9 Risposte

  • Re: Tombola

    Mi pare che dalla consegna non venga specificato quasi nulla, quindi dovresti avere molta libertà nella sviluppo.

    Poi per come hai progettato le classi mi pare ad ora che vada abbastanza bene, ma la difficoltà principale sarà poi collegare bene le varie classi, cercando di evitare molte delle cose che hai fatto nella precedente discussione

    Alcune cose che ho notato:
    • Hai proposto due strade per indicare l'estrazione dei numeri. Vanno tutte e due bene, e puoi fare come vuoi ovviamente, ma nella strada uno con quel "compaiono" stai presupponendo di fare una specie di animazione? Questo non è affatto facile, se è quello che intendi.
    • Per quanto riguarda i frame, ci sarebbero alcune valutazioni. Di solito si sconsiglia di aprire più finestre "separate" in un programma, a meno di avere buone ragioni.
      Le finestre secondarie sono invece delle JDialog, di solito, ancorate al frame principale e spesso modali, quindi prima di andare "avanti" con il programma l'utente è costretto a chiuderle.
      Avere molte finestre aperte, raggiungibili solo dalla barra delle applicazioni, potrebbe fare abbastanza confusione.
      Visto che una partita non presuppone interazione con diversi utenti, potresti anche pensare di mostrare tutte le cartelle in un unico pannello.
    • Mi sembra che la classe Bancone al momento sia abbastanza inutile se hai una classe Tabellone definita in modo così simile. Avere due liste di numeri uguali mi sembra superfluo, e visto che al metodo estrai di Bancone dovrebbe corrispondere un segna sul tabellone (con lo stesso numero), anche qui mi pare che per ora non serva la separazione.
      Se prevedi altre utilità per il Bancone, potrebbe aver senso tenerlo, ma a quel punto avrebbe senso che contenesse al proprio interno un oggetto Tabellone come campo.
    • Anche in questo caso mi pare che generaCartella sia nel posto sbagliato. E' un po' lo stesso discorso delle Auto, non è la singola Auto che si preoccupa di impostare i propri attributi, è più logico che venga costruitra dall'esterno con dei valori noti "a priori".
      Quindi la singola cartella mi sembrerebbe più logico fosse costruita già a partire da un insieme di valori.
      In questo caso la differenza è più sottile, perché in effetti non c'è tanto che una cartella debba "sapere" per essere costruita. Ma se avessi ad esempio il requisito di non avere due cartelle uguali, come faresti dalla singola cartella a controllare le altre?
      Meglio avere una classe distinta (es. GeneratoreCartelle) secondo me, e tenere la logica di costruzione e di validazione all'esterno. Te lo dico soprattutto in prospettiva futura.
    Ps: Confesso che ero un po' indeciso a rispondere a una domanda così generale, non vorrei innescare un'altra discussione infinita, ma c'era comunque qualche punto interessante a mio parere.
    Cerca però di contenerti nel numero di messaggi
  • Re: Tombola

    Ah grazie per la risposta
    nono non contavo di fare una discussione infinita come l'altra volta ahaha volevo solo capire se effettivamente qualcosa mi era entrato dall'esercizio precedente o meno, e qualcosina effettivamente ho capito.
    ti rispondo punto per punto così da rimanere in tema

    1) si mi sarebbe piaciuto fare una piccola "animazione" grafica, dove il numero estratto compare della stessa grandezza del tabellone, per poi rimpicciolirsi e andare nella sua casella (forse troppo complesso). in effetti qua ora mi sto un attimo bloccando perché mi è venuto un dubbio. ho 2 strade per fare il tabellone e poi l'estrazione
    a) mi creo una lista e mano a mano che estraggo un numero lo aggiungo alla lista, questo però comporta il controllo dei numeri estratti. in questo caso il tabellone si popolerebbe mano a mano che estratto i numeri, senza che sia già precaricato
    b) mi creo una lista di 90 numero e mano a mano che li estraggo li rimuovo dalla lista. questo però comporta un maggiore spazio in memoria occupato, e il doversi appoggiare a un array con i 90 numeri del tabellone, per poterli avere sempre visibili nel tabellone. a quel punto cambierei lo sfondo e basta
    quindi, anche se qua siamo a livelli decisamente basi, la logica di un buon programmatore quale dovrebbe essere? minore spazio occupato in memoria e minore velocità, oppure maggiore spazio occupato in memoria e maggiore velocità?

    2) mi piaceva il fatto da poter avere le cartelle separate, in modo da poterle spostare, e addirittura, chiudendo una finestra, rimuovere un giocatore, quindi non son troppo entusiasta di dover abbandonare questa idea. per quanto possa essere una simulazione le cui uniche interazioni con l'utente sono la scelta del numero di giocatori e eventualmente la pressione del tasto estrai, mi piacerebbe renderlo più realistico possibile

    3) la classe tabellone, per come la sto vedendo io, forse hai ragione ed è inutile. voglio dire, se seguo il punto a, allora posso tranquillamente dare al bancone questa incombenza, ma se seguo il punto b, allora avrò un tabellone che avrà solo una list di 90 numeri e poi il bancone me li rimuoverà.
    cioè come ho visto io il progetto: la classe tabellone mi definisce il tabellone, inutile qualora scelgo il punto a. la classe cartella mi definisce la cartella. la classe bancone invece è la classe che procede all'estrazione dei numeri, a questo punto però mi servirebbe una classe "giocatore" che mi controlla i numeri delle cartelle, quindi poi avrei una collezione fatta di tante coppie "cartella-giocatore" che lavorano assieme. forse effettivamente la prima progettazione è stata un po' troppo frettolosa e imperfetta.

    4) hai ragione. ero partito dall'idea che una cartella è fatta in un certo modo e che quindi fosse suo "dovere" crearsi da sola, ma alla fine ha più senso come dici te.
    quindi sostanzialmente mi ritroverò un sacco di classi semi astratte contenenti solo degli attributi ahaha. e delle classi contenenti solo dei metodi.

    riepilogando quindi dovrei avere:
    -una classe tabellone con la list dei numeri, inutile nel caso del punto a.
    -una classe bancone che mi estrae i numeri e li piazza nel tabellone.
    -una classe cartella con solo una matrice cartella vuota.
    -una classe generaCartella, tipo, che mi creerà delle cartelle.
    -una classe giocatore che si preoccuperà di controllare se il numero estratto dal bancone è presente nella sua cartella.
    -una classe frame che si occupa di occuparmi i frame necessari al gioco (come detto, sono molto restio a fare le cartelle su un unico frame).
    -una classe tombola con il main e l'invocazione dei frame vari.
    così dovrebbe essere più corretto no?
    p.s. ho già scritto il pezzettino di codice relativo alla generazione della cartella, e credo sia piuttosto corretto. lo avreste fatto diversamente voi?
    
    private Integer cartella[][] = new Integer[3][9];
    	
    	Random rnd = new Random();
    	
    	private void creaCartella()
    	{
    		for (int i = 0; i < 3; i++)
    		{
    			for (int k = 0; k < 5; k++)
    			{
    				int index = rnd.nextInt(9);
    				while (cartella[i][index] != null)
    				index = rnd.nextInt(9);
    				if (index == 0)
    				cartella[i][index] = rnd.nextInt(9)+1;
    				else
    				cartella[i][index] = rnd.nextInt(10) + (index*10);
    			}
    		}
    	}
    
    (c'è solo questo lol, non ho scritto altro, comunque funziona. ho scelto di usare gli integer, perché non mi ricordavo se usando gli int, le posizioni vuote andavano a null o cosa)
  • Re: Tombola

    KuroKami69 ha scritto:


    nono non contavo di fare una discussione infinita come l'altra volta
    Meno male ....

    KuroKami69 ha scritto:


    1) si mi sarebbe piaciuto fare una piccola "animazione" grafica, dove il numero estratto compare della stessa grandezza del tabellone, per poi rimpicciolirsi e andare nella sua casella (forse troppo complesso).
    Sì, complesso, specialmente se non hai già nozioni valide sul custom painting in Swing.

    KuroKami69 ha scritto:


    b) mi creo una lista di 90 numero e mano a mano che li estraggo li rimuovo dalla lista. questo però comporta un maggiore spazio in memoria occupato
    Cosa vuoi che siano 90 elementi?? Non causano alcun problema particolare (non certo per la tua applicazione), né di spazio, né di tempo.

    KuroKami69 ha scritto:


    2) mi piaceva il fatto da poter avere le cartelle separate, in modo da poterle spostare, e addirittura, chiudendo una finestra, rimuovere un giocatore, quindi non son troppo entusiasta di dover abbandonare questa idea. per quanto possa essere una simulazione le cui uniche interazioni con l'utente sono la scelta del numero di giocatori e eventualmente la pressione del tasto estrai, mi piacerebbe renderlo più realistico possibile
    Sia chiaro: non è "sbagliato" fare applicazioni che hanno più finestre. Ci sono applicazioni note che lo fanno.
    In alternativa si può realizzare una applicazione MDI (Multiple Document Interface, se non sai cosa è, lo descrive qui).



    P.S./OT sto vedendo molte tue domande sulle interfacce grafiche, ma nessuna sul linguaggio Java.
  • Re: Tombola

    Non ho nozioni valide, ma mi piacerebbe quantomeno provare a fare la già detta animazione. provare. non intendo sbatterci la testa se non ci capisco un ficco secco o quasi, non ora almeno. se hai un link valido da passarmi, che non sia la documentazione oracle, ti ringrazio
    mi sono espresso male, chiedo scusa. se da una parte la lista la riempio a ogni estrazione, dall'altra con un ciclo for aggiungo alla lista i 90 integer del tabellone, da estrarre e rimuovere dalla list per non fare controlli.
    il mio pensiero sul problema spazio/tempo era generico, imbattendomi in questa scelta sul modo in cui gestire l'estrazione e il tabellone, mi è venuto da pensare "ma quando svilupperò applicazioni degne di tale nome, a cosa dovrò puntare? maggiore velocità? minor consumo di spazio?". volevo entrare nell'ottica giusta di programmazione, tutto qua. anche se poi penso dipenda dall'ambiente in cui uno si trova e dalle richieste che gli vengono sottoposte.
    mi piacerebbe se potessi farmi te un veloce riassunto sulle MDI, anche se mi sembra di capire che sostanzialmente sono come le schede di un browser, la finestra è unica ma hai molte schede. mi pare di capire sia questo, leggendo alla svelta la documentazione oracle
    si al momento non ho posto domande sul linguaggio in se perché, per ora, non voglio fare il gradasso e dire di essere al livello vostro, ma i concetti che leggo sul manuale penso di averli capiti. l'unica domanda che avevo era il varargs nei parametri di un metodo, ma ho chiesto direttamente al prof ieri sera non mi era chiaro come gestire, dentro al metodo, una quantità indefinita di valori. il manuale cita questi varargs ma non lo spiega nel dettaglio. sostanzialmente è una collezione no? ma o un OT questo quindi magari prima o poi proverò a giocarci un po' e se qualcosa non mi sarà chiaro chiederò
    (poi torno a ripetere, io sono una testa di legno, ho bisogno di provare per ricordarmi le cose, quindi per me è più naturale capire le cose buttando giù codice, ma già lo avevo detto più volte)
  • Re: Tombola

    OT velocissimo. javaFX non è la stessa cosa dello swing/awt vero? o si? mmh
  • Re: Tombola

    KuroKami69 ha scritto:


    se hai un link valido da passarmi, che non sia la documentazione oracle, ti ringrazio
    Ehm .. ti avrei dato proprio il link specifico sul custom painting nel tutorial Oracle.

    KuroKami69 ha scritto:


    "ma quando svilupperò applicazioni degne di tale nome, a cosa dovrò puntare? maggiore velocità? minor consumo di spazio?"
    Sono cose che si valutano caso per caso.

    KuroKami69 ha scritto:


    mi piacerebbe se potessi farmi te un veloce riassunto sulle MDI, anche se mi sembra di capire che sostanzialmente sono come le schede di un browser, la finestra è unica ma hai molte schede.
    No, non è a "schede" (quello è il componente JTabbedPane in Swing)

    Una interfaccia MDI in Java/Swing è fatta da 1 componente JDesktopPane e N JInternalFrame (NON JFrame). JDesktopPane rappresenta la metafora del "desktop" in cui puoi avere N finestre che puoi spostare/ridimensionare/iconizzare. E siccome JDesktopPane è un componente lo dovrai mettere in un qualche layout come qualunque altro componente. Tipicamente come unico componente nel content-pane di un JFrame.

    KuroKami69 ha scritto:


    non voglio fare il gradasso e dire di essere al livello vostro, ma i concetti che leggo sul manuale penso di averli capiti.
    Guarda che se fai domande sul linguaggio Java non dimostri certo di fare il "gradasso", anzi il contrario.

    KuroKami69 ha scritto:


    l'unica domanda che avevo era il varargs nei parametri di un metodo, ma ho chiesto direttamente al prof ieri sera non mi era chiaro come gestire, dentro al metodo, una quantità indefinita di valori. il manuale cita questi varargs ma non lo spiega nel dettaglio. sostanzialmente è una collezione no?
    Il parametro varargs, per il metodo che lo dichiara, è niente meno e niente di più che un normale array (NON collezione). Quindi ha il length e accedi agli elementi con la classica forma [indice]

    KuroKami69 ha scritto:


    javaFX non è la stessa cosa dello swing/awt vero? o si? mmh
    JavaFX è un framework grafico ben diverso da AWT e Swing. Inizialmente, tanti anni fa, si usava con un suo linguaggio di scripting molto "dichiarativo". Probabilmente non ha avuto granché successo ed è stato rifatto per avere una API Java.
    JavaFX è molto, MOLTO più complesso di Swing, ha un motore grafico molto più sofisticato e permette di fare animazioni ed effetti grafici che in Swing ce li possiamo solo "sognare".
    Se con Swing hai X problemi, con JavaFX ne avresti almeno 20X.
  • Re: Tombola

    andbin ha scritto:


    KuroKami69 ha scritto:


    se hai un link valido da passarmi, che non sia la documentazione oracle, ti ringrazio
    Ehm .. ti avrei dato proprio il link specifico sul custom painting nel tutorial Oracle.
    ok, un link di emergenza?

    andbin ha scritto:


    KuroKami69 ha scritto:


    mi piacerebbe se potessi farmi te un veloce riassunto sulle MDI, anche se mi sembra di capire che sostanzialmente sono come le schede di un browser, la finestra è unica ma hai molte schede.
    No, non è a "schede" (quello è il componente JTabbedPane in Swing)

    Una interfaccia MDI in Java/Swing è fatta da 1 componente JDesktopPane e N JInternalFrame (NON JFrame). JDesktopPane rappresenta la metafora del "desktop" in cui puoi avere N finestre che puoi spostare/ridimensionare/iconizzare. E siccome JDesktopPane è un componente lo dovrai mettere in un qualche layout come qualunque altro componente. Tipicamente come unico componente nel content-pane di un JFrame.
    ho capito

    andbin ha scritto:


    KuroKami69 ha scritto:


    non voglio fare il gradasso e dire di essere al livello vostro, ma i concetti che leggo sul manuale penso di averli capiti.
    Guarda che se fai domande sul linguaggio Java non dimostri certo di fare il "gradasso", anzi il contrario.
    mi hai frainteso. volevo dire, non faccio le domande perché penso di sapere tutto, ma semplicemente perché per dove son arrivato con il manuale sono abbastanza sicuro di aver capito tutto, eccetto appunto il varargs

    andbin ha scritto:


    KuroKami69 ha scritto:


    l'unica domanda che avevo era il varargs nei parametri di un metodo, ma ho chiesto direttamente al prof ieri sera non mi era chiaro come gestire, dentro al metodo, una quantità indefinita di valori. il manuale cita questi varargs ma non lo spiega nel dettaglio. sostanzialmente è una collezione no?
    Il parametro varargs, per il metodo che lo dichiara, è niente meno e niente di più che un normale array (NON collezione). Quindi ha il length e accedi agli elementi con la classica forma [indice]
    si io ho detto collezione perché avevo visto un esempio in cui venivano passati n oggetti.

    andbin ha scritto:


    KuroKami69 ha scritto:


    javaFX non è la stessa cosa dello swing/awt vero? o si? mmh
    JavaFX è un framework grafico ben diverso da AWT e Swing. Inizialmente, tanti anni fa, si usava con un suo linguaggio di scripting molto "dichiarativo". Probabilmente non ha avuto granché successo ed è stato rifatto per avere una API Java.
    JavaFX è molto, MOLTO più complesso di Swing, ha un motore grafico molto più sofisticato e permette di fare animazioni ed effetti grafici che in Swing ce li possiamo solo "sognare".
    Se con Swing hai X problemi, con JavaFX ne avresti almeno 20X.
    non avevo dubbi
    ma l'animazione che interessa a me è molto semplice, mi basta semplicemente che una volta estratto un numero, questo compaia delle stesse dimensioni del tabellone, e che poi si rimpicciolisca e si posizioni nella sua casella. credo non sia una cosa così complicata

    ne aprofitto per porre una domanda, su una questione che non mi è troppo chiara
    allora la classe cartella a questo punto contiene solo una matrice vuota, che verrà poi popolata da un metodo di una classe esterna, generatore, che avrà il metodo il cui codice ho postato messaggi fa. ora, il mio metodo dovrà ritornare una matrice giusto? per poter effettivamente creare la schedina, e quel ritorno lo uso nell'inizializzazione della matrice schedina, se ho ben capito
  • Re: Tombola

    KuroKami69 ha scritto:


    ok, un link di emergenza?
    Non ce l'ho purtroppo. Puoi fare una ricerca sul forum, se ne è sicuramente parlato del custom painting in Swing e probabilmente (ora non ricordo) potresti trovare pure miei esempi.
    Ci sono comunque dei miei esempi sul mio progetto java-examples.

    KuroKami69 ha scritto:


    mi hai frainteso. volevo dire, non faccio le domande perché penso di sapere tutto, ma semplicemente perché per dove son arrivato con il manuale sono abbastanza sicuro di aver capito tutto, eccetto appunto il varargs
    Nessun problema. Per qualunque dubbio sul linguaggio, chiedi pure in futuro.

    KuroKami69 ha scritto:


    si io ho detto collezione perché avevo visto un esempio in cui venivano passati n oggetti.
    Anche se il parametro varargs è di tipo reference, il metodo riceve comunque un array di quel certo tipo.

    KuroKami69 ha scritto:


    ma l'animazione che interessa a me è molto semplice, mi basta semplicemente che una volta estratto un numero, questo compaia delle stesse dimensioni del tabellone, e che poi si rimpicciolisca e si posizioni nella sua casella. credo non sia una cosa così complicata
    Detto così invece a me pare complicato. Perché se il tabellone è fatto da svariati componenti in una griglia, significa che il numero deve "passare" e ridimensionarsi sopra svariati componenti. E questo non è banale (sebbene sicuramente fattibile con varie tecniche).

    KuroKami69 ha scritto:


    ne aprofitto per porre una domanda, su una questione che non mi è troppo chiara
    allora la classe cartella a questo punto contiene solo una matrice vuota, che verrà poi popolata da un metodo di una classe esterna, generatore, che avrà il metodo il cui codice ho postato messaggi fa. ora, il mio metodo dovrà ritornare una matrice giusto? per poter effettivamente creare la schedina, e quel ritorno lo uso nell'inizializzazione della matrice schedina, se ho ben capito
    Ogni cartella deve avere dei numeri già preconfigurati e tali dovrebbero restare (cioè l'oggetto Cartella non deve essere mutabile in tal senso). Poi quando si estrae un numero si deve verificare se c'è in quella cartella e "segnarlo".
    Come fare tutto questo ... dipende da varie scelte di design.

    E comunque, se ben ricordo, una cartella della tombola è fatta da una griglia in cui alcune celle sono vuote, altre hanno i numeri. Ma ora non ricordo se c'è o ci deve essere una logica per questa distribuzione.
  • Re: Tombola

    Si c'è, le righe di codice che ho postato fanno esattamente questo. una matrice contenente le 9 caselle e le 3 righe di una cartella, le caselle vuote le mette a null (ho preferito usare un Integer per i null, visto che non mi ispirava mettere 0), poi viene scelto 5 volte un valore random da 0 a 8, e viene quindi assegnata a quella posizione il numero random + il numero random *10, e ovviamente viene fatto un controllo per i doppioni. in ogni casella devono essere presenti i numeri di quella decina, quindi da 1 a 10, 11-20 e così via.
    quello che ancora non mi è chiaro, è che se io ho una matrice che è solo dichiarata, dentro alla classe schedina, che sostanzialmente è la mia schedina, e la voglio popolare di numeri, come diceva ansharja, dovrei usare una classe esterna per farlo.
    avrò quindi, in questa nuova classe, un metodo che sostanzialmente contiene le righe di codice sopra. e che abbia un return. ma poi per assegnare questi valori alla mia matrice schedina, mi basta semplicemente fare un banale schedina[][] = generaSchedina();? questo non mi è chiaro
Devi accedere o registrarti per scrivere nel forum
9 risposte