Weierstrass ha scritto:
if (M[(i/2)*3+j][(i&1)*5+k]) {
Ridefinisci M[][][] se vuoi evitare divisione e resto per due
aspetta, non sto capendo xD
questo è il programma completo, a scuola lo stiamo facendo passo dopo passo, per questo ancora mancano ambo ecc
#include <iostream>
using namespace std;
int i, j, k;
int cinquina = 0;
void tombo();
void cinqui();
void tabellone();
void azzeraMatrice();
void inserisciNumero();
int r, c, n;
int M[9][10];
int main()
{
azzeraMatrice();
tabellone();
inserisciNumero();
}
void cinqui()
{
for (int i = 0; i < 9; i++)
{
if ((M[i][0] != 0) and (M[i][1] != 0) and (M[i][2] != 0) and (M[i][3] != 0) and (M[i][4] != 0) or
(M[i][5] != 0) and (M[i][6] != 0) and (M[i][7] != 0) and (M[i][8] != 0) and (M[i][9] != 0))
{
cout << "\n\n\t\t\t\t\tCinquina!";
cinquina = 1;
}
}
}
void tabellone()
{
cout<<"\n\n\t\t\t\t-- GIOCO DELLA TOMBOLA --";
cout<<"\n\n";
cout<<"\n\t_________________________________________________________________________";
for (int i = 0; i < 9; i++) {
cout << "\n\n";
for (int j = 0; j < 10; j++) {
cout << "\t" << M[i][j];
}
}
cout<<"\n\t_________________________________________________________________________";
}
void azzeraMatrice()
{
for (r = 0; r < 9; r++) { //azzeramento matrice
for (c = 0; c < 10; c++) {
M[r][c] = 0;
}
}
}
void inserisciNumero()
{
for (int i = 0; i < 9; i++) {
for (int j = 0; j < 10; j++) {
cout << "\n\n\t\t\t\tInserisci numero --> ";
cin >> n;
system("cls");
tabellone();
r = (n - 1) / 10;
c = (n - 1) % 10;
M[r][c] = n;
tombo();
if (cinquina == 0) cinqui();
}
}
}
void tombo()
{
for (i = 0; i < 6; i++)
{
int tot = 0;
for (j = 0; j < 3; j++)
for (k = 0; k < 5; k++)
if (M[j][k] != 0) {
tot++;
}
if (tot == 15) {
cout << "\n\n\t\t\t\t\tTOMBOLA!";
break;
}
}
}