Io ho iniziato a creare la classe "Cartella".
La parte + difficile è stata la funzione che inizializzi la cartella in modo completamente casuale (numeri non ripetuti, 5 num su 9 spazi per riga, disposizione num casuale...) ma per ora funzia.
clsCartella.h :
clsCartella.cpp :codice:#include <ostream> enum e_vincita { ambo, terno, quaterna, cinquina, tombola }; class Cartella { int numeri[3][9]; public: Cartella(); void riempi(); e_vincita vincita(); friend std::ostream &operator<<(std::ostream &stream, Cartella oggetto); };
main di prova:codice:#include "clsCartella.h" #include <cstdlib> #define WIN32_LEAN_AND_MEAN #include <windows.h> #include <vector> #include <ostream> void Cartella::riempi() { std::vector<int> cont_numeri; std::vector<int> numeri_15; int i; std::vector<int>::iterator pos; srand(GetTickCount()); // Inizializza il vettore dei numeri for(i=0;i<27;i++) numeri[i/9][i % 9] = 0; // Riempie i numeri da 1 a 90 for(i=1; i<91; i++) { cont_numeri.push_back(i); } // Riempie i 15 numeri for(i=0; i<15; i++) { pos = cont_numeri.begin() + rand() % cont_numeri.size(); numeri_15.push_back(*pos); cont_numeri.erase(pos); } int j; for(j=0; j<3; j++) { cont_numeri.clear(); // Riempie i numeri da 0 a 8 for(i=0; i<9; i++) { cont_numeri.push_back(i); } // Mette i 15 numeri nelle posizioni giuste for(i=0; i<5; i++) { pos = cont_numeri.begin() + rand() % cont_numeri.size(); numeri[j][*pos] = numeri_15[j * 5 + i]; cont_numeri.erase(pos); } } // Fine } std::ostream &operator<<(std::ostream &stream, Cartella oggetto) { int j,i; for(j=0; j<3; j++) { for(i=0; i<9; i++) { stream << oggetto.numeri[j][i] << '\t'; } stream << '\n'; } return stream; } Cartella::Cartella() { riempi(); }
codice:#include <iostream> #include "clsCartella.h" using namespace std; void main() { Cartella x; cout << x; }![]()

Rispondi quotando