[C++] Granice konsoli.
Ostatnio zmodyfikowano 2014-12-05 11:38
nehel Temat założony przez niniejszego użytkownika |
[C++] Granice konsoli. » 2014-12-03 22:43:25 Witam. Mam do napisania projekt w którym trzeba narysować figurę (w kształcie litery E) która ma się nie wysypywać kiedy dotknie granicy konsoli. Nie ważne, czy za pomocą przesunięcia, czy powiększenia do maksymalnych rozmiarów; ma się nie wysypać. No i problem polega na tym, że udało mi się taką funkcję stworzyć tylko dla dolnej granicy. Próbowałem analogicznie z pozostałymi granicami, lecz figura działa tak: górna krawędź figury, po dotarciu do górnej krawędzi konsoli zmienia pozycję (cała górna krawędź figury i tylko ta część figury) z aktualnej na początek konsoli (lewy górny róg), prawa krawędź granicy "przepuszcza" połowę figury, po czym figura się zatrzymuje, natomiast lewa krawędź konsoli przetwarza całą figurę (kiedy ta już całkowicie zniknie z konsoli, mimo że powinna poprzestać właśnie na krawędzi konsoli) na poziomą linię długości górnej krawędzi figury i przemieszcza całą figurę na lewy górny róg konsoli (sytuacja wtedy jest taka sama jak z górną krawędzią figury). Mam takie dane konsoli i wytyczne co do granic: int x = 0, y = 0; int console_size_x = 80; int console_size_y = 25;
if( x > console_size_x - bok ) x = console_size_x - bok;
if( x < 0 ) x = 0;
if( y > console_size_y - bok ) y = console_size_y - bok;
if( y < 0 ) y = 0;
Próbowałem metodą prób i błędów, po kolei podstawiać wszędzie te same dane, tzn albo 0 albo console_size_x/console_size_u albo 80 / 25, albo próbowałem dodać ten bok i wszędzie wynik marny. Jedyną dobrze działającą funkcją jest dolna krawędź zatrzymująca figurę. Byłbym bardzo wdzięczny za wszelką pomoc. PS. Jestem początkującym programistą i staram się rozumieć co robię, dlaczego tak zmieniam / tak jest, jak sprawić by lepiej działał, lecz w tym przypadku nie potrafię wyobrazić sobie rozwiązania tego problemu po tej metodzie prób i błędów. EDIT: Problem rozwiązany! |
|
darko202 |
» 2014-12-05 11:38:43 |
|
« 1 » |