Skocz do zawartości

Programy, gierki itp. - kody źródłowe.


BeWuO

Rekomendowane odpowiedzi

Siemanko....

Mam do Was taką prośbę... Pokażcie mi swoje (nawet jakieś dawne) programy, gierki zrobione w C++. Konkretnie chodzi mi o kody źródłowe, więc jak bardzo chcecie je zachować w tajemnicy to nie dawajcie =]

Jak coś to ślijcie na: damr@o2.pl

 

Pozdrawiam.

Odnośnik do komentarza
Udostępnij na innych stronach

Był bym wdzięczny gdybyście mi też podsyłali swoje kody źródłowe ale tylko programów i gier pisanych w C++. Jestem początkującym programistom więc takie kody mogą mnie dużo nauczyć.

Mój mail adam2502@vp.pl

Prosze o kody krótsze niż pare set linijek :]

Odnośnik do komentarza
Udostępnij na innych stronach

To ja może dam wg. mnie najlepszy przykład z Symfoni C++ xD Normalnie, ten przykład rulez.

 

1 wersja modifed by pietrus ;]

 

/* Przykład z Symfonii C++ */

#include <iostream.h>
#include <conio.h>

main()
{
int wys, punkty_karne;
while(wys) {
cout<<"Na jakiej wysokosci lecimy?\n";
cin>>wys;

if(wys < 500)
{
 cout<<"\n" << wys << " metrow to za nisko!\n";
 punkty_karne=0;
}
 else
{
 cout<<"\nNa wysokosci " << wys << " metrow jestes juz bezpieczny";
 punkty_karne=1;
 getch();
}

cout<<"Masz " << punkty_karne << " punktow karnych \n";
if(punkty_karne) cout<<"Popraw sie!";
getch();
}
}

 

Wersja 2 by pietrus

/* Przykład z Symfonii C++ */

#include <iostream.h>


main()
{
int wys, punkty_karne;
poczatek:
cout<<"Na jakiej wysokosci lecimy?\n";
cin>>wys;

if(wys < 500)
{
 cout<<"\n" << wys << " metrow to za nisko!\n";
 punkty_karne=0;
}
 else
{
 cout<<"\nNa wysokosci " << wys << " metrow jestes juz bezpieczny";
 punkty_karne=1;
 goto poczatek;
}

cout<<"Masz " << punkty_karne << " punktow karnych \n";
if(punkty_karne) cout<<"Popraw sie!";

goto poczatek;
}

Odnośnik do komentarza
Udostępnij na innych stronach

Trzymajta:

Sznurki

Program który nie wyszedł (a miał) tylko dlatego, że nie dodał dll'i i nawet nie wiadomo, które są potrzebne... Khm... Wymagany C++ Builder 6. Program służy do zapisywania haseł, loginów itepe. Mało bezpieczny, głupi, beznadziejny, dziwny... Miałem popracować dalej... eh...

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności
Wcale nie jest błędem VOID main() :/

http://www.research.att.com/~bs/bs_faq2.html#void-main

 

Skrócona wersja:

Bjarne Stroustrup, twórca C++ pisze:

The definition

 

void main() { /* ... */ }

 

is not and never has been C++, nor has it even been C. See the ISO C++ standard 3.6.1[2] or the ISO C standard 5.1.2.2.1. A conforming implementation accepts

 

int main() { /* ... */ }

 

and

 

int main(int argc, char* argv[]) { /* ... */ }

 

A conforming implementation may provide more versions of main(), but they must all have return type int .... Even if your compiler accepts "void main()" avoid it, or risk being considered ignorant by C and C++ programmers.

Podyskutujemy dalej? :]
Odnośnik do komentarza
Udostępnij na innych stronach

