Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Polestar 3 Performance, test drive: comodità e potenza possono convivere
Polestar 3 Performance, test drive: comodità e potenza possono convivere
Abbiamo passato diversi giorni alla guida di Polestar 3, usata in tutti i contesti. Come auto di tutti i giorni è comodissima, ma se si libera tutta la potenza è stupefacente
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026
In occasione del proprio Architecture Deep Dive 2025 Qualcomm ha mostrato in dettaglio l'architettura della propria prossima generazione di SoC destinati ai notebook Windows for ARM di prossima generazione. Snapdragon X2 Elite si candida, con sistemi in commercio nella prima metà del 2026, a portare nuove soluzioni nel mondo dei notebook sottili con grande autonomia
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice
DJI Mini 5 Pro porta nella serie Mini il primo sensore CMOS da 1 pollice, unendo qualità d'immagine professionale alla portabilità estrema tipica di tutti i prodotti della famiglia. È un drone C0, quindi in un peso estremamente contenuto e che non richiede patentino, propone un gimbal rotabile a 225 gradi, rilevamento ostacoli anche notturno e autonomia fino a 36 minuti. Caratteristiche che rendono il nuovo drone un riferimento per creator e appassionati
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 20-03-2011, 19:15   #1
roccopanz
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 5
[Java] come associare una nome ad un array

Ciao a Tutti,
sono nuovo del Forum, spero mi perdonerete se sbaglio titolo o il posto in cui faccio la mia domanda e di conseguenza chiedo a chi è più esperto la cortesia di indirizzarmio sulla discussione corretta.

Mi presento, sono programmatore junior in cobol con soli 3 /12 di esperiena,
e ora mi sto addentrando in autonomia nel mondo java.
Sono nuovissimo di questo nuovo tipo di programmazione , e sto creando il mio primo pseudo programma che non è altro che uno pseudo "gioco".

ho fatto un programmino molto semplice che emula il gioco del bingo,
in input da tastiera do un numero di cartelle(che poi non è altro che il numero dei giocatori) e creo tante cartelle con numeri random da 1-90 tante quante ne vogliamo in input.

Vi spiego il mio problema:
vorrei associare ad ogni cartella creata il nome di un giocatore oppure ancor più semplicemente PLAYER1..PLAYER2...PLAYERn.. in modo che alla fine il pgm mi possa dire : cinquina effettuata da PLAYER1 oppure BINGO effettuato da PLAYER2.
ovviamente il tutto è senza grafica, ancora non sono capace di questo...:-P
ma spero di arrivarci presto.

qualcuno riesce ad aiutarmi?

Grazie Mille in anticipo.

Ciao
roccopanz
roccopanz è offline   Rispondi citando il messaggio o parte di esso
Old 20-03-2011, 19:38   #2
WarDuck
Senior Member
 
L'Avatar di WarDuck
 
Iscritto dal: May 2001
Messaggi: 12869
Immagino tu stia programmando ad oggetti, per cui se hai una classe Cartella, puoi mettere come attributo di classe il nome del giocatore, passandolo magari come parametro del costruttore.

Così facendo ad esempio potresti pensare ad una cosa del genere:

Codice:
public class Cartella
{
    String nome_giocatore;
    
    public Cartella(String nome_giocatore)
    {
        this.nome_giocatore = nome_giocatore;  
    }

    public boolean isVincente()
    {
        // controlla se la scheda è vincente
    }

    public String getNome()
    {
        return this.nome_giocatore;
    }
}

public class Tavolo
{
    ArrayList<Cartella> cartelle_giocatori;

    public Tavolo()
    {
        this.cartelle_giocatori = new ArrayList<Cartella>();
    }
    
    public void aggiungi(Cartella c)
    {
        cartelle_giocatori.add(c);
    }

    public String controlla()
    {
        for (Cartella c : cartelle_giocatori)
        {
            if (c.isVincente()) return c.getNome();
        }

        return null;
    }
}

