Tablica w złym miejscu

0

Witam mam problem z tablicą która pojawia sie nie tam gdzie trzeba(prawa część). Czy ktoś ma jakies pomysł co z tym zrobić żeby działało jak powinno?

#include <iostream>
#include <conio.h>
#include <cstdlib>
#include <windows.h>


    using namespace std;

    int szerokosc,wysokosc,szybkosc;
    int gora,dol,prawo,lewo;
    int WXW,WYW;
    int WXJ,WYJ;
    char pole[35][35];

    /*
    [0][0],[1][0],[2][0],[3][0]
    [0][1],[1][1],[2][1],[3][1]


    */

    //puste pole -p; weza -w, jedzenie -j

    int pracownik(int &x)
    {
        cout<<"podales zly wymiar szerokosci planszy. Podaj poprawny wymiar z zakresu 5-35 \n";
        cin>>x;


        if(x<5 ||x>35)
        {
            x=20;
        }
    }

int main()
{
    cout << "Podaj szerokosc planszy z zakresu 5 do 35" << endl;
    cin>>szerokosc;
    if(szerokosc<5||szerokosc>35)
    {
        pracownik(szerokosc);
    }

    cout<<"podaj wysokosc planszy z zakresu 5 do 35 \n";
    cin>>wysokosc;
    if(wysokosc<5||wysokosc>35)
        {
            pracownik(wysokosc);
        }

    cout<<szerokosc<<" " <<wysokosc<<endl;

    cout<<"jak szybko chcesz zagrac? Od 1 do 10 \n";
    cin>>szybkosc;
    if(szybkosc<1) szybkosc=1;
    if(szybkosc>10)szybkosc=10;

    cout<<szybkosc<<endl;

    cout<<"jakimi klawiszami chcesz grac"<<endl;

    cout<<"GORA"<<endl;
    gora =getch();
    if(gora==224) gora=gora+getch();
    if(gora==0) gora=gora-getch();

    cout<<"DOL"<<endl;
    dol =getch();
    if(dol==224) dol+=getch();
    if(dol==0) dol-=getch();

    cout<<"LEWO"<<endl;
    lewo=getch();
    if(lewo==224)lewo+=getch();
    if(lewo==0)lewo-=getch();

    cout<<"PRAWO"<<endl;
    prawo=getch();
    if(prawo=224)prawo+=getch();
    if(prawo==0)prawo-=getch();

    for(int i=0;i<wysokosc; i++)
    {
        for(int j=0;j<szerokosc;j++)
        {
            pole[j][i] ='p';
        }
    }

    WXW = rand()%szerokosc;
    WYW = rand()%wysokosc;

    pole[WXW][WYW]='w';


    do{
    WXJ= rand()%szerokosc;
    WYJ= rand()%wysokosc;
    }while(pole[WXJ][WYJ]!='p');

    pole[WXJ][WYJ]= 'j';



     system("CLS");

     for(int i=0;i<=szerokosc;i++)
        {
        cout<<"--";
        }

     for(int i=0; i<wysokosc;i++)
     {
         cout<<endl<<"|";
         for (int j=0; j<szerokosc; j++)
         {
        if(pole[j][i]=='p')cout<<" ";
        if(pole[j][i]=='w')cout<<"O";
        if(pole[j][i]=='j')cout<<"X";
         }

         cout<<"|";
     }
     cout<<"\n";

     for(int i=0; i<=szerokosc;i++)
     {
         cout<<"--";
     }



   getch(),getch();
 return 0;
}

0
if(prawo=224)prawo+=getch();

zabrakło =?

0

Dalej mi nie działa nie wiem co jest nie tak.

1

Dlaczego w pionie wypisujesz jeden znak ('|') a w poziomie dwa ('--')? Zmien na ('-') i bedziesz mial poprawne granice planszy.
Dodatkowo przydaloby sie wprowadzic lepsza walidacje i podzielic program na funkcje. Wyswietlanie jest tu najmniejszym problemem.

  for(int i=0; i<=szerokosc+1;i++)
     {
         cout<<"-";
     }
0

jestem ślepy, u mnie wyglądało to jako jeden - dzekuje za pomoc

1 użytkowników online, w tym zalogowanych: 0, gości: 1