Anteprima
Vedrai una selezione di 1 pagina su 2
Programma in C++ - Mazzo di carte (usa template) Pag. 1
1 su 2
Disdici quando vuoi 162x117
Disdici quando
vuoi
Acquista con carta
o PayPal
Scarica i documenti
tutte le volte che vuoi
Sintesi
Creazione di un tipo "mazzo di carte" mediante template sezione d'implementazione.
Estratto del documento

#include <cstdlib>

#include <iostream>

using namespace std;

/*

Dichiarazione della classe generica Vettore:

incapsula un vettore statico di n elementi di tipo T

e possiede un metodo per accedere ai singoli elementi

*/

template <typename T, int n>

class Vettore

{

public:

T &operator[](unsigned int); // operatore di subscript

private:

T vett[n];

};

// Tipo Carta;

struct Carta {

char seme;

unsigned short valore;

};

int main()

{ // Semi delle carte

enum {cuori = 3, quadri, fiori, picche};

/* assegna a cuori il valore 3 del set standard dei caratteri

ASCII che corrisponde al simbolo del seme, seguito dagli altri

tre semi nell'ordine. In questo modo sar visualizzato il simbolo

relativo sulla console */

const int nCarte = 10, nSemi = 4;

/* �

mazzo un istanza di Vettore:

equivalente a una matrice nCarte x nSemi di elementi di tipo Carta

*/

Vettore < Vettore <Carta, nCarte>, nSemi > mazzo;

unsigned short valore, // riga

seme; // colonna

// Caratterizza il mazzo con i semi e i valori delle carte

for(seme = cuori; seme <= picche; seme++) {

for(valore = 1 ; valore <= nCarte; valore++) {

mazzo[seme - 3][valore - 1].seme = (char)seme;

mazzo[seme - 3][valore - 1].valore = valore;

}

}

cout <<"\n\tmazzo di carte\n" << endl;

// Visualizzazione del mazzo di carte sulla console

for(valore = 1 ; valore <= nCarte; valore++) {

for(seme = cuori; seme <= picche; seme++) {

cout.width(2);

// [seme - cuori] fornisce il valore iniziale [0]

cout << mazzo[seme - cuori][valore - 1].valore;

cout << (mazzo[seme - cuori][valore - 1].seme);

Dettagli
Publisher
2 pagine
161 download