piątek, 21 października 2016

Rysujemy główną planszę gry.

Witam.

Dzisiaj będziemy tworzyć główną planszę gry.
 Postaram się w jak najbardziej przystępny sposób wytłumaczyć każdą linię kodu.

Bierzmy się do pracy.

void rysuj()
{

        punk=0;
        punk_kom=0;
//zeruje nasze punkty i punkty przeciwnika ponieważ za każdym razem gdy rysujemy plansze punkty są liczone od nowa
       cout<<"|---|---|---|---|---|---|---|---|---|---|    |-|-|-|-|-|-|-|-|-|-|"<<endl; //rysuje górną ramkę naszej planszy

    for(int j=0;j<=9;j++) //ta pętla odpowiada za narysowanie kolejnych 10 rzędów
    {

    for(int i=0;i<=9;i++) //ta pętla rysuje każde pole z osobna
//ta pętla odpowiada za rysowanie planszy komputera
    {
        if(statek[j][i]==true&&strzal[j][i]==true) //sprawdzamy czy na danym polu jest statek i czy strzelaliśmy w dane pole
        {
            punk++;
            cout<<"| ";
            cout<<"X ";
//jeśli trafiliśmy komputer oznacza to pole  X i dodaje nam jeden punkt 
        }
        else if(strzal[j][i]==true) //sprawdza czy strzelaliśmy w dane pole
        {
          cout<<"| ";
          cout<<"O ";
//jeśli spudłowaliśmy komputer oznacza to pole O
         }
        else
         {
             cout<<"|"<<j<<" "<<i;
//jeśli nie strzelaliśmy w dane pole komputer pokazuje koordynaty pola
          }

     }
    cout<<"|    ";//rysuje boczną ramkę planszy

    for(int i=0;i<=9;i++)//ta pętla rysuje każde pole z osobna
//ta pętla odpowiada za rysowanie planszy komputera
    {
        if(zaznaczenia[j][i]==true&&strzal_kom[j][i]==true)//sprawdza czy na danym polu jest nasz statek i czy komputer strzelał w to pole
        {
           cout<<"|";
           cout<<"X";
           punk_kom++;
//jeśli komputer trafił oznacza to pole X i daje mu punkt
        }
        else if(strzal_kom[j][i]==true) //sprawdza czy na komputer strzelał w dane pole
        {
           cout<<"|";
            cout<<"O";
//jeśli komputer spudłował oznacza to pole O
        }


        else if(zaznaczenia[j][i]==true) //sprawdza czy na danym polu jest nasz statek 
        {
          cout<<"|";
        cout<<"Y";
//jeśli na danym polu jest nasz statek komputer oznacza to pole Y
        }

        else
        cout<<"| ";
//jeśli na danym polu nic niema komputer zostawia je puste
    }

    cout<<"|"<<endl<<"|---|---|---|---|---|---|---|---|---|---|    |-|-|-|-|-|-|-|-|-|-|"<<endl; //rysuje odstępy pomiędzy poszczególnymi rzędami 

    }
    cout<<"TY: "<<punk<<" PRZECIWNIK: "<<punk_kom<<endl;//wypisuje nasze punkty i punkty przeciwnika

//poniższe kilka linijek sprawdza czy przeciwnik nie osiąknął wymaganej liczby punktów (zbił wszystkie statki przeciwnika) i wypisuje stosowny komentarz 
    if(punk==20&&punk_kom==20)
    {
       cout<<"REMIS"<<endl;
    }
    else if(punk_kom==20)
    {
        cout<<"PRZEGRYWASZ"<<endl;
    }
    else if(punk==20)
    {
     cout<<"WYGRYWASZ"<<endl;
    }
}

Na zakończenie 

Dodam jeszcze tylko że narzazie jeśli chcemy wyświetlić naszą plansze wywołujemy ją w funkcji 
main(). Dodatkowo możecie pozmieniać wartości statków i strzałów np.:
statek[2][5]=true;
strzal[2][5]=true;
zaznaczenia[4][6]=true;
strzal_kom[8][3]=true;
da nam to taki efekt:

 Podsumowanie.

Myślę że tyle kodu do napisania wystarczy na dziś. Oczywiście kod źródłowy całej aplikacji dostępny jest na moim profilu github. Zachęcam do samodzielnego przeanalizowania kodu.

Jestem otwarty na wszelkie uwagi, pytania, itp. Zapraszam do komentowania.

Brak komentarzy:

Prześlij komentarz