...

Tavolo t1 = new Tavolo();
Cartella g1 = new Cartella("Giuseppe");
t1.aggiungi(g1);

t1.controlla(); // controlla tutte le cartelle e vede se c'è qualcuno che ha fatto BINGO, può ritornarti dunque il nome del giocatore.
WarDuck è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2011, 09:31   #3
roccopanz
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 5
Ciao,
grazie per l'aiuto,
purtroppo la pista della classe Cartella l'ho abbandonata dversi giorni fa in quanto il programma mi andava in loop e non capivo perchè, quindi la cartella l'ho creata nel MAIN richiamando una classe Valorizza che mi restituisce N numeri casuali senza ripetizioni compresi fra 1 e 90. Tali parametri li passo in input.

Cartella [i][giocatori]
i = 15
giocatori = sono quelli digitati in input.

Comunque mi hai dato un idea, magari creo nel Mai un Array con all'interno dei nomi, che viaggia pari pari al numero cartelle.

Subito dopo, se funziona, implemento il mio programma con una classe Cartella, forse avendo un minimo di esperienza in più non avrò lo stesso problema del loop..

Grazie 1000.
Ciao,
Roccopanz.
roccopanz è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2011, 09:54   #4
clockover
Senior Member
 
L'Avatar di clockover
 
Iscritto dal: Oct 2004
Messaggi: 1945
Il modo più rapido per effettuare un'associazione chiave - valore è utilizzare una mappa

http://download.oracle.com/javase/6/.../util/Map.html
questa è l'interfaccia poi scegli la classe che più puoi utilizzare

potresti associare ad ogni cartella un nome di un giocatore

es

Map<Cartella, Giocatore> mp = new HashMap<Cartella, Giocatore>()

in questo modo quando effettui un controllo sulle cartelle ti basterà fare un
Giocatore gg = mp.get(unaCartella);
e avrai immediatamente il giocatore associato alla cartella

ovviamente puoi utilizzare la cartella come un array e il giocatore come una stringa o delle classi... dipende da te
clockover è offline   Rispondi citando il messaggio o parte di esso
Old 21-03-2011, 14:31   #5
Gin&&Tonic
Member
 
L'Avatar di Gin&&Tonic
 
Iscritto dal: Aug 2010
Messaggi: 138
Quote:
Originariamente inviato da roccopanz Guarda i messaggi
Ciao,
grazie per l'aiuto,
purtroppo la pista della classe Cartella l'ho abbandonata
Se il tuo obiettivo è quello di imparare a programmare in Java secondo me ti è più utile tornare al tuo oggetto "Cartella" , perché una cosa è creare un'oggetto e definire per esso i vari metodi a te utili ; altra cosa è utilizzare un oggetto già esistente (come le Mappe , citate da clockover) .


Se poi il tuo obiettivo è creare il gioco del bingo , la mappa va benissimo .

Quote:
Originariamente inviato da roccopanz Guarda i messaggi
purtroppo la pista della classe Cartella l'ho abbandonata dversi giorni fa in quanto il programma mi andava in loop e non capivo perchè, quindi la cartella l'ho creata nel MAIN richiamando una classe Valorizza che mi restituisce N numeri casuali senza ripetizioni compresi fra 1 e 90. Tali parametri li passo in input..
Posta il tuo codice , e vediamo dove hai sbagliato.
Gin&&Tonic è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2011, 16:23   #6
roccopanz
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 5
Ciao,
purtroppo il codice vecchio l'ho cancellato comunque ho ricreato la classe cartella ed ora non mi va più in loop, (chissà cosa avevo combinato).


Per quanto riguarda i nomi da assegnare ho fatto in questo modo :

Inserisco il numero di giocatori e poi in ciclo chiedo il nome di ognuno in modo che ho due array separati ma che vanno pari passo.

Quindi cartella[n] [1] --->>> giocatore[1]

