kategoria: AMOS
[#31] Re: Początki programowania w Amosie

@cholok, post #30

Krytyka jest naprawdę fajna pod warunkiem, ze jest konstruktywna. Twoja nie jest. Kompletnie nic mi nie pomogłeś.


Benedykt Dziubałtowski

[#32] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #31

Na lenistwo nic nie pomogę. Amos ma taki fajny help. Dajesz kursor na komendę i naciskasz help. Wczyta się pomoc wraz z linkami do tutoriali. Ale niech Ci będzie.

Fade 2000 ściemnia obraz w 40 sekund, a więc:
Fade 2000
End
skończy program nim w ogóle zacznie ściemniać,
Fade 2000
Wait 2000
End
Zobaczysz efekt, ale podany czas jest wyjątkowo za długi.

Print Using format$; zmienna np:
a#=1.344
Print Using "###.###",a#
Najlepiej zobacz przykłady.

Bezrozumne użycie Gosub:

etykieta0:
Do
if warunek1 then gosub etykieta1
if warunek2 then gosub etykieta2
Loop
End
etykieta1:
...
gosub etykieta0
etykieta2:
...
gosub etykieta0

Przeczytałeś chociaż info o gosub?

Poprawniej:
Do
if warunek1 then gosub etykieta1
if warunek2 then gosub etykieta2
exit if warunek3
Loop
End
etykieta1:
...
return
etykieta2:
...
return

Czy teraz wystarczająco konstruktywnie?
[#33] Re: Początki programowania w Amosie

@cholok, post #32

cholok kto ciebie uczyl programowac bo ten twoj program mnie porazil ;) i naprawde jestem pod wrazeniem.petle nie sa po to zeby z nich wyskakiwac ha ha ha sory ale jak zobaczylem ten kod to mnie porazilo ;).benedykt tylko nie ucz sie tak programowac.

[#34] Re: Początki programowania w Amosie

@SzaryWilk, post #33

Gościu, to fragment kodu Benedykta, nie mój. Akurat w tym przypadku "wyskakiwanie" z pętli jest jak najbardziej naturalne. Po drugie, nie zadałeś sobie nawet trudu zobaczenia załączonego wcześniej kodu, a już chcesz uchodzić za programowego guru. No, ale lepiej napisać swoje głupie hahaha niż coś koledze poradzić.
[#35] Re: Początki programowania w Amosie

@cholok, post #32

Może byś się powstrzymał od wyzywania kogoś leniem? Nikt nie urodził się z wiedzą programistyczną.



Benedykt Dziubałtowski

[#36] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #27

Z input dzieją mi się dziwne rzeczy jak skompiluje program i wpisze 237896587659823 to program wyskakuje do WB. Gdy dodam wyjątek to się zawiesza. Poza tym mnożąc 23532452345 * 3124235 wyskakuje mi e+7 czy coś w tym stylu. Też nie wiem jak to obejść.

Przekraczasz zakres zmiennej - żeby obsłużyć takie duże liczby pewnie będziesz musiał wyposażyć AMOSa w jakiś dodatek do ich obsługi.

[#37] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #35

Powstrzymywałem się aż 30 postów, ale owe stwierdzenie faktu nie wynika z Twojego braku wiedzy, a właśnie, żeby inaczej nazwać, "niechciejstwa". Jak napisałeś, masz książkę, jest zaawansowany help z przykładami, a z Twoich pytań i programu jasno wynika, że nie przeczytałeś wiele z tej książki, a złośliwie mówią,c przeczytałeś tylko tytuł na okładce. No, niestety, żeby czegoś się nauczyć to trzeba jednak samemu przysiąść i to solidnie. Widzisz, najpierw naprowadziłem Cię co masz źle, to Ci się krytyka nie spodobała. Potem podałem Ci błędy na tacy, to obraza. A teraz przelicz ile dostałeś porad odnośnie problemów i czy warto było czekać. Ja jeszcze liczę na Szarego, jak mu porażenie minie.
[#38] Re: Początki programowania w Amosie

@cholok, post #37

źle oceniasz sytuacje a złośliwe uwagi zachowaj dla siebie. Inni umia zachowac kulturę, Ty jakoś nie.


Benedykt Dziubałtowski

[#39] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #38

Cholok przekazał Ci sporo cennych uwag. Dlatego np. Twój program się zawieszał, bo źle użyłeś polecenia GOSUB. Z funkcji GOSUB koniecznie trzeba powracać poleceniem RETURN. Twoja konstrukcja programu spowodowała takie zapętlenie. Jeśli chcesz przeskakiwać do innych miejsc w programie używaj polecenia GOTO. GOSUB to jak nazwa wskazuje wywołanie podprogramu (subroutine), z którego bezwzględnie trzeba powracać.

Parametr przy FADE podałeś za duży, dlatego funkcja nie działała jak chciałeś.

Widzę, że Cholok jest bardziej wdrożony w Amos, ja dawno w nim nie pisałem.

Jaką posiadasz książkę do Amosa, bo ja posiadam książkę Pawła Chadzińskiego.

[#40] Re: Początki programowania w Amosie

@Minniat, post #39

Jutro podam autorów książki jest ich dwóch. Teraz nie jestem w domu.

Zgadzam się, że Cholok podał mi wiele cennych wskazówek. Jutro zamierzam je przetestować. Ale cięty język mógł zachować dla siebie. Nie każdy zna biegle Angielki i nie każdy zaraz na samym początku nauki był mistrzem programowania.



Benedykt Dziubałtowski

[#41] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #40

znać biegle Angielkę... :)

[#42] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #38

Co do problemów z funkcją Input, to prawie na pewno efekt przekroczenia zakresu zmiennej liczbowej - poszukaj w helpie jaki jest prawidłowy zakres. M. in. dlatego polecam C - jasno określony, szeroki wybór różnych typów zmiennych.
Jeśli musisz obsługiwać bardzo duże liczby musisz napisać procedury zajmujące się ich obsługą i zdefiniować odpowiednie typy danych. Czy da się to zrobić w Amosie? Nie wiem.
Co do wyniku z Xe+Y, to strzelam, że to tzw. notacja naukowa, czyli X razy 10 do potęgi Y. Znowu efekt użycia dużych liczb.
Z innej beczki.... napisałeś, że "kiedyś może nauczysz się assemblera i C". A dlaczego nie teraz? Inaczej się pisze w C, inaczej w assemblerze, a inaczej w Amosie. Łączy sam sposób myślenia o problemie w sposób algorytmiczny, dzieli - bardzo wiele. Nie sądzę, aby zaczynanie nauki od basica i przejście na inne języki miało być prostsze. Przeciwnie, pisząc w basicu trzeba myśleć o mnóstwie pierdół jak wspomniane zakończenie Gosub funkcją Return, podczas gdy w C podprogram kończy się automatycznie wraz z klamrą zamykającą go (a zawsze można zakończyć wcześniej za pomocą return() ).
Nie zgodzę się, aby zaczynanie z C wymagało znajomości linkera, czy bibliotek systemowych. Przecież to są proste programy działające w konsoli tekstowej - skompilują się i będą działały tak samo niezależnie od platformy: od małego Atari, poprzez Amigę i PC, na Cray kończąc. Będzie trzeba coś kombinować - w razie potrzeby można zacząć szukać, nie wcześniej.
W końcu możliwość budowania bardzo złożonych programów jest zaletą C, nie wadą. Ale nie trzeba od razu przeczytać 30 książek, na początek wystarczy pierwszy rozdział ANSI C - czy idąc z Zakopanego na Giewont (południową ścianą :) ) zabieramy ze sobą raki, namiot, butle tlenowe i prowiant na 30 dni?
[#43] Re: Początki programowania w Amosie

@wali7, post #42

Skoro C/C++ jest takie proste, to wez mi moze wytlumacz, dlaczego na gejmdevie 90% projektow pisanych w C++ jest zarzucanych albo zawieszanych na etapie poczatkowym lub srednim.
Przeciez pisanie w latwym jezyku, to proscizna i przyjemnosc... ok, racja
Wiec dlaczego oni maja takie problemy, ze porzucaja swoje projekty?


A ogolnie to takim pomaganiem jak wasze, spowodujecie co najwyzej ogolne zniechecenie i marazm poczatkujacego..
buuu!
[#44] Re: Początki programowania w Amosie

@Minniat, post #39

Przepraszam, że się wtrącę
Używanie instrukcji GOTO wprowadza tylko bałagan, żeby nie napisać burdel.
Osobiscie kiedy jeszcze pisałem w Amosie Helisferę i CyberBlast ani razu nie użyłem goto ani nawet instrukcji gosub a kody miały gdzieś po 80 kB.
Używałem zamiast tego: głównej pętli programu i procedur ( instrukcje: Procedure, EndProc, Proc ). Programy były przez to bardziej przejrzyste, łatwiej było szukać błędów, ulepszać kod ).

cholok bardzo fajnie napisał jak używać instrukcji gosub, ma rację, że tak jak zrobił to Benedyk powinno być "karane" ;).

Ja pisałem programy tak:

instrukcja stack
poinformowanie o używaniu liczb zmiennopozycyjnych
deklaracje zmiennych
deklarowanie które zmienne są globalne ( ale z tym ostrożnie - ;) )

pętla główna:

Do
wywoływanie procedur
Loop
End


Procedury

Za ewentualne przekręcenia przepraszam, proszę mnie skorygować ;)

A z instrukcjami w programie jest tak, gdy program nie działa wystarczy próbować zmienić wartości w instrukcji, wykorzystać dodatkowy parametr, generalnie próbować, testować, ulepszać i kombinować :)
Przecierz każdy programista zaczynał od prostych programów i dochodził do coraz bardziej skomplikowanych.



Ostatnia modyfikacja: 18.07.2011 01:04:01
[#45] Re: Początki programowania w Amosie

@selur, post #43

A ile projektów pisanych w innych językach jest zarzucanych? Może też 90%

Żaden język nie jest superłatwy... ja tylko twierdzę, że wbrew twierdzeniom co poniektórych piewców Basica (pewnie co najmniej połowa z nich nie co to właściwie jest C), C wcale nie jest trudny.
W wielu wypadkach kod napisany w C jest znacznie czytelniejszy i zwięźlejszy od tego w Basicu. Plątanina Goto, Gosub, For, Next itp potrafi poczynić niezły galimatias. W C zrobić taki bajzel w kodzie jest znacznie trudniej (zwłaszcza początkującemu).
Nie pisz C/C++, bo to nie to samo - C++ to zupełnie inny język, chociaż jednocześnie nadzbiór języka C. Pisanie w C i pisanie C++ to zupełnie inna bajka. Ja proponuję C, nie C/C++.



Ostatnia modyfikacja: 18.07.2011 02:07:04
[#46] Re: Początki programowania w Amosie

@selur, post #43

Skoro C/C++ jest takie proste, to wez mi moze wytlumacz, dlaczego na gejmdevie 90% projektow pisanych w C++ jest zarzucanych albo zawieszanych na etapie poczatkowym lub srednim.

Możesz podać skąd wyciągnąłeś takie informacje???
Obecnie od kilku lat właśnie C++ jest najbardziej popularnym/wiodącym językiem w gamdev.

http://en.wikipedia.org/wiki/Game_programming
cytat:

Today, because it is object oriented and compiles to binary (the native language of the target platform), the most popular game development language is C++[citation needed]. However, Java and C are also popular, but inappropriate for some projects. Assembly language is necessary for some video game console programming and in some routines that need to be as fast as possible, or require very little overhead. Fringe languages such as C#, Ada and Python have had very little impact upon the industry[citation needed] and are primarily used by hobbyists familiar with the languages, though C# is popular for developing game development tools.


[#47] Re: Początki programowania w Amosie

@Rafael/ARMO, post #46

To czemu nikt z was nie powie Benowi calej prawdy dotyczacej C

"Ok Benek ucz sie C.
Nauka zajmie ci ze 2 lata a pozniej jeszcze tylko 2 lata pisania gry. Widzimy sie za 4 lata."
[#48] Re: Początki programowania w Amosie

@selur, post #47

Zgadzam się. Jeśli Benedykt chce napisać grę w kilka dni/tygodni to jak opanuje AMOSa (czyli przeczyta całą książkę ze zrozumieniem i poćwiczy) to jest to możliwe.

Przy okazji: miło usłyszeć, że Asembler jest nadal używany w procedurach wymagających szybkości. Na wolnej Amidze to tylko Asembler lub AMOS, bo inaczej procesor po prostu nie domaga. Na szybkiej Amidze C już bardziej wskazane.

Generalnie jeśli Benedykt chce zobaczyć szybko efekty swojej pracy to AMOS jest odpowiedzią. Jeśli chce nauczyć się programowania to niech zacznie od Pascala/C. Potem będzie mu łatwiej opanować inne języki. Na uczelni, na której studiuję zaczynają od C, jednakże wielu studentów ma problemy już na tym etapie. A mówimy o osobach, które interesuje informatyka i które wybrały ten kierunek.

[#49] Re: Początki programowania w Amosie

@selur, post #47

Mi nauczenie się podstaw C zajęło kilka wieczorów z książką ANSI C pod namiotem (bez komputera). Najwięcej problemów miałem z pozbyciem się głupich Basicowych nawyków (skoki warunkowe i bezwarunkowe, oraz trywialna sprawa dużych i małych liter), czego właśnie chciałbym Benedyktowi oszczędzić.
Nie sądzę, aby przeciętnemu użytkownikowi PPA musiało to zając więcej czasu.

Pytanie - znasz C skoro go tak odradzasz?



Ostatnia modyfikacja: 18.07.2011 15:33:09
[#50] Re: Początki programowania w Amosie

@wali7, post #49

No tak...

C uczycie sie w kilka wieczorow, asemblera w 3 miesiace a Basica w 3 godziny.


Sami Amigowi Geniusze.. nic tylko pozazdroscic
[#51] Re: Początki programowania w Amosie

@Minniat, post #48

Książka to Amos Proesjonal W praktyce. Autorzy to Kszysztof Prusik i Zbigniew Sypaniewski.


Mam takie pytanie bo tego jeszcze nie rozumiem. Dlaczego nie wolno robić skoków za pomocą Gusub?

Jeśli ktoś tu chce dyskutować na temat wyższosci Amosa nad Asemblerem via C lub odwrotnie to bardzo proszę podyskutować o tym w osobnym wątku.




Benedykt Dziubałtowski

[#52] Re: Początki programowania w Amosie

@selur, post #50

Nie C, tylko podstaw C.
[#53] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #51

Możesz robić skoki za pomocą Gosub, tylko zawsze musisz wrócić z procedury za pomocą Return.
[#54] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #51

benek jesli piszesz program w amocie bez funkcji Exit ..z tego co pamietam mozna go przerwac naciskajac lewy Amiga + Q

wysmiewane instrukcje skokow GOTO .. sa nadal uzywane w PL/SQL DB2



Ostatnia modyfikacja: 18.07.2011 16:18:26
[#55] Re: Początki programowania w Amosie

@selur, post #47

Nie odpowiedziałeś na moje pytanie.
Możesz odpowiedzieć? Skąd wziąłeś info że gry raczej nie pisze się w C++?

[#56] Re: Początki programowania w Amosie

@Rafael/ARMO, post #55

Proszę o odpowiedź, ale w nowym wątku, nie tutaj.

[#57] Re: Początki programowania w Amosie

@selur, post #47

Coz, lepiej poswiecic 2 lata na c,szczegolnie ze nauka programowania w C jest latwa bo skladnia jest dosyc klarowna,niz poswiecic rok na amosa, jezyk bez przyszlosci,niesystemowy, wyrzucony na smietnik historii i ograniczony,zacofany itd.

Nie odzywalem sie przez ten czas, chociaz mnie korcilo napisac w pierwszym poscie na temat "wspanialosci"amosa. Jednakze po tym co napisales, nie moglem sie powstrzymac.

Temat byl juz poruszany w watku zalozonym przez Endera wiec polecam Benkowi przeczytac sobie go na spokojnie.

[#58] Re: Początki programowania w Amosie

@AmiChris, post #57

Każdy kolejny post niezwiązany z tematem będzie nagradzany banem. Proszę jeszcze raz o zakładanie nowych wątków ponieważ aktualnie nie mamy narzędzi do sprzątania/przenoszenia śmieci z wątku do innych (tworząc nowy lub łącząc z innymi wątkami).

[#59] Re: Początki programowania w Amosie

@grxmrx, post #58

benedykt nic sie nie przejmuj tylko pisz gierki programy,ksiazke uzywaj tylko do znalezenia instrukcji do pisania,jesli chodzi o gry to model jest prosty
masz glowna petle i z niej skaczesz do menu glownej gry rekordow itd np
jak chcesz moge ci napisac jakas prosta gierke w amosie zebys zobaczyl jak to wyglada w praktyce.

[#60] Re: Początki programowania w Amosie

@Benedykt Dziubałtowski, post #1

Najważniejsze pytanie, na które powinieneś udzielić odpowiedzi to w jakim celu uczysz się amosa, bo jeśli do prostych programików i "przeciętnych" gierek oraz nie interesuje cię "ambitniejsze" programowanie to jest w sam raz dla Ciebie, w innym przypadku jak zachce ci się C/C++, to będziesz miał problem z nawykami z amosa, ponoć ciekawą opcją jest też E (np Cammy z Australii się tego uczyła).

Z input dzieją mi się dziwne rzeczy jak skompiluje program i wpisze 237896587659823 to program wyskakuje do WB.

Prawdopodobnie Amos nie obsługuje tak wielkich liczb, ale możesz łatwo sprawdzić jaki masz zakres działań, jeśli amos nie obsługuje liczb większych niż 32-bitowe (DWORD), to maksymalną liczbą jaką można wpisać będzie 4294967295 (wpisz o jeden większą i jak zadziała, to znaczy, że obsługuje, oczywiście nikt nie wyklucza błędnego działania kompilatora po przekroczeniu zakresu lub w pewnym zakresie). 237896587659823 jest liczbą 48-bitową, ale w językach programowania kwalifikuje się ona pod zakres 64-bitowy (QWORD)


Gosub i GOTO mogą zamydlić czytelność kodu, może dojść np do sytuacji, gdzie program będzie sobie kluczył w zakresie całego cyklu albo będzie coś pomijał (np skoczysz do kolejnego cyklu zanim zakończysz przetwarzanie wszystkich potrzebnych danych. Dlatego trzeba przywiązywać uwagę przy stosowaniu tych funkcji (brak return w gosub objawi się tym, że kod główny stanie się podprocedurą, która wywoła kolejną podporcedurę przechodzącą w kod główny i tak dalej). Przede wszystkim musisz się nauczyć organizować kod tak, aby jego zrozumienie sprawiało ci najmniejszą trudność, tak jak układanie gratów w garażu i ich późniejsze odszukiwanie :).


EDIT: ups, troszkę stary temat, coś mało się dzieje w tym dziale skoro temat z ostatnim postem napisanym dwa miesiące temu znajduje się na 4-tej pozycji :) (a może powinno być raczej :( )



Ostatnia modyfikacja: 09.09.2011 21:53:20
Na stronie www.PPA.pl, podobnie jak na wielu innych stronach internetowych, wykorzystywane są tzw. cookies (ciasteczka). Służą ona m.in. do tego, aby zalogować się na swoje konto, czy brać udział w ankietach. Ze względu na nowe regulacje prawne jesteśmy zobowiązani do poinformowania Cię o tym w wyraźniejszy niż dotychczas sposób. Dalsze korzystanie z naszej strony bez zmiany ustawień przeglądarki internetowej będzie oznaczać, że zgadzasz się na ich wykorzystywanie.
OK, rozumiem