Prato fiorito c++

di il
2 risposte

Prato fiorito c++

Buongiorno, avevo già scritto sul forum per aiuto e mi avevate illuminato, io sono molto scarso come programmatore e mi sono inceppatto sullo stesso programma che stavo facendo per scuola, purtroppo alla mia professoressa non vanno bene alcuni miei metodi di programmazione e mi sono dovuto adattare ai suoi e mi è uscito un codice enormemente lungo, perciò non mi offendo affatto se non avrete voglia di leggerlo. (1943 righe)

#include <iostream>
#include <windows.h>
#include <ctime>
#include <cstdlib>
using namespace std;
int prato[10][10]; //array contenente le bombe
char pratovisivo[11][11]; //array da fare uscire a video con caselle vuote
void riempimentoprato(); //riempio l'array dove ci sono le bombe
void riempimentopratovisivo(); //riempio l'array da fare uscire a video come parte visiva
void scoprimentocaselle(); //modifica il prato visivo per mostrare il prato con le bombe
void escopratovisivo(); //esco a video il pratovisivo
void escoprato(); //esco a video il prato
void escozeri(); //funzione che scopre tutti gli zeri adiacenti
void ripetizioneescozeri(); //funzione che ripete la funzione escozeri
int cont1,colonnio,righio,cont=0;
int main()
{
    srand(time(NULL));
    cout<<"\n\n   >Prato fiorito in un campo 10x10 con 10 bombe.\n\n   >Press enter."; //givvo all'utente dati bsilari del programma
    cin.get(); //aspetto input per procedere
    system("cls");
    riempimentoprato();
    riempimentopratovisivo();
scoprimentocaselle(); //il ciclo in cui si ripete il programma è direttamente all'interno della funzione
system("cls");
escopratovisivo(); //quando si vince o perde il programma da a video la
    cout<<"\n\n   >Press enter.";
    cin.get(); //aspetto input per procedere
    system("cls");
cout<<">Prato scoperto:\n\n";
escoprato(); //faccio vedere all'utente tutto il prato scoperto
    cout<<"\n\n   >Press enter.";
    cin.get(); //aspetto input per procedere
return 0;
}
void ripetizioneescozeri()
{int colonna= colonnio;
int riga=righio;
int flag=0;
int righio1=righio;
int colonnio1=colonnio;
do //spostamento di tutto il sistema verso destra
{
    if (colonna==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso il basso
{
    if (riga==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do//spostamento di tutto il sistema verso l'alto
{
    if (riga==0) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1--;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso sinistra
{
    if (colonna==0) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1--;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra in basso
{
    if (colonna==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra
{
    if ((colonna==9)&&(riga==9) )continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1++;
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra in basso
{
    if (colonna==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra
{
    if ((colonna==9)&&(riga==0) )continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1++;
       righio1--;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra in basso
{
    if (colonna==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra
{
    if ((colonna==0)&&(riga==9) )continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1--;
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra in basso
{
    if (colonna==9) continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       righio1++;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
do //spostamento di tutto il sistema verso destra
{
    if ((colonna==0)&&(riga==0) )continue;
       do //spostamento a destra
       {
         if (colonna==9) continue;
         else
            {
                escozeri();
                colonna++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento a sinistra
       {
         if (colonna==0) continue;
         else
            {
                escozeri();
                colonna--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==9) continue;
         else
            {
                escozeri();
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso
       {
         if (riga==0) continue;
         else
            {
                escozeri();
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a destra
       {
         if ((colonna==9)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna++;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in basso a sinistra
       {
         if ((colonna==0)&&(riga==9)) continue;
         else
            {
                escozeri();
                colonna--;
                riga++;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a destra
       {
         if ((colonna==9)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna++;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
colonna= colonnio1;
riga=righio1;
flag=0;
       do //spostamento in alto a sinistra
       {
         if ((colonna==0)&&(riga==0)) continue;
         else
            {
                escozeri();
                colonna--;
                riga--;
                if(prato[colonna][riga]==0) {flag=0;}
                else{flag=1;}
            }
       } while (flag!=1);
       colonnio1--;
       righio1--;
colonna= colonnio1;
riga=righio1;
flag=0;
if(prato[colonna][riga]==0) {flag=0;}
else{flag=1;}
} while (flag!=1);
colonnio1=colonnio;
righio1=righio;
flag=0;
}
void escozeri() //funzione da completare che fa in modo che se la casella scoperta è zero escan gli zeri adiacenti
{
switch (righio)
{
case 0:
    switch (colonnio)
    {
   case 0:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio+1]==0) {pratovisivo[colonnio+2][righio+2]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
    break;
   case 9:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio-1][righio+1]==0) {pratovisivo[colonnio][righio+2]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
    break;
   default:
    if (prato[colonnio+1][righio+1]==0) {pratovisivo[colonnio+2][righio+2]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio-1][righio+1]==0) {pratovisivo[colonnio][righio+2]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
    break;
    }
    break;
case 9:
    switch (colonnio)
    {
    case 0:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio-1]==0) {pratovisivo[colonnio+2][righio]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
   case 9:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio-1][righio-1]==0) {pratovisivo[colonnio][righio]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
   default:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio-1]==0) {pratovisivo[colonnio+2][righio]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio-1][righio-1]==0) {pratovisivo[colonnio][righio]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
    }
    break;
default:
    switch(colonnio)
    {
    case 0:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio+1]==0) {pratovisivo[colonnio+2][righio+2]='0';}
if (prato[colonnio+1][righio-1]==0) {pratovisivo[colonnio+2][righio]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
   case 9:
   pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio-1][righio+1]==0) {pratovisivo[colonnio][righio+2]='0';}
if (prato[colonnio-1][righio-1]==0) {pratovisivo[colonnio][righio]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
   default:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio+1]==0) {pratovisivo[colonnio+2][righio+2]='0';}
if (prato[colonnio+1][righio-1]==0) {pratovisivo[colonnio+2][righio]='0';}
if (prato[colonnio+1][righio]==0) {pratovisivo[colonnio+2][righio+1]='0';}
if (prato[colonnio-1][righio+1]==0) {pratovisivo[colonnio][righio+2]='0';}   //esco gli zeri adiacenti alla casella
if (prato[colonnio-1][righio-1]==0) {pratovisivo[colonnio][righio]='0';}
if (prato[colonnio-1][righio]==0) {pratovisivo[colonnio][righio+1]='0';}
if (prato[colonnio][righio+1]==0) {pratovisivo[colonnio+1][righio+2]='0';}
if (prato[colonnio][righio-1]==0) {pratovisivo[colonnio+1][righio]='0';}
    break;
    }
    break;
}
}

void riempimentoprato() //riempio il prato di numero 9=mina
{
        int cont=0;
for (int riga=0;riga<10;riga++)
{
    for (int colonna=0;colonna<10;colonna++)
    {
       prato[colonna][riga]= rand()% 7;
       switch (prato[colonna][riga])
       {
       case 0:
        cont++;
        prato [colonna][riga]=9;
        if (cont>10){prato [colonna][riga]=0;} //condizione per la quale in un campo non spawnano più di 10 mine
        break;
       default:
        prato[colonna][riga]=0;
        break;
       }
    }
}
// tutta questa serie di if serve a aumentare il valore delle caselle vicino ad una bomba, comprese le condizioni di esistenza se la casella studiata è ai bordi del campo
int riga,colonna=0;
if ((colonna==0)&&(riga==0))
{
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna+1][riga+1]!=9) prato[colonna+1][riga+1]++;
}
if ((colonna==9)&&(riga==9))
{
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
if (prato[colonna-1][riga-1]!=9) prato[colonna-1][riga-1]++;
}
if ((colonna==0)&&(riga==9))
{
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna+1][riga-1]!=9) prato[colonna+1][riga-1]++;
}
if ((colonna==9)&&(riga==0))
{
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
if (prato[colonna-1][riga+1]!=9) prato[colonna-1][riga+1]++;
}
    for (int riga=1;riga<10;riga++)
{
colonna=0;
if (prato[colonna][riga]==9)
{
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna+1][riga+1]!=9) prato[colonna+1][riga+1]++;
if (prato[colonna+1][riga-1]!=9) prato[colonna+1][riga-1]++;
}
}
    for (int colonna=1;colonna<10;colonna++)
{
riga=0;
if (prato[colonna][riga]==9)
{
if (prato[colonna-1][riga+1]!=9) prato[colonna-1][riga+1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna+1][riga+1]!=9) prato[colonna+1][riga+1]++;
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
}
}
    for (int colonna=1;colonna<10;colonna++)
{
riga=9;
if (prato[colonna][riga]==9)
{
if (prato[colonna-1][riga-1]!=9) prato[colonna-1][riga-1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna+1][riga-1]!=9) prato[colonna+1][riga-1]++;
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
}
}
    for (int riga=1;riga<10;riga++)
{
colonna=9;
if (prato[colonna][riga]==9)
{
if (prato[colonna-1][riga+1]!=9) prato[colonna-1][riga+1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
if (prato[colonna-1][riga-1]!=9) prato[colonna-1][riga-1]++;
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
}
}
for (int riga=1;riga<10;riga++)
{
    for (int colonna=1;colonna<10;colonna++)
    {
        if (prato[colonna][riga]==9)
        {
if (prato[colonna+1][riga+1]!=9) prato[colonna+1][riga+1]++;
if (prato[colonna+1][riga-1]!=9) prato[colonna+1][riga-1]++;
if (prato[colonna+1][riga]!=9) prato[colonna+1][riga]++;
if (prato[colonna][riga+1]!=9) prato[colonna][riga+1]++;
if (prato[colonna][riga-1]!=9) prato[colonna][riga-1]++;
if (prato[colonna-1][riga+1]!=9) prato[colonna-1][riga+1]++;
if (prato[colonna-1][riga-1]!=9) prato[colonna-1][riga-1]++;
if (prato[colonna-1][riga]!=9) prato[colonna-1][riga]++;
        }

    }
}
}
void riempimentopratovisivo()
{
char car=48; // per mettere i numeri da 0 a 9 nella prima riga
int cont,rigo,colonno=0;
pratovisivo[colonno][rigo]=0;
for (int riga=0;riga<1;riga++)
{
    for (int colonna=1;colonna<11;colonna++)
    {
       pratovisivo[colonna][riga]=car;
       car++;
    }
}
car=65; //per mettere le lettere da A a J nella prima colonna
for (int colonna=0;colonna<1;colonna++)
{
    for (int riga=1;riga<11;riga++)
    {
       pratovisivo[colonna][riga]=car;
       car++;
    }
}

for (int riga=1;riga<11;riga++)
{
    for (int colonna=1;colonna<11;colonna++)
    {
       pratovisivo[colonna][riga]=219; //riempio l'array di quadratini eccetto la prima riga e la prima colonna
    }
}

}

void escopratovisivo()
{
 for (int riga=0;riga<11;riga++)
{
    for (int colonna=0;colonna<11;colonna++)
    {
      cout<< pratovisivo[colonna][riga]<<" ";  //faccio uscire a video il prato con i char
    }
    cout<<"\n"<<endl;
}
}
void escoprato() //faccio uscire il prato con gli int
{
 for (int righio=0;righio<10;righio++)
{
    for (int colonnio=0;colonnio<10;colonnio++)
    {
      switch (prato[colonnio][righio])
{
    case 0:
    pratovisivo[colonnio+1][righio+1]='0';
if (prato[colonnio+1][righio+1]==0) pratovisivo[colonnio+2][righio+2]='0';
if (prato[colonnio+1][righio-1]==0) pratovisivo[colonnio+2][righio]='0';
if (prato[colonnio+1][righio]==0) pratovisivo[colonnio+2][righio+1]='0';
if (prato[colonnio][righio+1]==0) pratovisivo[colonnio+1][righio+2]='0';
if (prato[colonnio][righio-1]==0) pratovisivo[colonnio+1][righio]='0';
if (prato[colonnio-1][righio+1]==0) pratovisivo[colonnio][righio+2]='0';
if (prato[colonnio-1][righio-1]==0) pratovisivo[colonnio][righio]='0';
if (prato[colonnio-1][righio]==0) pratovisivo[colonnio][righio+1]='0';
    break;
    case 1:
    pratovisivo[colonnio+1][righio+1]='1';
    break;
    case 2:
    pratovisivo[colonnio+1][righio+1]='2';
    break;
    case 3:
    pratovisivo[colonnio+1][righio+1]='3';
    break;
    case 4:
    pratovisivo[colonnio+1][righio+1]='4';
    break;
    case 5:
    pratovisivo[colonnio+1][righio+1]='5';
    break;
    case 6:
    pratovisivo[colonnio+1][righio+1]='6';
    break;
    case 7:
    pratovisivo[colonnio+1][righio+1]='7';
    break;
    case 8:
    pratovisivo[colonnio+1][righio+1]='8';
    break;
    case 9:
    pratovisivo[colonnio+1][righio+1]=15;
    break;
}
    }
}
 for (int riga=0;riga<10;riga++)
{
    for (int colonna=0;colonna<10;colonna++)
    {
      cout<< prato[colonna][riga]<<" ";
    }
    cout<<"\n"<<endl;
}
}
void scoprimentocaselle()
{
    int scelta,cont=0;
    char righio1=0;
do
{
    escopratovisivo();
    cout<<"   >Inserire colonna\n\n   >Colonna:";
    cin>>colonnio;
        system("cls");
    escopratovisivo();
     cout<<"   >Inserire riga\n\n   >riga:";
    cin>>righio1;
    if ((righio1==65)||(righio1==97)) righio=0;
    if ((righio1==66)||(righio1==98)) righio=1;
    if ((righio1==67)||(righio1==99)) righio=2;
    if ((righio1==68)||(righio1==100)) righio=3;
    if ((righio1==69)||(righio1==101)) righio=4;
    if ((righio1==70)||(righio1==102)) righio=5; // prendo l'input della riga che va bene sia maiuscola che minuscola
    if ((righio1==71)||(righio1==103)) righio=6;
    if ((righio1==72)||(righio1==104)) righio=7;
    if ((righio1==73)||(righio1==105)) righio=8;
    if ((righio1==74)||(righio1==106)) righio=9;
    system("cls");
    cout<<"   >Scegliere operazione:\n\n   >1.Scopri\n\n   >2.Segna come mina\n\n   >3.Non sono sicuro\n\n   >4.Annulla\n\n   >";
    cin>>scelta;
    system("cls");
    switch (scelta) //quattro scelte: scopro la casella , la segno come una mina, la segno con un punto interrogativo, annullo l'operazione
    {
    case 1:
switch (prato[colonnio][righio])
{
    case 0:
     ripetizioneescozeri();
    break;
    case 1:
    pratovisivo[colonnio+1][righio+1]='1';
    break;
    case 2:
    pratovisivo[colonnio+1][righio+1]='2';
    break;
    case 3:
    pratovisivo[colonnio+1][righio+1]='3';
    break;
    case 4:
    pratovisivo[colonnio+1][righio+1]='4';
    break;
    case 5:
    pratovisivo[colonnio+1][righio+1]='5';
    break;
    case 6:
    pratovisivo[colonnio+1][righio+1]='6';
    break;
    case 7:
    pratovisivo[colonnio+1][righio+1]='7';
    break;
    case 8:
    pratovisivo[colonnio+1][righio+1]='8';
    break;
    case 9:
    pratovisivo[colonnio+1][righio+1]='#'; //bomba
    cont1=10;
    break;
}
        break;
    case 2:
        pratovisivo[colonnio+1][righio+1]=5;
        cont++;
        break;
    case 3:
        pratovisivo[colonnio+1][righio+1]=63;
        break;
    case 4:
        break;
    default:
        cout<<"\n\n   >Riprova";
        break;
    }
}while (cont!=10);
        cout<<endl;
    }

Il mio problema è sulla funzione ripetizioneescozeri() che quando viene richiamata il programma si ferma e non fa più nulla.
Spiegata brevemente quella unzione fa che: aperta una casella con uno zero scopra tutte le caselle intorno con gli zeri, poi si sposti a destra e ripeti tutta l'operazione finchè non arriva a fine campo.
Fatto questo torna alla casella iniziale e ripete il procedimento per le otto direzioni (destra,sinistra,su,giù,in alto a sinistra,in alto a destra, in basso a sinistra, in basso a destra).
Fatto questo la funzione ripete tutto quello appena fatto spostandosi di una casella a destra fin a raggiungere il bordo, per poi tornare alla casella iniziale e ripetere il tutto per ogni direzione.
Grazie in anticipo e scusate l'oscenità del codice.

2 Risposte

  • Re: Prato fiorito c++

    Ciao
    e normale che non faccia niente quella routine se non gli fornisci la casella da cui partire!
    visto che il prototipo di funzione e:
    void ripetizioneescozeri()
    se vuoi fare il gioco del prato fiorito
    i consiglio che ti posso dare sono i seguenti:
    fagli restituire la casella con il dato diverso da zero cosi potrai iniziare a porre i limiti e/o gli aiuti da dare per la risoluzione.
    non fare un unica funzione con tutti gli spostamenti perchè cosi il codice diventa di difficile comprensione.
    fanne 4 una per ogni direzione alle quali come parametro darai la riga e la colonna dalla quale partire e in uscita fornirai riga e colonna della posizione dove stà la bomba o -1 se non l'avrà trovata e quindi quella riga o quella colonna sono tutte da cancellare.

    spero di esserti stato di aiuto
  • Re: Prato fiorito c++

    Il programma sembra molto ripetitivo, non puoi fare una funzione/procedura per sintetizzare tutto? Mangieresti tante righe di codice
    Ad occhio, sembra ci sia molto copia e incolla, "procedurizzando" tutto il programma dovrebbe essere leggero e subito comprensibile.
Devi accedere o registrarti per scrivere nel forum
2 risposte