No wiesz, ja Ci moge napisać że autor np Symfonii C++ nie pisze, że void jest niezgodne i mało tego, nawet nie deklaruje ten funkcji =) I powidzmy, że jestem patriotą i wierze jemu, a nie temu gościowi ;] W każdym razie działa, a jedyna rzecz jaka mnie razi, to to, że nie ejst napisane dlaczego nie można używać void.

 

Ja tam C++ specem nie jestem, ale powiedz mi dlaczego nie można używać void. I nie mów, że dlatego że to niezgodne ze standardami, bo to już wiem :P

 

W każdym razie spróbuje sie przyzwyczaić do INT ;]

Odnośnik do komentarza
Udostępnij na innych stronach

Właśnie przez takie myślenie jak twoje teraz jest burdel ze standardami html'a. :]

Ale ja tam akurat standardy HTMLa, to sądzę, że to najważniejsza sprawa pod słońcem :] . Wasze C++y, C#, Javy mnie nie obchodzą, ale HTML to sprawa ważna :D . Po to też jest Transitional w HTML, jak komuś się nie chce zważać na te restrykcje, np. mi :] .

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

BeWuO: Ten jakiś tam gość, to twórca C++ i to chyba on wie lepiej co sam zaprojektował niż autor symfonii. Mimo, że jest ona świetna i ja także ją mam, to jest to zasadniczy błąd.

 

Co do void. Void nie zwraca nic, a każdy program nie powinien nic nie zwracać, ale zwracać 0 czyli wartość NULL jako pomyślnie wykonane zadanie. Jest to sygnał dla systemu operacyjnego, że wszystko przebiegło prawidłowo. Możesz oczywiście skontrować to, że co to za różnica, przecież system jakoś się po tym nie zawiesza. Ale jak napisał autor:

Even if your compiler accepts "void main()" avoid it, or risk being considered ignorant by C and C++ programmers

Poza tym C++ jest wieloplatformowy, więc nie wiadomo czy przez tak prozaiczną rzecz coś gdzieś nie padnie. To chcesz być tym profesjonalnym programistą czy nie? :) Standardy są po to aby był porządek, a nie potem takie kwiatki wychodzą, że jedna książka pisze to, a druga zupełnie coś innego.

 

 

Marmot: Transitional też jest akurat standardem, co prawda pomostowym by przejście na "wyższy poziom" było łatwe, ale nie ma w tym nic złego, bo to jest przyjęta NORMA. A void nią nie jest.

 

Dobra, kończmy dyskusje na ten temat, bo to staje się nudne. :)

 

ps. http://www.research.att.com/~bs/bio.html

Odnośnik do komentarza
Udostępnij na innych stronach

Ha, chciałbyś mieć ostatnie słowo :P hehhe

Nie no ok, rozumiem, standard to standard, trza sie pilnować =] Szczególnie ostatnio ten temat poznałem na HTMLu, gdzie 90% stron to jeden wielki burdel, ale nie w tym rzecz...

Rezcz w tym, że ten text o voidzie to chyba sma wymyśliłem :) Przecież main() jest tak samo funkcją jak inne, a funkcje nie muszą zwracać wartości, a wykonywać czynności :) Poza tym jeśli funkcja zwraca 0 (NULL) to raczej nie znaczy, ze wszystko jest pomyślnie nie? :P Bo to równoważne z false jest, przynajmniej tak mi sie wydaje... :)

 

Ale standard to standard, zapamietam - w koncu jesteśmy profesjonalistami :P

Jeżeli nie chce CI sie już pisać, bo w sumie nawet nie ma co dodać, to nie martw się , nie obrażę się :P Wiele rzeczy jest na świecie które powinno sie robić, mimo że nie wiemy dlaczego :)

Odnośnik do komentarza
Udostępnij na innych stronach

  • Filar Społeczności

A co tam, odpowiem. :)

Przecież main() jest tak samo funkcją jak inne, a funkcje nie muszą zwracać wartości
Tak, ale funkcja main jest najważniejsza i jej zasada działania jest na sztywno określona.

 

