Torna indietro   Hardware Upgrade Forum > Software > Programmazione

Nioh 3: souls-like punitivo e Action RPG
Nioh 3: souls-like punitivo e Action RPG
Nioh 3 aggiorna la formula Team NINJA con aree esplorabili più grandi, due stili di combattimento intercambiabili al volo (Samurai e Ninja) e un sistema di progressione pieno di attività, basi nemiche e sfide legate al Crogiolo. La recensione entra nel dettaglio su combattimento, build, progressione e requisiti PC
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti
La facilità di installazione e la completa automazione di tutte le fasi di utilizzo, rendono questo prodotto l'ideale per molti clienti. Ecco com'è andata la nostra prova in anteprima
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto
be quiet! debutta nel settore mouse da gaming con Dark Perk Ergo e Dark Perk Sym: due modelli gemelli per specifiche, con polling rate di 8.000 Hz anche in wireless, sensore PixArt PAW3950 da 32.000 DPI e autonomia dichiarata fino a 110 ore. Nel test, a 8.000 Hz si arriva a circa 30 ore reali, con ricarica completa in un'ora e mezza
Tutti gli articoli Tutte le news

Vai al Forum
Rispondi
 
Strumenti
Old 03-07-2011, 15:14   #1
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
[C]Classe di struct

Buongiorno a tutti. Vorrei chiedervi aiuto in merito all utilizzo delle struct dentro una classe.
Praticamente io devo creare il gioco della tombola: estrarre i numeri, generare schede ecc.
Ho pensato dunque di fare la struct player con dentro un vettore di char per il nome, e un array di int per la scheda del player.
Ora se nella classe definisco la variabile giocatore (o un vettore di essa) al momento della compilazione ovunque vi è un richiamo a una variabile della struct mi da errori:
Quote:
35 C:\Users\Portatile\Desktop\tombola.cpp expected unqualified-id before '.' token
La riga dell errore è:
Quote:
tombola.player[a].scheda[i][j] = 0;
Questa è dentro a 3 for, uno per girare tutti i giocatori, e 2 per la matrice di interi della scheda.

Cosa sbaglio?
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 16:29   #2
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
amico.. se non posti anche il resto è impossibile saperlo....


è come se andassi dal meccanico con la macchina che fa un rumore alla trasmissione e gli portassi solo la cinghia.......
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:37   #3
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da kevinpirola Guarda i messaggi
amico.. se non posti anche il resto è impossibile saperlo....


è come se andassi dal meccanico con la macchina che fa un rumore alla trasmissione e gli portassi solo la cinghia.......
Ripeto che l errore lo da SOLO e ripeto SOLO dove scrivo cose tipo:
tombola.player.nome ovvero in cui richiamo un dato della struct.

Comunque ecco la parte della struct e della classe:
Codice:
struct players{
    char nome[30];
    int scheda[5][3];
};

typedef struct players playerS;

class tombola{
    public:
    tombola();
    void estrai_num(); // controlla che non sia uscito e sia valido
    void win_check(); // ambo, terna, quaterna, cinquina, tombola
    void generascheda(); // controlla ripetizioni, non piu di 3 stessa decina   
    void stato();
    private:
    playerS player[100];
    int uscite[90];
    
};
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 21:56   #4
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
sicuro che non siano delle variabili private che hanno bisogno di un metodo "get" ?

prova a mettere un metodo get che ritorna la variabile che ti serve, secondo me dovresti risolvere
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:02   #5
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da kevinpirola Guarda i messaggi
sicuro che non siano delle variabili private che hanno bisogno di un metodo "get" ?

prova a mettere un metodo get che ritorna la variabile che ti serve, secondo me dovresti risolvere
Che sarebbe? Perdona la mia ignoranza ma ho fatto il primo anno di informatica e ho studiato C solo quest anno.
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:18   #6
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
significa che forse stai provando ad accedere a campi privati dall'esterno della classe, cosa che non puoi fare, e la soluzione corretta per mantenere l'incapsulamento è un metodo pubblico, tipo

Codice:
playerS* getPlayer(void) const
{
  return player;
}
volendo puoi ritornare un const playerS* se vuoi che possa solo essere letto l'array
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:30   #7
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
significa che forse stai provando ad accedere a campi privati dall'esterno della classe, cosa che non puoi fare, e la soluzione corretta per mantenere l'incapsulamento è un metodo pubblico, tipo

Codice:
playerS* getPlayer(void) const
{
  return player;
}
volendo puoi ritornare un const playerS* se vuoi che possa solo essere letto l'array
Troppo complicato per me. Eppure sto accedendo dal costruttore della classe...
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:44   #8
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
e allora non è quello il problema, il discorso è che se non incolli il codice è dura capirlo
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:50   #9
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Codice:
#include <iostream>
#include <cstdlib>

