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

Gra w c++ (podsumowanie pierwszych 6 odcinków)

Object Storage Arubacloud
+1 głos
196 wizyt
pytanie zadane 28 października 2015 w C i C++ przez majfirst Obywatel (1,200 p.)
Cześć!

Obejrzałem i przerobiłem 6 pierwszych odcinków Mirosława Zelenta i  postanowiłem napisać jakąś ez game na "rozgrzewke". W sumie dużo nie zrobiłem, ale prosiłbym o poprawienie błędów i pomoc w jednym problemie.

Kod here -> http://wklej.to/hygOy

Jak zalogowano zwraca wartość true to to menu ciągle mi się powtarza (po zalogowaniu) (zajrzyjcie w kod to bd wiedzieć o co mi chodzi).

Z góry dzięki za odpowiedzi, pozdrawiam

2 odpowiedzi

+1 głos
odpowiedź 28 października 2015 przez Bondrusiek Maniak (61,370 p.)

Witam serdecznie,

dam Ci parę wskazówek. Nie pisz zmiennych globalnych gdyż to zła praktyka i powinieneś dążyc do ukrycia danych(hermetyzacja danych). Przekonasz się w większych projektach. Staraj się czyścić buffor po użyciu jakiejś kluczowej zmiennej używając metody cin.sync(); . . Program powtarza się nieskończoną ilość razy gdyż wykorzystałeś pętle for(;;). ,która powtarza się nieskończoność ilość razy(nie podałeś warunków krańcowych). Jeśli chcerz wyjść z jakiejś pętli użyj definicji break; np. po społnieniu jakiegoś warunku.

komentarz 28 października 2015 przez majfirst Obywatel (1,200 p.)
Czyli zmienne umieszczać wewnątrz funkcji?

Inne funkcje będą miałe wtedy do nich dostęp? (z tego co pamiętam to możnabyło ustawiać public czy coś)
komentarz 29 października 2015 przez Bondrusiek Maniak (61,370 p.)
Tak, gdyż w ten sposób ukrywasz zmienne.

Postaram ci się to wyjaśnić obrazowo:

typ_zmiennej a1;

int main()

{

// w tym miejscu na całym obszarze 'main' jest widoczna zmienna a1

typ_zmiennaj a2 ;

for(;;;) lub if() lub jakakolwiek inna funkcja np while() , twojafunkaca()

{

//wedle tego obszaru pamięci zmienna a2 jest zmienna globalną i możesz się do niej //odwoływać w ciele powyższej funkcji lub w obrębie funcji main()

typ_zmiennej a3 ;

for(;;;) lub if() lub jakakolwiek inna funkcja np while() , twojafunkaca()

{

//tutaj możesz bez problemu operować na zmiennej a3 gdyż wedle tego obszaru pamięci

//zmienna a3 jest globalna

}

}

//tu nie możesz się odwołać do zmiennej do zmiennej a3 np a3 = 3 ; gdyż obszar pamięci

//tej zmiennej jest schowany w wnętrzu funkcii for(;;;) czy innych ;

a1= 1 ;

a2 = 2;

//powyższe dwa zapisy są możliwe gdyż zmienna a1 jest globalna względem 'main'

//natomiast a2 jest 'zamkniete' klamrami w funkcji main

}

// unikaj pisania zmiennych globalnych gdyż sercem programu jest funkcja main i na jej

//na jej zasięgu powinny być zamknięte zmienne

//muwi się, że im lepszy kod im mniej zmiennych globalnych więc używa się i w ostaczetności

Mam nadzieje że troszkę rozjaśniłem wątpliwość,

Pozdrawiam
komentarz 29 października 2015 przez iwan9449 Pasjonat (20,810 p.)
Widać, że sam nie wiesz dlaczego nie powinno się używać zmiennych globalnych... I bynajmniej nie chodzi tu o to, że funkcja main "jest sercem programu" :)
0 głosów
odpowiedź 28 października 2015 przez radek024 Szeryf (77,160 p.)
Taki jest kod - powtarza tylko zalogowanie, ponieważ warunek jest spełniony a petla obraca się zawsze, program działa ok. Musisz dokleić częśc kodu z else{} :)
komentarz 28 października 2015 przez majfirst Obywatel (1,200 p.)
Czyli jak mogę złamać tą pętle? ;d
komentarz 28 października 2015 przez radek024 Szeryf (77,160 p.)
Jeżeli warunek będzie niespełniony, czyli na przykład  

for(bool test=true; test!=zalogowany;1+2)

osobiście polecam jendak pętle do{}while(warunek), która wykona się zawsze jeden raz - tutaj zapis będzie

do

{

}while(zalogowany!=true);

czyli czynność będzie się powtarzała dopóki nie będziesz zalogowany. Już nie jestem pewny, tego co piszę - jest późno, w razie problemów napisz je, postaram się na nie odpowiedzieć rano ;)

Podobne pytania

0 głosów
1 odpowiedź 229 wizyt
pytanie zadane 23 czerwca 2022 w C i C++ przez kuki_shin Użytkownik (620 p.)
0 głosów
0 odpowiedzi 703 wizyt
pytanie zadane 30 listopada 2021 w C i C++ przez niezalogowany
0 głosów
0 odpowiedzi 379 wizyt

92,555 zapytań

141,403 odpowiedzi

319,554 komentarzy

61,940 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!

...