Poza tym jeśli funkcja zwraca 0 (NULL) to raczej nie znaczy, ze wszystko jest pomyślnie nie? tongue2.gif Bo to równoważne z false jest, przynajmniej tak mi sie wydaje...
No rzeczywiście. Wydaje Ci się ;). Pomyślałem i odpowiedź przyszła mi w parę sekund. Otóż załóżmy, że main może być void i nic nie zwracać. Załóżmy, że wystąpił jakiś poważny krytyczny błąd. Jesteś w kropce, ponieważ nie możesz zwrócić żadnej wartości będącej synonimem jakiegoś tam błędu, gdyż main jest typu właśnie void i nie da rady poinformować o tym systemu operacyjnego, np. DOS'a (który jest systemem jednowątkowym, więc wyjściowa wartość zmiennej jest bardzo ważna dla systemu). :)

 

Jeśli chodzi o 0, to jest to właśnie najlepsza liczba na to, że wszystko jest w porządku, ponieważ albo informujesz system, że wszystko jest ok, albo wywalasz błąd, a jak już to robisz, to chciałbyś go zapewne skategoryzować. Mamy więc schemat możliwych sytuacji:

- TAK - wszystko dobrze -> Tylko jeden wariant tej odpowiedzi.

- NIE - coś jest źle -> Różne warianty odpowiedzi NIE.

 

Zero jest właśnie taką unikalną liczbą, jedyną w swoim rodzaju, dlatego złuży jako nasze przykładowe TAK. Kolejne liczby zaś spełniają rolę rózróżniacza błędów i idą od 1 w górę, tak więc system operacyjny ma praktycznie nieskończoną liczbę wariantów NIE, które może sobie zdefiniować i interpretować według własnego widzi mi się. Po co więc wciskać w tym szeregu na siłę jakąś liczbę mającą służyć za TAK, skoro może to być zwyczajnie liczba 0 i nie psuje się w ten sposób ciągu liczbowego. Tak jest po prostu najbardziej logicznie i najwygodniej. Zawsze w prostocie siła, po co komplikować sobie życie. :)

 

Swoją drogą zawsze możesz to tak interpretować jako takie pytanie:

 

Czy i jaki wystąpił wyjątek błędu:

0 - false ( zgadza się? :] ) - żaden

jakaś liczba - true

Jeszcze jakieś pytania?

Odnośnik do komentarza
Udostępnij na innych stronach

Swoją drogą zawsze możesz to tak interpretować jako takie pytanie:

 

Czy i jaki wystąpił wyjątek błędu:

0 - false ( zgadza się? :] ) - żaden

jakaś liczba - true

Jeszcze jakieś pytania?

 

 

Pomoc? Eaee czepił się mnie :P

 

O ten cytat mi chodziło... no bo w sumie każdy może interpretować to inaczej, ale domyśliłem że Tobie o to chodzi =] Że np jak zwraca 404 to jest wrror 404 :P To tylko przykład ;]

 

A jeśli chodzi o funkcje main.. To jeśli ona zwraca jakąś wartośc to co się dalej z nią dzieje? No bo nie widziałem np. przypisania Zmienna = main(); =] Bo jak się konczy funckja main, czyli coś zwraca, to się konczy chyba program, czy się myle? Chodzi mi jak sprawdzić i ew. wykonać jakąś czynność, gdy np main zwraca 1.

 

A jeśli chodzi o obsługę błędów, to ja Tworze funkcje bool, które wykonują czynnośc i zwracają true, wtedy jest ok, albo coś się psuje i zwracają false i wtedy mam błąd.

Odnośnik do komentarza
Udostępnij na innych stronach

Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto

Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.

Zarejestruj nowe konto

Załóż nowe konto. To bardzo proste!

Zarejestruj się

Zaloguj się

Posiadasz już konto? Zaloguj się poniżej.

Zaloguj się
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...