Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    Problema battaglia navale [c++]

    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"); 
    }

  2. #2
    Utente di HTML.it L'avatar di minomic
    Registrato dal
    Nov 2010
    Messaggi
    635
    Ciao,
    i tuoi array hanno dimensione 10, quindi nei for devi mettere r<10 e non r<=10.
    Ricorda che gli elementi sono numerati da 0 a 9: se cerchi di leggere/scrivere l'elemento numero 10 ottieni un errore.


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.