using namespace std;

int max_players=0;

struct players{
    char nome[30];
    int scheda[5][3];
};

typedef struct players playerS;

class tombola{
    public:
    tombola();
    void estrai_num(); // controlla che non sia uscito e sia valido
    void win_check(); // ambo, terna, quaterna, cinquina, tombola
    void generascheda(); // controlla ripetizioni, non piu di 3 stessa decina   
    void stato();
    private:
    playerS player[100];
    int uscite[90];
    
};

tombola::tombola(){
        for(int i=0; i < 100; i++){
         //tombola.player[i].nome = "";
    }
    for(int a=0; a < 100; a++){
    for(int i=0; i < 5; i++){
        for(int j=0; j < 3; j++){
         tombola.player[a].scheda[i][j] = 0;
    }}}
}


void tombola::stato(){
    for(int i=0; i < max_players; i++){
        cout << endl << "Nome: " << tombola.player[i].nome << endl << " - Schedina: ";
        for(int a=0; a < 5; a++){
            for(int b=0; b < 3; b++){
                    cout << tombola.player[i].scheda[a][b];
                }
            cout << endl;
            }
        }
    cout << endl;
}



int main(){
    tombola p;
    cout << "Numero giocatori: ";
    cin >> max_players;
    p.stato();
    system("PAUSE");
    return 0;
}
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 22:58   #10
tuccio`
Senior Member
 
Iscritto dal: Apr 2010
Città: Frosinone
Messaggi: 416
il "." serve a riferirsi ai campi delle istanze, se ti riferisci a tombola come classe devi usare ::, ma comunque nel tuo caso non serve, ti basta scrivere player[a].scheda[i][j] per riferirti al campo dell'istanza su cui viene invocato il metodo
tuccio` è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 23:04   #11
kevinpirola
Member
 
Iscritto dal: Sep 2010
Messaggi: 102
Quote:
Originariamente inviato da tuccio` Guarda i messaggi
il "." serve a riferirsi ai campi delle istanze, se ti riferisci a tombola come classe devi usare ::, ma comunque nel tuo caso non serve, ti basta scrivere player[a].scheda[i][j] per riferirti al campo dell'istanza su cui viene invocato il metodo
quote
kevinpirola è offline   Rispondi citando il messaggio o parte di esso
Old 03-07-2011, 23:28   #12
L4ky
Senior Member
 
L'Avatar di L4ky
 
Iscritto dal: May 2008
Messaggi: 1566
Grazie mille!!
__________________
CM Obsidian 750D - Corsair TX650M - AMD Ryzen 7 3700x - Asus TUF B550-PLUS - nVidia Gigabyte GTX 1060 6GB G1 Gaming - Noctua D15S - Corsair Vengeance Pro 3600MHz 16GB - 2xHP x27i - Razer Deathadder - Logitech G15 v1 nVidia Edition- Roccat Taito King-Size - Fastweb (2011) | Alice(2015) | Alice(2016) | Eolo 30Mb (2016) | Wind3 4G Flat (2019) | PF AIR 100 (2021)
L4ky è offline   Rispondi citando il messaggio o parte di esso
 Rispondi


Nioh 3: souls-like punitivo e Action RPG Nioh 3: souls-like punitivo e Action RPG
Test in super anteprima di Navimow i220 LiDAR: il robot tagliaerba per tutti Test in super anteprima di Navimow i220 LiDAR: i...
Dark Perk Ergo e Sym provati tra wireless, software via browser e peso ridotto Dark Perk Ergo e Sym provati tra wireless, softw...
DJI RS 5: stabilizzazione e tracking intelligente per ogni videomaker DJI RS 5: stabilizzazione e tracking intelligent...
AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequenze al top per il gaming AMD Ryzen 7 9850X3D: Zen 5, 3D V-Cache e frequen...
Logitech G325: audio di fascia alta, wir...
Nessuna pubblicità su Claude, per...
Gli stipendi nel settore tech? Sono anco...
Problemi con la stampa 3D? Un prompt per...
Amazon Leo amplia i contratti con SpaceX...
Basta Purefication, il Giurì bloc...
LibreOffice 26.2 migliora prestazioni e ...
La Cina si prepara a un test della capsu...
La NASA rende note alcune informazioni a...
ASUS ExpertCenter PN54: mini PC Copilot+...
Geely userà una fabbrica europea ...
Leica Camera tratta la cessione della ma...
La nuova AMD non è più 'ec...
La Cina non è più la pecor...
Un SSD accanto alla GPU: la ricetta di Z...
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: 19:50.


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