Wiaderko z farbą
Ostatnio zmodyfikowano 2016-04-25 20:37
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 :( #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; 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 :) |
|
pekfos |
» 2016-04-25 20:35:54 tab[ y ][ x ] = newColor;
|
Zmienne w indeksach zamień. |
|
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 |
|
« 1 » |