Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    (c++) Ciao a tutti, alcune info sulla tombola :)

    Ciao a tutti,
    sto creando il gioco della tombola.
    Per adesso ho fatto solo il tabellone e l' estrazione dei numeri.
    Il codice qui sotto disegna prima il tabellone con i 90 numeri, poi calcola un numero casuale da 1 a 90 e poi lo evidenzia.
    Che ne pensate
    Codice PHP:
    #include <iostream>
    #include <iomanip>
    #include <ctime>
    #include <windows.h>
    using namespace std;

    void dis_tab (int coordX[], int coordY[]);
    int estrai_num ();
    void dis_num (int coordX[], int coordY[], int num);

    int main ()
    {
        
    INPUT_RECORD Input;
        
    DWORD num_eventi;
        
    int X[90] , Y[90];
        
    int num;
        
        
    SetConsoleTitleA("Tombola");
        
        
    dis_tab (XY);    
        
        
    cout << "Premi INVIO per estrarre un numero." << endl;

        while (
    true) {
            
    ReadConsoleInput(GetStdHandle (STD_INPUT_HANDLE), 
                                                &
    Input,
                                                
    1,
                                                &
    num_eventi);
            if (
    Input.EventType == KEY_EVENT) {
                if (
    Input.Event.KeyEvent.bKeyDown &&
                    
    Input.Event.KeyEvent.wVirtualKeyCode == 0x0D) {
                        
    num estrai_num ();
                        
    dis_num (XYnum);
                }
            }
        }

        return 
    0;
        
    }

    void dis_tab (int coordX[], int coordY[])
    {

        
    cout << (char)218;
        for (
    int i 09i++) {
            for (
    int j 02j++)
                
    cout << (char)196;        
            
    cout << (char)194;            
        }
        for (
    int i 02i++)
            
    cout << (char)196;
        
    cout << (char)191 << endl;
        
    int k 1;
        for (
    int i 08i++) {
            
    cout << (char)179;
            for (
    int j 010j++) {
                
    coordX[k-1] = (3) + 1;
                
    coordY[k-1] = (2) + 1;
                
    cout << setw (2) << k++;
                
    cout << (char)179;
            }
            
    cout << endl;
            
    cout << (char)195;
            for (
    int i 09i++) {
                for (
    int j 02j++)
                    
    cout << (char)196;
                
    cout << (char)197;        
            }
            for (
    int i 02i++)
                    
    cout << (char)196;
            
    cout << (char)180 << endl;
        }
        
    cout << (char)179;
        for (
    int i 010i++) {
                
    coordX[k-1] = (3) + 1;
                
    coordY[k-1] = 17;
                
    cout << setw (2) << k++;
                
    cout << (char)179;
            }
        
    cout << endl << (char)192;
        for (
    int i 09i++) {
            for (
    int j 02j++)
                
    cout << (char)196;
            
    cout << (char)193;        
        }
        for (
    int i 02i++)
                    
    cout << (char)196;
        
    cout << (char)217 << endl;
    }

    int estrai_num ()
    {
        static 
    bool ext[90], prim_call true;
        
    int num;
         
        if(
    prim_call == true) {
            
    srand (time (NULL));
            
    prim_call false;
        }

        do {
            
    num rand () % 90 1;
        } while (
    ext[num-1] == true);
        
    ext[num-1] = true;

        return 
    num;
    }

    void dis_num (int coordX[], int coordY[], int num)
    {
        
    CONSOLE_SCREEN_BUFFER_INFO schermo;
        
    WORD col_orig;
        
    COORD puntipunti_orig;
        
    HANDLE outhandle GetStdHandle (STD_OUTPUT_HANDLE);
        
        
    GetConsoleScreenBufferInfo (outhandle, &schermo);
        
    col_orig schermo.wAttributes;
        
    punti_orig schermo.dwCursorPosition;

        
    punti.coordX[num-1];
        
    punti.coordY[num-1];
        
    SetConsoleCursorPosition (outhandlepunti);
        
    SetConsoleTextAttribute (outhandleFOREGROUND_BLUE |
                                            
    FOREGROUND_INTENSITY |
                                            
    BACKGROUND_GREEN |
                                            
    BACKGROUND_INTENSITY);
        
    cout << setw (2) << num;
        
    SetConsoleCursorPosition (outhandlepunti_orig);
        
    SetConsoleTextAttribute (outhandlecol_orig);

    Io credo che si può migliorare di molto(sopratutto la parte per disegnare la tabella), però vorrei anche un vostro parere.

    Grazie
    Ciao

  2. #2

  3. #3
    E questo l'avevo pensato anche io, ecco perchè chiedo a voi cosa posso fare per migliorarlo
    Joe91

  4. #4
    D'altra parte non mi risulta che esista un modo portabile per stampare caratteri sullo schermo a determinate coordinate.
    Amaro C++, il gusto pieno dell'undefined behavior.

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.