• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Manipulowanie stdout. Zmienianie wypisanego tekstu na ekranie. Nieznajomość bibliotek oraz funkcji.

Object Storage Arubacloud
+1 głos
138 wizyt
pytanie zadane 18 lutego 2016 w C i C++ przez Marcin_N_97 Stary wyjadacz (10,290 p.)
Hej!

Zacząłem się bawić z C++, wymyśliłem sobie pewien projekt. Prosta gierka - plansza jak szachownica, plusik, którym można dostać się do minusika. Nie można przechodzić przez pola z x, pola z o to trampolina, która pozwala Ci przeskoczyć pole dalej. Rozpisałem sobie wszystko pomału i zacząłem zastanawiać się jak to zrobić (nie obiektowo, obiektówke równolegle dopiero poznaje). Problem główny spotkałem w tym jak manipulować strumieniem wyjściowym. Chodzi mi o to, by wydrukować planszę razem z wszystkimi przedmiotami i jak tym dalej sterować. Chodzi o to, żeby nie wypisywać całej planszy od nowa, tylko by plansza zmieniła się. Jakby ktoś podesłał mi link, albo chociaż jak to szukać by przyswoić te informacje. Nie zależy mi na gotowym rozwiązaniu, tylko na nauczeniu się czegoś nowego, najlepiej na przykładach (np. menu, gra w kółko i krzyżyk itp.). Z góry dziękuję za pomoc ;)

1 odpowiedź

0 głosów
odpowiedź 18 lutego 2016 przez MetGang Nałogowiec (34,360 p.)

1. Rysujesz szachownicę.
2. Zapisujesz w tablicy gdzie jaki przedmiot/pole jest.
3. Za pomocą gotoxy() (popatrz w necie) ustawiasz odpowiednio na każdym polu kursor i rysujesz odpowiedni z tablicy przedmiot.
4. Ruch masz na zasadzie gotoxy() na miejsce docelowe i tam rysujesz, potem wracasz gotoxy() do poprzedniej pozycji i zamalowujesz odpowiednim przedmiotem/polem z tablicy.

Tutaj dwa przykłady z mojego bardzo starego kodu z Kółko i Krzyżyk (GotoYX() to własna implementacja gotoxy()):

// Rysowanie planszy
for(int p=1; p<=pX; p++)cout<<" "; cout<<LG<<Bx<<Bx<<Bx<<PG<<LG<<Bx<<Bx<<Bx<<PG<<LG<<Bx<<Bx<<Bx<<PG<<endl;
for(int p=1; p<=pX; p++)cout<<" "; cout<<By<<"   "<<By<<By<<"   "<<By<<By<<"   "<<By<<endl;
for(int p=1; p<=pX; p++)cout<<" "; cout<<LD<<Bx<<Bx<<Bx<<PD<<LD<<Bx<<Bx<<Bx<<PD<<LD<<Bx<<Bx<<Bx<<PD<<endl;
// Rysowanie domyślnego pola
Color(8);
GotoYX(3*LY+0+pY,5*LX+pX); cout<<LG<<Bx<<Bx<<Bx<<PG;
GotoYX(3*LY+1+pY,5*LX+pX); cout<<By<<' '<<AreaSign[LY][LX]<<' '<<By;
GotoYX(3*LY+2+pY,5*LX+pX); cout<<LD<<Bx<<Bx<<Bx<<PD;

// Rysowanie aktywnego pola
Color(7);
GotoYX(3*Y+0+pY,5*X+pX); cout<<LG<<Bx<<Bx<<Bx<<PG;
GotoYX(3*Y+1+pY,5*X+pX); cout<<By<<' '<<AreaSign[Y][X]<<' '<<By;
GotoYX(3*Y+2+pY,5*X+pX); cout<<LD<<Bx<<Bx<<Bx<<PD;

 

komentarz 19 lutego 2016 przez Marcin_N_97 Stary wyjadacz (10,290 p.)
U mnie plan jest taki, że z pliku wczytuje mi wymiar tablicy oraz ilość i położenie wszystkim elementów. Coś jak wczytywanie obrazów pgm czarno-białych. Potem drukuje mi całą tablicę na strumieniu wyjściowym. Gracz wcześniej dowiedział się, że ma używać strzałek do poruszania swoim bohaterem (plusem). Chodzi mi o to, że jak zrobić by tak jakby nadrukować tablicę na poprzednią. Nie wydrukować zmienioną tablicę ze zmienionym położeniem bohatera tylko nadpisać poprzednią zmieniając tylko dwie szufladki w tablicy. Jedna musi być pusta, druga musi być bohaterem i zamieniają się wartościami. Coś typu jak lustrzane odbicie dla tych dwóch (ewentualnie 3, jeżeli używając trampoliny). Wszystko umiem zrobić oprócz tego nadpisania. Albo nie rozumiem dobrze tego gotoxy, ale jak dla mnie to ona nie robi tego co ja chcę. Moje programowanie jest na razie na niskim poziomie więc nie rozumiem zbytnio jak działa Twój kod. Jakbyś mógł mi to bardziej wytłumaczyć, chyba, że nie zrozumieliśmy się nawzajem ;)

Podobne pytania

0 głosów
0 odpowiedzi 145 wizyt
pytanie zadane 11 stycznia 2016 w Inne języki przez Prime_Bull Obywatel (1,820 p.)
0 głosów
1 odpowiedź 333 wizyt
pytanie zadane 15 maja 2020 w C i C++ przez Czarus Obywatel (1,310 p.)
+1 głos
3 odpowiedzi 5,928 wizyt
pytanie zadane 9 czerwca 2018 w C i C++ przez Hiskiel Pasjonat (22,830 p.)

92,551 zapytań

141,399 odpowiedzi

319,531 komentarzy

61,937 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...