Przesuwanie figury c++
Ostatnio zmodyfikowano 2023-01-26 19:04
wiktorlem Temat założony przez niniejszego użytkownika |
Przesuwanie figury c++ » 2023-01-26 18:05:57 Siema! Mam do wykonania na studia projekt który w skrócie polega na: Wydrukowaniu określonego kształtu Określeniu jego podstawowej wielkości i znaku ASCII z którego ma się składać Dodatkowo ma być możliwość przesuwania go za pomocą strzałek i zwiększania/zmniejszania używając +/-. Mam 4 pierwsze punkty ale kompletnie nie mam pomyslu na to jak zaimplementować przesuwanie danego kształtu/obiektu. Wiem że istnieją zmienne typu COORD, ale nie mogłem znaleźć zbyt wielu informacji o nich. Jeśli ktoś byłby w stanie jakoś to klarownie wytłumaczyć bądź też podrzucić linka do poradnika, (oczywiście anglojęzyczne też wchodzą w gre) byłbym bardzo wdzięczny. Fragment kodu próbowałem użyć z podobnego projektu który znalazłem na jednym forum, ale niezbyt mi wychodziło Podrzucam mój kod. #include <iostream> #include <windows.h> #include <conio.h> using namespace std; void rysuj( int w, char z, int x, int y ); void zmien_rozmiar( int w, char z, int x, int y ); void menu(); int main() { int x = 0, y = 0; int w = 0; char znak; char zna; menu(); cout << "Podaj rozmiar figury: "; cin >> w; cout << "Podaj znak z klawiatury z ktorego ma sie skladac figura:"; cin >> znak; do { rysuj( w, znak, 1, 1 ); zmien_rozmiar( w, znak, x, y ); cout << "zaby zakonczyc dzialanie programu wcisnij enter" << endl; zna = getch(); } while( zna != 32 ); return 0; } void menu() { cout << "WITAJ W PROGRAMIE" << endl; cout << "ABY ZMIENIAC ROZMIAR FIGURY WCISNIJ + LUB -" << endl; cout << "ABY PRZESUWAC FIGURE WCISNIJ STRZALKE W GORE, DOL, LEWO, LUB PRAWO" << endl; cout << "ABY ZAKONCZYC DZIALANIE PROGRAMU WCISNIJ SPACJE" << endl; } void rysuj( int w, char z, int x, int y ) { for( int i = x; i < w; ++i ) { for( int j = y; j < w; ++j ) { if(( j == x ) ||( j ==( w - 1 ) ) ||( i == j && j > w / 2 ) ||( j + i -( w - 1 ) == x && j <( w - 1 ) / 2 ) ) cout << z; else cout << " "; } cout << endl; } }
void zmien_rozmiar( int w, char z, int x, int y ) { char znak; znak = getch(); switch( znak ) { case '+': { system( "cls" ); w += 1; rysuj( w, z, x, y ); break; } case '-': { system( "cls" ); w -= 1; rysuj( w, z, x, y ); break; } } } Z góry dzięki! |
|
pekfos |
» 2023-01-26 19:04:08 Mam 4 pierwsze punkty ale kompletnie nie mam pomyslu na to jak zaimplementować przesuwanie danego kształtu/obiektu. Wypisz dodatkowe spacje na początku każdej linii by przesuwać w poziomie. Dodatkowe puste linie dla pionu. Wiem że istnieją zmienne typu COORD, ale nie mogłem znaleźć zbyt wielu informacji o nich. https://learn.microsoft.com/en-us/windows/console/coord-str |
|
« 1 » |