Visualizzazione dei risultati da 1 a 7 su 7

Discussione: Programma Tombola C++

  1. #1

    Programma Tombola C++

    Ciao a tutti.

    Dovrei fare un programma che simuli il gioco della tombola.

    Il programma deve funzionare con 4 cartelle generate in modo casuale, visualizzarle e mostrare l'estratto, dopodiche deve controllare se c'è nelle cartelle, se esiste me lo cancella e deve controllare se qualche giocatore ha fatto ambo, terno, quaterna, cinquina o tombola.

    Qualcuno avrebbe un pò di tempo libero per potermi impostare questo esercizio?

    Attendo vostre risposte.

    Grazie mille

  2. #2
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    Un programma con interfaccia grafica o da console?
    Se da console sarei (se ho tempo) disposto ad aiutarti...


  3. #3
    Da console...

    Fammi sapere qualcosa al più presto. Magari mandami una mail oppure rispondi sempre qui.

    Grazie

  4. #4
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Comincia a pensare alle classi che ti servono, io scriverei queste:
    1)Classe Cartella: viene inizializzata con i numeri che conterrà durante la partita; ha un metodo set() per controllare se il numero passato è presente o meno e se sì per "barrarlo" (ritorna true in caso positivo); ha un metodo per controllare se ci sono stati ambo,terno ecc...

    2)Classe Estrattore: viene inizializzara con i numeri da 1 a 90 in un array e l'array viene più volte mischiato in ordine casuale; ha un metodo per l'estrazione del numero e al contempo segna su un array di boolean che il numero a quell'indice dell'array è stato estratto.

    A questo ponto non resta che nel metodo main gestire il gioco chiamando in sequenza i metodi delle due classi, io però prima di ogni estrazione farei premere enter dall'utente, altrimenti il pc fa tutto da se ed il gioco finisce in un secondo.
    Questo è quello che mi è venuto in mente ora, poi c'è molto da ampliare e migliorare.
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  5. #5
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    L'unico problema è che è da molto che non gioco a tombola...

    Qualcuno mi rispiega velocememnte le regole?

  6. #6
    Utente di HTML.it L'avatar di Xadoom
    Registrato dal
    Dec 2002
    Messaggi
    1,491
    Tobia ho modificato il tuo prog...hai una mail
    Windows Xp
    [Java]
    [PHP]Notepad++
    [Fortran90-77] elf90 g77
    [C++ /WinAPI] DevC++ VisualC++

  7. #7
    Utente bannato
    Registrato dal
    Sep 2003
    Messaggi
    1,012
    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 :
    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);
    };
    clsCartella.cpp :

    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();
    }
    main di prova:

    codice:
    #include <iostream>
    #include "clsCartella.h"
    
    using namespace std;
    
    
    
    void main()
    {
    	Cartella x;
    	cout << x;
    }

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.