Problem z ograniczeniem prawej krawędzi
Ostatnio zmodyfikowano 2010-12-28 14:39
Marys Temat założony przez niniejszego użytkownika |
Problem z ograniczeniem prawej krawędzi » 2010-12-28 05:24:20 Już prawie mi wszystko działa tylko mam mały wkurzający problem z ograniczeniem prawej krawędzi przy powiększaniu. Otóż albo mi wychodzi o jeden za zakres albo zatrzymuje się o jeden za mało, dotyczy tylko powiększania. int x, x1, x2 = 1, y, y1, y2 = 27, z, a, szer, g, f; char klawisz; string T[ 10 ]; szer = dl - 1; z = szer - 1; a =( z - 1 ) / 2; y =( 25 - dl ) / 2; x =( 80 - 2 *( z + z - 1 ) - dl - 4 ) / 2; do { _setcursortype( _NORMALCURSOR ); clrscr(); x1 = x; y1 = y; gotoxy( x1, y1 ); for( int i = 1; i <= dl; i++ ) { y1++; gotoxy( x1, y1 ); cout << 'M'; x1 = x + 2 *( z - 1 ); gotoxy( x1, y1 ); cout << 'M'; x1 = x; } y1 = y; x1 = x; gotoxy( x1, y1 ); for( int i = 1; i <= z; i++ ) { y1++; gotoxy( x1, y1 ); cout << 'M'; x1++; } for( int i = 1; i <= z - 1; i++ ) { y1--; gotoxy( x1, y1 ); cout << 'M'; x1++; } x1 = x + 2 *( z - 1 ) + 3; y1 = y; gotoxy( x1, y1 ); for( int i = 1; i <= dl; i++ ) { y1++; x1 = x + 2 *( z - 1 ) + 3; gotoxy( x1, y1 ); cout << 'M'; x1 = x + 4 *( z - 1 ) + 3; gotoxy( x1, y1 ); cout << 'M'; x1 = x; } y1 = y; x1 = x + 2 *( z - 1 ) + 3; gotoxy( x1, y1 ); for( int i = 1; i <= z; i++ ) { y1++; gotoxy( x1, y1 ); cout << 'M'; x1++; } for( int i = 1; i <= z - 1; i++ ) { y1--; gotoxy( x1, y1 ); cout << 'M'; x1++; } x1 = x + 4 *( z - 1 ) + 5; y1 = y + 1; gotoxy( x1, y1 ); for( int i = 1; i < dl; i++ ) { x1++; gotoxy( x1, y1 ); cout << '2'; y1 = y +(( dl - dl % 2 ) / 2 - 1 ) + 2; gotoxy( x1, y1 ); cout << '2'; y1 = y + dl; gotoxy( x1, y1 ); cout << '2'; y1 = y + 1; } x1 = x + 4 *( z - 1 ) + 4 + dl; y1 = y + 2; gotoxy( x1, y1 ); for( int i = 0; i <( dl - dl % 2 ) / 2 - 1; i++ ) { cout << '2'; y1++; gotoxy( x1, y1 ); } x1 = x + 4 *( z - 1 ) + 6; y1 = y + dl -(( dl + dl % 2 ) / 2 - 2 ); gotoxy( x1, y1 ); for( int i = 0; i <( dl + dl % 2 ) / 2 - 2; i++ ) { cout << '2'; y1++; gotoxy( x1, y1 ); } x1 = x2; y1 = y2; gotoxy( x1, y1 ); for( int i = 0; i < 80; i++ ) cout << '-'; x1 =( 80 - 8 ) / 2; y1 = y2 + 1; gotoxy( x1, y1 ); cout << "LEGENDA:"; T[ 0 ] = "Powiekszanie: +"; T[ 1 ] = "Pomniejszanie: -"; T[ 2 ] = "Przsuniecie w lewo: <-"; T[ 3 ] = "Przesuniecie w prawo: ->"; T[ 4 ] = "Przesuniecie w gore: ^"; T[ 5 ] = "Przesuniecie w dol: *"; T[ 6 ] = "Wyjscie: ESC"; g = 0; f = 1; x1 = 1; y1++; gotoxy( x1, y1 ); for( int i = 0; i <= 6; i++ ) { x1 = 1; y1++; gotoxy( x1, y1 ); cout << T[ g ]; x1 = 40; gotoxy( x1, y1 ); cout << T[ f ]; if( g <= 6 ) g = g + 2; if( f <= 5 ) f = f + 2; } _setcursortype( _NOCURSOR ); klawisz = getch(); switch( klawisz ) { case 43: if( dl <= 17 && x <= 80 - 2 *( z + z ) - dl - 3 && y <= 25 && x > 1 && y > 0 ) { dl++; szer++; z++; a++; y--; x--; break; } case 45: if( dl > 5 && szer > 4 ) { dl--; szer--; z--; a--; y++; x = x + 3; break; } case 72: if( y > 0 ) { y--; break; } case 80: if( y < 26 - dl ) { y++; break; } case 75: if( x > 1 ) { x--; break; } case 77: if( x < 80 - 2 *( z + z - 1 ) - dl - 2 ) { x++; break; } } } while( klawisz != 27 );
|
|
DejaVu |
» 2010-12-28 14:39:33 Pewnie warunki masz nieprawidłowe skoro coś Ci się kopie. Niestety nie przetestuję Twojej aplikacji i nie sprawdzę co masz źle, bowiem nie mam biblioteki/środowiska tego, którego używasz. Czytać całego kodu z kolei nie specjalnie mi się chce ;p |
|
« 1 » |