#include using namespace std; /** * Methods */ int getRandomNumberInRange(); bool isNumberAlreadyExtracted(int num); void extractNewNumber(int atindex); void showGrid(); /** * Vars */ int extractedNumbers[90]; int extractedNumberIndex = -1; int main() { cout << endl; cout << "****** TOMBOLA ******" << endl << endl; cout << "Inserire: " << endl; cout << "n: estrai numero" << endl; cout << "g: mostra tabellone" << endl; cout << "x: termina" << endl; srand(time(NULL)); while (extractedNumberIndex < 90) { char input = cin.get(); if (input == 'n') { extractNewNumber(extractedNumberIndex++); } else if (input == 'g') { showGrid(); } else if (input == 'x') { return 0; } } cout << "Numeri terminati!" << endl << endl; return 0; } void extractNewNumber(int atIndex) { int newExtractedNumber = getRandomNumberInRange(); cout << "Numero estratto: " << newExtractedNumber << endl; extractedNumbers[atIndex] = newExtractedNumber; } void showGrid() { cout << endl; for (int i = 1; i < 90 + 1; i++) { cout << (isNumberAlreadyExtracted(i) ? "\033[31m" : "") << i << "\033[0m" << "\t"; if (i % 10 == 0) { cout << endl; } } cout << endl; } int getRandomNumberInRange() { int randomInt = rand() % 91; return isNumberAlreadyExtracted(randomInt) ? getRandomNumberInRange() : randomInt; } bool isNumberAlreadyExtracted(int num) { for (int i = 0; i < sizeof(extractedNumbers); i++) { if (extractedNumbers[i] == num) { return true; } } return false; }