e così via fino a n giocatori

Appena arrivo a casa posto il codice, così magari qualcuno mi indicherà pure se è troppo "pesante"

Grazie a tutti
Roccopanz
roccopanz è offline   Rispondi citando il messaggio o parte di esso
Old 22-03-2011, 23:57   #7
Gin&&Tonic
Member
 
L'Avatar di Gin&&Tonic
 
Iscritto dal: Aug 2010
Messaggi: 138
Quote:
Originariamente inviato da roccopanz Guarda i messaggi
Ciao,
Per quanto riguarda i nomi da assegnare ho fatto in questo modo :

Inserisco il numero di giocatori e poi in ciclo chiedo il nome di ognuno in modo che ho due array separati ma che vanno pari passo.

Quindi cartella[n] [1] --->>> giocatore[1]

e così via fino a n giocatori
non ho ben capito cosa hai fatto , comunque volendo nel tuo oggetto cartella potresti inserire anche il nome del Proprietario.

Io farei cosi cartella : Cartella( int CodCartella ,int M[][] , String Proprietario);

nella matrice M inserisci i valori della cartella del bingo (se non sbaglio ha 5 colonne e 3 righe ) , in Proprietario inserisci il nome proprietario (volendo puoi crearti un oggetto Persona e quindi passare "Persona x " piuttosto che Proprietario ) , in codCartella un codiceunivoco (sotto l'ipotesi che uno stesso proprietario vincente abbia più cartelle , sai con quale ha vinto).
Gin&&Tonic è offline   Rispondi citando il messaggio o parte di esso
Old 23-03-2011, 19:26   #8
roccopanz
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 5
Quote:
Originariamente inviato da Gin&&Tonic Guarda i messaggi
non ho ben capito cosa hai fatto , comunque volendo nel tuo oggetto cartella potresti inserire anche il nome del Proprietario.

Io farei cosi cartella : Cartella( int CodCartella ,int M[][] , String Proprietario);

nella matrice M inserisci i valori della cartella del bingo (se non sbaglio ha 5 colonne e 3 righe ) , in Proprietario inserisci il nome proprietario (volendo puoi crearti un oggetto Persona e quindi passare "Persona x " piuttosto che Proprietario ) , in codCartella un codiceunivoco (sotto l'ipotesi che uno stesso proprietario vincente abbia più cartelle , sai con quale ha vinto).

Ciao,
ecco la classe cartella che ho creato:

import javax.swing.JOptionPane ;
//import javax.swing.JOptionPane.* ;

public class cartella
{
int player;
int riga;
int colonna;
int[][] cartella;

public cartella()
{
// inserisco il numero di cartelle da acquistare
String giocstr = JOptionPane.showInputDialog("Ciao, ad ogni giocatore sarà assegnata un cartella.\nQuanti giocatori siete? ");

// Converto Valori String da InputDialog in Integer
int giocatori = Integer.parseInt(giocstr);
player = giocatori;
cartella = new int[15][giocatori];
for (int g=0; g<giocatori; g++)
{
valorizza v = new valorizza(90);
for (riga=0; riga<15; riga++)
{
cartella[riga][colonna] = v.cesto[riga];
}
colonna++;
}

}
}

poi al'interno del Main ho effettuato questo ciclo di for per scegliere i nomi dei concorrenti

for (int g=0; g<c.player;g++)
{
// inserisco il nome dei giocatori
partecipante = g+1;
String nomi = JOptionPane.showInputDialog("Inserisci il nome del " + partecipante +"° giocatore ");
player[g] = nomi;
System.out.println("primo nome : " + player[g]);
t.time(1500);
}

di seguito, l'indice della cartella e del giocatore è lo stesso, pertanto restano associati.

Comunque mi hai dato una bella idea, ora proverò a modificare il programma come hai indicato tu, sicuramente sarà più snello e performante...

Grazie 1000.

PS: appena finito chiederò aiuto su come farlo diventare "GRAFICO" ...

Ciao
Roccopanz
roccopanz è offline   Rispondi citando il messaggio o parte di esso
Old 24-03-2011, 09:19   #9
Gin&&Tonic
Member
 
L'Avatar di Gin&&Tonic
 
Iscritto dal: Aug 2010
Messaggi: 138
forse hai dimenticato di scrivere qualche pezzo di codice (qui sul forum intendo ), cmq se non vuoi associare nomi ai giocatori la tua soluzione credo vada bene...
Gin&&Tonic è offline   Rispondi citando il messaggio o parte di esso
Old 27-03-2011, 17:29   #10
roccopanz
Junior Member
 
Iscritto dal: Mar 2011
Messaggi: 5
Quote:
Originariamente inviato da Gin&&Tonic Guarda i messaggi
forse hai dimenticato di scrivere qualche pezzo di codice (qui sul forum intendo ), cmq se non vuoi associare nomi ai giocatori la tua soluzione credo vada bene...
Ciao, ho bisogno di un aiuto su eclipse.
Praticamente volevo riprendere il gioco del bingo, ma...:

1) non me lo fa aprire insieme a tutte le classi che ho creato (sono tutti .java)
2) quando li apro, non me li fa compilare...

