Salve, ecco il problema
ho realizzato la battaglia navale ma appena lo faccio partire smette di funzionare: che ho sbagliato!?

codice HTML:
#include <iostream> 
#include <stdlib.h> 
#include <time.h> 
using namespace std; 
main() 
{ 
    int c, r, d=0, h=0, rpc, copc, oov, ri, co, var=0; 
    char a[10][10], b[10][10], z; 
    bool y=false; 
    
    for (r=0; r<=10; r++) 
    { 
        for (c=0; c<=10; c++) 
        { 
            a[r][c]='_';
        } 
        
    }
    for (r=0; r<=10; r++) 
    { 
        for (c=0; c<=10; c++) 
        { 
            b[r][c]='_';
        } 
        
    }
    do{ 
    for (r=0; r<10; r++)
    {
        for (c=0; c<10; c++) 
        { 
            if(c==9)
            {
                cout << a[r][c] << "|" << endl; 
            }
            else
            {
                cout << a[r][c] << "|"; 
            }
        } 
    } 
        d++; 
        h=0;
        cout << "Inserisci Nave Da " << d << " Casella/e" << endl; 
        cout << "Inserisci Riga E Colonna Per Posizionare Nave "; 
        cin >> r >> c; 
        r--; 
        c--; 
        a[r][c]='O'; 
        if(d==2) 
        { 
            cout << "Vuoi Posizionare La Nave Orizzontale O Verticale?"; 
            cin >> z; 
            if(z=='O' || z=='o') 
            { 
                c++; 
                a[r][c]='O'; 
            } 
            else
            { 
                r++; 
                a[r][c]='O'; 
            } 
        } 
        else
        { 
            if(d==3) 
            { 
                cout << "Vuoi Posizionare La Nave Orizzontale O Verticale?";  
                cin>>z; 
                if(z=='O' || z=='o') 
                { 
                    do{ 
                        c++; 
                        a[r][c]='O'; 
                        h++; 
                    } 
                    while(h<2); 
                } 
                else
                { 
                    do{ 
                        r++; 
                        a[r][c]='O'; 
                        h++; 
                    } 
                    while(h<2); 
                } 
                if(d==4) 
                { 
                    cout << "Vuoi Posizionare La Nave Orizzontale O Verticale?"; 
                    cin >> z; 
                    if(z=='O' || z=='o') 
                    { 
                        do{ 
                            c++; 
                            a[r][c]='O'; 
                            h++; 
                          } 
                        while(h<3); 
                    } 
                    else
                    { 
                        do{ 
                            r++; 
                            a[r][c]='O'; 
                            h++; 
                          } 
                        while(h<3); 
                    } 
                } 
                else
                { 
                    if(d==5) 
                    { 
                        cout << "Vuoi Posizionare La Nave Orizzontale O Verticale?";  
                        cin >> z; 
                        if(z=='O' || z=='o') 
                        { 
                            do{ 
                                c++; 
                                a[r][c]='O'; 
                                h++; 
                            } 
                            while(h<4); 
                        } 
                        else
                        { 
                            do{ 
                                r++; 
                                a[r][c]='O'; 
                                h++; 
                            } 
                            while(h<4); 
                        } 
                    } 
                } 
            } 
        } 
    } 
    while(d<5); 
    d=0;
    srand(static_cast<int>(time(NULL))); 
    do{ 
        d++; 
        rpc=rand()%10,copc=rand()%10; 
        if(d==1) 
        { 
            b[rpc][copc]='O';
        }
        else
        { 
            if(d==2) 
            { 
                oov=rand()%2; 
                if(oov==0) 
                { 
                    if(b[rpc][copc]!='O') 
                    { 
                        b[rpc][copc]='O';
                        copc++;
                        b[rpc][copc]='O';
                    }
                }
                else
                {
                    if(b[rpc][copc]!='O')
                    {
                        b[rpc][copc]='O';
                        rpc++;
                        b[rpc][copc]='O';
                    }
                }
            }
            else
            {
                if(d==3) 
                {
                    oov=rand()%2; 
                    if(oov==0) 
                    { 
                        if(b[rpc][copc]!='O') 
                        {
                            b[rpc][copc]='O';
                            h=0;
                            do{
                                h++;
                                copc++;
                                b[rpc][copc]='O';
                            }
                            while (h<2);
                        }
                    }
                    else
                    {
                        if(b[rpc][copc]!='O') 
                        {
                            b[rpc][copc]='O';
                            h=0;
                            do{
                                h++;
                                rpc++;
                                b[rpc][copc]='O';
                            }
                            while (h<2);
                        }
                    }
                }
                else
                {
                    if(d==4) 
                    {
                        oov=rand()%2; 
                        if(oov==0) 
                        { 
                            if(b[rpc][copc]!='O') 
                            {
                                b[rpc][copc]='O';
                                h=0;
                                do{
                                    h++;
                                    copc++;
                                    b[rpc][copc]='O';
                                }
                                while (h<3);
                            }
                        }
                        else
                        {
                            if(b[rpc][copc]!='O') 
                            {
                                b[rpc][copc]='O';
                                h=0;
                                do{
                                    h++;
                                    rpc++;
                                    b[rpc][copc]='O';
                                }
                                while (h<3);
                            }
                        }
                    }
                    else
                    {
                        if(d==5) 
                        {
                            oov=rand()%2; 
                            if(oov==0) 
                            { 
                                if(b[rpc][copc]!='O') 
                                {
                                    b[rpc][copc]='O';
                                    h=0;
                                    do{
                                        h++;
                                        copc++;
                                        b[rpc][copc]='O';
                                    }
                                    while (h<4);
                                }
                            }
                            else
                            {
                                if(b[rpc][copc]!='O') 
                                {
                                    b[rpc][copc]='O';
                                    h=0;
                                    do{
                                        h++;
                                        rpc++;
                                        b[rpc][copc]='O';
                                    }
                                    while (h<4);
                                }
                            }
                        }
                    }
                }
            }
        }
    } 
    while (d<5);
    do{
        cout << "Che Casella Vuoi Colpire??"; 
        cin >> ri >> co; 
        ri--;
        co--;
        for (r=0; c<=10; c++) 
        { 
            for (c=0; c<=10; c++) 
            { 
                if (ri==r && co==c) 
                { 
                    if (b[r][c]=='O') 
                    { 
                        cout << "Colpito!"; 
                        b[r][c]='X'; 
                    } 
                    else
                    { 
                        cout << "Acqua..."; 
                        b[r][c]='A';
                  
                    } 
                }
            }
        }
        rpc=rand()%10, copc=rand()%10;
        for (r=0; c<=10; c++) 
        { 
            for (c=0; c<=10; c++) 
            { 
                if (rpc==r && copc==c) 
                { 
                    if (a[r][c]=='O') 
                    { 
                        cout << "Ti Hanno Colpito!"; 
                        a[r][c]='X'; 
                    } 
                    else
                    { 
                        cout << "Non Ti Hanno Colpito..."; 
                        a[r][c]='A';
                  
                    } 
                }
            }
        }
        for (r=0; r<=10; r++) 
        {
            for (c=0; c<=10; c++) 
            {
                var=0;
                if (b[r][c]=='X') 
                var ++; 
                if (var>=15)
                { 
                    y=true;
                    cout << "Win *-*"; 
                }
            } 
        }
        for (r=0; r<=10; r++) 
        {
            for (c=0; c<=10; c++) 
            {
                var=0;
                if (a[r][c]=='X') 
                var ++; 
                if (var>=15)
                { 
                    y=true;
                    cout << "LOSER! XD AHAHAHAH"; 
                }
            } 
        }  
    } 
    while (y!=true); 
      
      
    system("PAUSE"); 
}