• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

question-closed Gra kółko i krzyżyk.

Object Storage Arubacloud
0 głosów
128 wizyt
pytanie zadane 13 grudnia 2018 w C i C++ przez WojMen Początkujący (330 p.)
zamknięte 13 grudnia 2018 przez WojMen

Mam problem z tym że plansza się nie wyświetla + nie mogę zadeklarować zmiennym tablic[8] i a[8] nad main'em tylko w main'ie. Jeśli zadeklaruje je nad main'em wyświetla się błąd "error  'a' does not name a type". Przez co chyba nie będą działać moje funkcje ruch_gracza1/2. Proszę o wsparcie bo naprawdę nie wiem jak mam to rozwiązać. Nie ustawiłem jeszcze kiedy się wygrywa ale to nie ma znaczenia jak się plansza nie wyświetla.

#include <iostream>
#include <stdlib.h>

using namespace std;

string tablica[8];
string gracz[1];

int a[8];

void start();
void ruch_gracza1(int ruch);
void ruch_gracza2(int ruch);
void plansza();

int main()
{
    
a[0]=1;a[1]=1;a[2]=1;a[3]=1;a[4]=1;a[5]=1;a[6]=1;a[7]=1;a[8]=1;

tablica[0]=1;tablica[1]=2;tablica[2]=3;tablica[3]=4;tablica[4]=5;
tablica[5]=6;tablica[6]=7;tablica[7]=8;tablica[8]=9;
    
    
    start();
    for (int i=2;i<11;i++)
    {
        int y,z;
        if ((y=i/2)==0)
        {
            plansza();
            cout << "Gracz pierwszy wykonuje swój ruch"<<endl;
            cout << "Wybierz miejsce w ktorym chcesz postawic kolko: ";
            cin>>z;
        ruch_gracza1(z);

        }
        else;
        {
            plansza();
            cout << "Gracz 2 wykonuje swój ruch"<<endl;
            cout << "Wybierz miejsce w ktorym chcesz postawic kolko: ";
            cin>>z;
        ruch_gracza2(z);
        }

    }


    return 0;
}

void start()
{
    cout << "Witaj w grze w kolko i krzyzyk" << endl;
    cout << "Podaj imie 1 gracza:";
    cin >>gracz[0];
    cout << "Podaj imie 2 gracza:";
    cin >> gracz[1];
}

void plansza()
{
    cout<<"     "<<tablica[0]<<" | "<<tablica[1]<<" | "<<tablica[2]<<endl;
    cout<<"     "<<"____________________"<<endl;
    cout<<"     "<<tablica[3]<<" | "<<tablica[4]<<" | "<<tablica[5]<<endl;
    cout<<"     "<<"____________________"<<endl;
    cout<<"     "<<tablica[6]<<" | "<<tablica[7]<<" | "<<tablica[8]<<endl;
}

void ruch_gracza1(int ruch)
{
                switch(ruch)
            {
                case 1: if (a[0]!=1) break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[0]="O";
                    a[0]++;
                case 2: if (a[1]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[1]="O";
                    a[1]++;
                case 3: if (a[2]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[2]="O";
                    a[2]++;
                case 4: if (a[3]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[3]="O";
                    a[3]++;
                case 5: if (a[4]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[4]="O";
                    a[4]++;
                case 6: if (a[5]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[5]="O";
                    a[5]++;
                case 7: if (a[6]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[6]="O";
                    a[6]++;
                case 8: if (a[7]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[7]="O";
                    a[7]++;
                case 9:; if (a[8]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[8]="O";
                    a[8]++;
            }
}
void ruch_gracza2(int ruch)
{
                switch(ruch)
            {
                case 1: if (a[0]!=1) break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[0]="X";
                    a[0]++;
                case 2: if (a[1]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[1]="X";
                    a[1]++;
                case 3: if (a[2]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[2]="X";
                    a[2]++;
                case 4: if (a[3]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[3]="X";
                    a[3]++;
                case 5: if (a[4]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[4]="X";
                    a[4]++;
                case 6: if (a[5]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[5]="X";
                    a[5]++;
                case 7: if (a[6]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[6]="X";
                    a[6]++;
                case 8: if (a[7]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[7]="X";
                    a[7]++;
                case 9:; if (a[8]!=1)   break;
                    {
                        cerr<<"Nie mozesz wybrac tego samego pola co ma przeciwnik";
                    }
                    tablica[8]="X";
                    a[8]++;
            }
}

 

komentarz zamknięcia: Zrozumiałem co muszę zrobić.
komentarz 13 grudnia 2018 przez DragonCoder Nałogowiec (36,500 p.)
Funkcja mapa/plansza. Podajesz tam jaka znienna tablice, ktorej chcesz pozniej uzyc, ale musisz ja jakos przekazac. Ogolnie chyba nie do konca zrozumiales sensu funkcji i nie tylko ich.

1 odpowiedź

+1 głos
odpowiedź 13 grudnia 2018 przez niezalogowany
Kod okropny i pełny błędów. Nie sądzę, że znajdzie się ktoś na tyle odważny i mający tyle czasu, aby wytłumaczyć Ci wszystkie problemy i jeszcze poprawić kod. Zacznij naukę C++ od początku. Od tablic - jak zrobić tablicę dwóch elementów. Nie rób x razy tego samego gdy możesz użyć pętli. Obecny kod można skrócić do np 60 linii kodu. Naucz się jak powinna wyglądać konstrukcja switch (chociaż w tym kodzie jest ona zbędna). Zacznij formatować sensownie kod. Nazywaj zmienne zgodnie z ich rolą. Co ciekawego mówią nazwy: a, tablica, x, y, z? Można bez analizowania całego kodu zrozumieć ich rolę? Sprawdzaj czy konstrukcje mają sens np tu y=i/2 nie oznacza, że przypiszemy y jakiś numer gracza (od tego służyłoby modulo).

Podobne pytania

0 głosów
0 odpowiedzi 708 wizyt
pytanie zadane 30 listopada 2021 w C i C++ przez niezalogowany
0 głosów
0 odpowiedzi 382 wizyt

92,570 zapytań

141,422 odpowiedzi

319,643 komentarzy

61,958 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...