Se voglio farlo devo creare un nuovo pregetto, ricreare nuove classi e fare copia e incolla...

uffff... è come se non mi riconosce il progetto, forse quando faccio salva devo farlo in modo particolare?

se serve posso allocare le schermate.

Grazie 1000.

Ciao
Roccopanz
roccopanz è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
Qualcomm Snapdragon X2 Elite: l'architettura del SoC per i notebook del 2026 Qualcomm Snapdragon X2 Elite: l'architettura del...
Recensione DJI Mini 5 Pro: il drone C0 ultra-leggero con sensore da 1 pollice Recensione DJI Mini 5 Pro: il drone C0 ultra-leg...
ASUS Expertbook PM3: il notebook robusto per le aziende ASUS Expertbook PM3: il notebook robusto per le ...
Test ride con Gowow Ori: elettrico e off-road vanno incredibilmente d'accordo Test ride con Gowow Ori: elettrico e off-road va...
DAZN continua la lotta contro la pirater...
Generativa o predittiva? Il futuro dell’...
BYD va all-in con la Atto 2: batteria pi...
Google modifica la richiesta di consenso...
Black Friday TV: OLED, QLED e Mini-LED a...
007 First Light torna a mostrarsi all'ev...
MOVA Z60 Ultra Roller Complete: il Black...
Clair Obscur: Expedition 33 trionfa ai G...
Son quasi regalate: 135€ per le Squier b...
Windows 11: il copia-incolla via IA funz...
La scopa elettrica Mova K30 Mix crolla a...
Violazione in Almaviva, fornitore IT di ...
Amazon avvia un investimento da 3 miliar...
Ci fai tutto e ci giochi bene: a 999€ po...
Snapdragon o Exynos? Un sondaggio svela ...
Chromium
GPU-Z
OCCT
LibreOffice Portable
Opera One Portable
Opera One 106
CCleaner Portable
CCleaner Standard
Cpu-Z
Driver NVIDIA GeForce 546.65 WHQL
SmartFTP
Trillian
Google Chrome Portable
Google Chrome 120
VirtualBox
Tutti gli articoli Tutte le news Tutti i download

Strumenti

Regole
Non Puoi aprire nuove discussioni
Non Puoi rispondere ai messaggi
Non Puoi allegare file
Non Puoi modificare i tuoi messaggi

Il codice vB è On
Le Faccine sono On
Il codice [IMG] è On
Il codice HTML è Off
Vai al Forum


Tutti gli orari sono GMT +1. Ora sono le: 10:49.


Powered by vBulletin® Version 3.6.4
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Served by www3v