Problem z porównywaniem elementów tablicy


(Gigakropa) #1

include

include

include

using namespace std;

int i, j, Skala, Kredyt;

int Plansza[3][3] = {{0, 0, 0},

{0, 0, 0},

{0, 0, 0}};

void main()

{

for(;:wink:

{

i=j=Skala=0;

cout << "1zl - gra w jedej poziomej lini srodkowej" << endl;

cout << "5zl - gra w trzech liniach poziomych" << endl;

cout << "10zl - gra we wszystkich poziomych i pionowych" << endl;

srand(static_cast(time(NULL)));

cout << "PROGRAM PODPIETY POD MASZYNE, SPRAWDZA TABLICE";

Kredyt = 0;

for (i=0; i<3; i++)

{cout << endl;

cout << endl;

for(j=0; j<3; j++)

switch(rand()%5)

{

case 0: Plansza_[j] = 1; cout << "1 "; break;_

case 1: Plansza__[j] = 2; cout << "2 "; break;

case 2: Plansza__[j] = 3; cout << "3 "; break;

case 3: Plansza__[j] = 4; cout << "4 "; break;

case 4: Plansza__[j] = 5; cout << "5 "; break;

};

}; cout << endl;

cout << "Skala 1/5/10";

cin >> Skala;

switch(Skala)

{

case 1: for (i=0;i<1;i++) if (Plansza__[j]==Plansza__[j+1]==Plansza__[j+2])

{

cout << endl;

cout << "Wygrana + 30";

Kredyt += 30;

};break;

case 5: for (i=0;i<3;i++) if (Plansza__[j]==Plansza__[j+1]==Plansza__[j+2])

{

cout << endl;

cout << "Wygrana + 30";

Kredyt += 30;

};break;

case 10: {for (i=0;i<3;i++) if (Plansza__[j]==Plansza__[j+1]==Plansza__[j+2])

{

cout << endl;

cout << "Wygrana + 30";

Kredyt += 30;

};

for (j=0;j<3;j++) if (Plansza__[j]==Plansza[i-1][j]==Plansza[i-2][j])

{

cout << endl;

cout << "Wygrana + 30";

Kredyt += 30;

};

}; break;

default: cout << "cos do bani"; break;

};

cout << endl << Kredyt;

getch();

};

}

Program jest częścią większego programu na zaliczenie w szkole ( maszyny do gier), skopiowałem tylko wadliwy element :slight_smile:

Podejrzewam że błąd jest gdzieś w drugim switch() tym ze stawką bo wyniki decydujący o wygranej nie pokrywają się z widzialną linią na ekranie.

Już nie mam pomysłu jak przerobić algorytm by wyniki porywały się z tym co wyskakuje na ekranie. Z góry dzięki za pomoc.


([alex]) #2

Pierwszy switch zamień na:

int liczba=(rand()%5)+1;Plansza[i][j] = liczba; cout  liczba" "; [/code]Warunki typu:
[code]if (Plansza[i][j]==Plansza[i][j+1]==Plansza[i][j+2])
Zamień na:if (Plansza[i][j]==Plansza[i][j+1]  Plansza[i][j+1]==Plansza[i][j+2]) [/code]

(Gigakropa) #3

Już wszystko gra.

Jak zwykle trywialne błędy. Wielkie dzięki za pomoc