Torna indietro   Hardware Upgrade Forum > Software > Programmazione

OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum
Abbiamo partecipato all'OVHcloud Summit 2025, conferenza annuale in cui l'azienda francese presenta le sue ultime novità. Abbiamo parlato di cloud pubblico e privato, d'intelligenza artificiale, di computer quantistici e di sovranità. Che forse, però, dovremmo chiamare solo "sicurezza"
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a
Abbiamo potuto mettere le mani in anteprima sul nuovo monitor MSI dedicato ai giocatori: un mostro che adotta un pannello QD-OLED da 26,5 pollici con risoluzione 2560 x 1440 pixel, frequenza di aggiornamento fino a 500 Hz e tempo di risposta di 0,03 ms GtG
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro
DJI aggiorna la sua linea di droni ultraleggeri con Neo 2, un quadricottero da 160 grammi che mantiene la compattezza del predecessore ma introduce una stabilizzazione meccanica a due assi, sensori omnidirezionali e un sistema LiDAR
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


OVHcloud Summit 2025: le novità del cloud europeo tra sovranità, IA e quantum OVHcloud Summit 2025: le novità del cloud...
Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI Care e DisplayPort 2.1a Un mostro da MSI: QD-OLED WQHD a 500 Hz con AI C...
DJI Neo 2 in prova: il drone da 160 grammi guadagna il gimbal e molto altro DJI Neo 2 in prova: il drone da 160 grammi guada...
L'IA "seria" di Appian è diversa: inserita nei processi e rispetta dati e persone L'IA "seria" di Appian è divers...
Polestar 3 Performance, test drive: comodità e potenza possono convivere Polestar 3 Performance, test drive: comodit&agra...
A causa di un problema durante il lancio...
Per il responsabile delle Porsche 911 e ...
Ritorno di fiamma tra Apple e Intel: gal...
Horses è stato 'bannato': l'horro...
Truffe finanziarie sui social, scatta il...
Tesla inaugura a Busto Arsizio la postaz...
Barriere autostradali fotovoltaiche: Ana...
Accordo Gruppo FS-Microsoft: l'IA dell'a...
Prezzo mai visto: le Sony WH-1000XM5 Spe...
Microsoft amplierà il suo laborat...
ECOVACS DEEBOT T30C OMNI GEN2 a 349€: co...
Super offerta Amazon: HP OMEN MAX 16 con...
L'offerta nascosta di Very Mobile fa gol...
LEAP 71: completata l'accensione di un p...
Furto di segreti industriali in TSMC: pe...
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: 21:54.


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