Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Wiaderko z farbą

Ostatnio zmodyfikowano 2016-04-25 20:37
Autor Wiadomość
mrci
Temat założony przez niniejszego użytkownika
Wiaderko z farbą
» 2016-04-25 20:25:00
Witam!
Potrzebuję by ktoś zerknął w mój kod, bo niestety ja nie wiem co tutaj jest źle. Program zdecydowanie krzaczy się przy metodzie bucket(), ale co jest przyczyną to nie mam pojęcia :(
C/C++
#include <iostream>
#include <cstdlib>
#include <cstdio>
using namespace std;

enum Color {
    Black = 0,
    White = 1,
    Red = 2,
    Yellow = 3,
    Green = 4,
    Orange = 5
};

class Plansza {
public:
    Color tab[ 70 ][ 20 ];
    Plansza() {
        for( int i = 0; i < 20; i++ ) {
            for( int j = 0; j < 15; j++ ) {
                tab[ j ][ i ] = Black;
            }
        }
        for( int i = 0; i < 20; i++ ) {
            for( int j = 15; j < 40; j++ ) {
                tab[ j ][ i ] = White;
            }
        }
        for( int i = 0; i < 20; i++ ) {
            for( int j = 40; j < 70; j++ ) {
                tab[ j ][ i ] = Green;
            }
        }
    }
   
    void print() {
        for( int i = 0; i < 20; i++ ) {
            for( int j = 0; j < 70; j++ ) {
                cout << tab[ j ][ i ];
            }
            cout << endl;
        }
    }
   
    void bucket( int x, int y, Color newColor, Color oldColor )
    {
        if( x >= 0 && x < 70 && y >= 0 && y < 20 && tab[ x ][ y ] == oldColor && tab[ x ][ y ] != newColor )
        {
            tab[ y ][ x ] = newColor; //set color before starting recursion
           
            bucket( x + 1, y, newColor, oldColor );
            bucket( x - 1, y, newColor, oldColor );
            bucket( x, y + 1, newColor, oldColor );
            bucket( x, y - 1, newColor, oldColor );
        }
        else {
            return;
        }
    }
};
int main() {
    Plansza obraz;
    obraz.print();
   
    obraz.bucket( 5, 15, Orange, Black );
    cout << endl << endl;
    obraz.print();
   
    cin.get();
}

Z góry dzięki za uwagi :)
P-147655
pekfos
» 2016-04-25 20:35:54
C/C++
tab[ y ][ x ] = newColor;
Zmienne w indeksach zamień.
P-147657
mrci
Temat założony przez niniejszego użytkownika
» 2016-04-25 20:37:55
Dzięki :) Czasami ciężko wyłapać takie błędy :P
P-147658
« 1 »
  Strona 1 z 1