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 (X, Y);
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 (X, Y, num);
}
}
}
return 0;
}
void dis_tab (int coordX[], int coordY[])
{
cout << (char)218;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 2; j++)
cout << (char)196;
cout << (char)194;
}
for (int i = 0; i < 2; i++)
cout << (char)196;
cout << (char)191 << endl;
int k = 1;
for (int i = 0; i < 8; i++) {
cout << (char)179;
for (int j = 0; j < 10; j++) {
coordX[k-1] = (j * 3) + 1;
coordY[k-1] = (i * 2) + 1;
cout << setw (2) << k++;
cout << (char)179;
}
cout << endl;
cout << (char)195;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 2; j++)
cout << (char)196;
cout << (char)197;
}
for (int i = 0; i < 2; i++)
cout << (char)196;
cout << (char)180 << endl;
}
cout << (char)179;
for (int i = 0; i < 10; i++) {
coordX[k-1] = (i * 3) + 1;
coordY[k-1] = 17;
cout << setw (2) << k++;
cout << (char)179;
}
cout << endl << (char)192;
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 2; j++)
cout << (char)196;
cout << (char)193;
}
for (int i = 0; i < 2; i++)
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 punti, punti_orig;
HANDLE outhandle = GetStdHandle (STD_OUTPUT_HANDLE);
GetConsoleScreenBufferInfo (outhandle, &schermo);
col_orig = schermo.wAttributes;
punti_orig = schermo.dwCursorPosition;
punti.X = coordX[num-1];
punti.Y = coordY[num-1];
SetConsoleCursorPosition (outhandle, punti);
SetConsoleTextAttribute (outhandle, FOREGROUND_BLUE |
FOREGROUND_INTENSITY |
BACKGROUND_GREEN |
BACKGROUND_INTENSITY);
cout << setw (2) << num;
SetConsoleCursorPosition (outhandle, punti_orig);
SetConsoleTextAttribute (outhandle, col_orig);
}
Io credo che si può migliorare di molto(sopratutto la parte per disegnare la tabella), però vorrei anche un vostro parere.
Grazie
Ciao