Zmiana planów (Brawa urban ):
Wszystko jest w załączniku liczę na jakieś rady, z etykietami byłoby o wiele prościej - ale zmiana sterowania nie chce mi działać
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
-
lolasher
- Zasłużony użytkownik
- Posty: 2432
- Rejestracja: 10 paź 2008, 19:28
- Lokalizacja: Zadupie pod Siedlcami ;)
Panie, jak ma ci wracać do menu, jak menu nie jest w pętli?
Po drugie, dlaczego nie wstawisz deklaracji pytań zaraz za deklaracją zmiennych, tylko gdzieś w case'ie, tak że kod nieczytelny?
Może ci napiszę taką bezpośrednią "przekładnię" do etykiet to ogarniesz.
Konstrukcję
zastępujesz
W praktyce potrzebujesz pętlę od początku do końca programu i przełącznik, który ją kończy po wybraniu z menu "Koniec".
Po drugie, dlaczego nie wstawisz deklaracji pytań zaraz za deklaracją zmiennych, tylko gdzieś w case'ie, tak że kod nieczytelny?
Może ci napiszę taką bezpośrednią "przekładnię" do etykiet to ogarniesz.
Konstrukcję
Kod: Zaznacz cały
etykieta
costamcostam;
if warunek then
goto etykieta
Kod: Zaznacz cały
repeat
cośtamcośtam;
until warunek
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Na razie nic nie jest w pętli , z wyjątkiem pętli odpowiedzialnej za losowanie pytań której teraz już nie mogę użyć ponieważ jak ktoś odpowie na pytanie to już nie powróci do gry tylko będzie zmuszony odpowiadać na pytania w wieczność.lolasher pisze: Panie, jak ma ci wracać do menu, jak menu nie jest w pętli?
lolasher pisze: Po drugie, dlaczego nie wstawisz deklaracji pytań zaraz za deklaracją zmiennych, tylko gdzieś w case'ie, tak że kod nieczytelny?
Gdzieś przeczytałem że procedury lepiej niech są przed funkcjami, bo później jak coś dodam to będę się pocił i nie wiedział o co chodzi że nie działa.
Nie nie ogarnę bo niby skąd pętla ma wiedzieć kiedy użytkownik chce coś zrobić ?? Na pdst. twojego przykładu:lolasher pisze: Może ci napiszę taką bezpośrednią "przekładnię" do etykiet to ogarniesz.
KonstrukcjęzastępujeszKod: Zaznacz cały
etykieta costamcostam; if warunek then goto etykieta
Kod: Zaznacz cały
repeat cośtamcośtam; until warunek
załóżmy że warunek się skończy (Pętla się skończy) i użytkownik będzie chciał wykonać zawartość pętli dwa lub więcej razy to co? (Np. sytuacja gdy użytkownik wchodzi dwa (lub więcej razy) w ustawienia sterowania czy grafiki) Będę w ciemno dawał tyle pętli ile użytkownik będzie chciał zmienić jakieś ustawienie? (Widzimisię użytkownika są nieprzewidywalne więc nie wiem ile takich pętli mam zrobić...).
Co masz na myśli mówiąc przełącznik?lolasher pisze: W praktyce potrzebujesz pętlę od początku do końca programu i przełącznik, który ją kończy po wybraniu z menu "Koniec".
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Opuścić można, ale jak potem do niej wrócić gdy zostanie opuszczona? Tak wiem: continnue, ale to nie rozwiąże problemu chyba że nie umiem używać tej procedury
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Co mi to da? jak i tak po zadaniu pytania procedura nie wróci do momentu ruchu użytkownika.
-
lolasher
- Zasłużony użytkownik
- Posty: 2432
- Rejestracja: 10 paź 2008, 19:28
- Lokalizacja: Zadupie pod Siedlcami ;)
ŻE SZO? Nie wiem jakie ty brednie czytasz, a mi i tak nie chodzi o żadne procedury czy funkcje, tylko przypisanie wartości.Mediator14 pisze:Gdzieś przeczytałem że procedury lepiej niech są przed funkcjami, bo później jak coś dodam to będę się pocił i nie wiedział o co chodzi że nie działa.
Chyba ci muszę to napisać w pascalu bardzo dokładnie, bo ty nie chcesz nawet przez chwilę pomyśleć w inny sposób niż przez etykiety.
//Nie rób wcięć na przemian tabem i spacjami, bo mi się to tam rozsuwa strasznie dziwnie to wszystko, ładnie poprzesuwałem równiutko, a wraz na wklejce się popsuło
http://pastebin.com/1rrTn2pn
Przesuwanie pionka daj do procedury, Dobrze i Zle wstaw do wszystkich Pytaj i zamień je na procedury. Cały case na końcu zamień w procedurę losuj wyświetlającą jedno pytanie. Postaraj się maksymalnie skrócić kod w głównej pętli programu, łatwiej będzie ci później dodawać nowe rzeczy.
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Napisałeś:lolasher pisze: ŻE SZO? Nie wiem jakie ty brednie czytasz, a mi i tak nie chodzi o żadne procedury czy funkcje, tylko przypisanie wartości.
yy a o tym nie mówiłem? Chyba coś ci się pokręciło [Przypominam]:lolasher pisze:Po drugie, dlaczego nie wstawisz deklaracji pytań zaraz za deklaracją zmiennych, tylko gdzieś w case'ie, tak że kod nieczytelny?
Deklarowanie zmiennej = to nazwanie zmiennej i zarejestrowanie dla niej miejsca w pamięci,
Definiowanie zmiennej = nadanie zmiennej jakiejś wartości.
W przypadku tego programu deklarowanie zmiennej danego typu (rekordowego) jest zapisane po słowie kluczowym var i type (Tablica rekordów). A zdefiniowane są wartości w treści programu, więc nie wiem o co tobie chodzi,
Nie myśl sobie że nic innego nie próbowałem - ja nie zapisuje nieudanych prób, bo to nie ma sensu, tylko odbiegnę od punktu wyjścia.lolasher pisze:Chyba ci muszę to napisać w pascalu bardzo dokładnie, bo ty nie chcesz nawet przez chwilę pomyśleć w inny sposób niż przez etykiety.
Używając Geaniego nie ma takich problemów, a ty z jakiego kompilatora w ogóle korzystasz, masz jakąś nakładkę na niego?lolasher pisze://Nie rób wcięć na przemian tabem i spacjami, bo mi się to tam rozsuwa strasznie dziwnie to wszystko, ładnie poprzesuwałem równiutko, a wraz na wklejce się popsuło
Zrobię tak, ale już przewiduje problemy dotyczące zmian o jakich mówisz - ale o tych problemach powiem Ci jak już faktycznie będą. A co do tego kodu co tam wpisałeś "Repeat Until (x=26) and (y=21)" już tak zrobiłem tylko niestety ale nie działa pisałem o tym już wcześniej.lolasher pisze:http://pastebin.com/1rrTn2pn
Przesuwanie pionka daj do procedury, Dobrze i Zle wstaw do wszystkich Pytaj i zamień je na procedury. Cały case na końcu zamień w procedurę losuj wyświetlającą jedno pytanie. Postaraj się maksymalnie skrócić kod w głównej pętli programu, łatwiej będzie ci później dodawać nowe rzeczy.
-
lolasher
- Zasłużony użytkownik
- Posty: 2432
- Rejestracja: 10 paź 2008, 19:28
- Lokalizacja: Zadupie pod Siedlcami ;)
No dobrze, w treści programu, ale nie może być zaraz po begin, tylko w jakiś case'ach nie wiadomo gdzie, żebym musiał przewijać i gubić wątek? Co do kompilatora, to wcale nie korzystam Jak już naprawdę muszę to otwieram w Free Pascalu kod wcześniej napisany w Notepad++.
A co do warunku w until, to sprawdziłeś czy moje działa? Bo u ciebie było tak, że pionek przesuwał się raz i zaczynała się pętla. No i to było oczywiste, że nie ma prawa się skończyć, bo nigdzie nie było miejsca, gdzie zmieniałeś wartości x i y. A ja "poszerzyłem" pętle tak, żeby na przemian zadawać pytanie i przesuwać pionek.
I ja jestem ciekawy jakie ty widzisz problemy dla zaproponowanych przeze mnie poprawek. Bo przecież one tylko i wyłącznie poprawiają czytelność, kod się będzie wykonywał identycznie.
A co do warunku w until, to sprawdziłeś czy moje działa? Bo u ciebie było tak, że pionek przesuwał się raz i zaczynała się pętla. No i to było oczywiste, że nie ma prawa się skończyć, bo nigdzie nie było miejsca, gdzie zmieniałeś wartości x i y. A ja "poszerzyłem" pętle tak, żeby na przemian zadawać pytanie i przesuwać pionek.
I ja jestem ciekawy jakie ty widzisz problemy dla zaproponowanych przeze mnie poprawek. Bo przecież one tylko i wyłącznie poprawiają czytelność, kod się będzie wykonywał identycznie.
O co w tym chodzi? Podejrzewam, że ktoś tak napisał o ironio tylko po to, żeby mieć czytelniejszy kod i akurat takiej bzdetnej rady słuchasz, a z poważnymi się kłóciszMediator14 pisze:Gdzieś przeczytałem że procedury lepiej niech są przed funkcjami, bo później jak coś dodam to będę się pocił i nie wiedział o co chodzi że nie działa.
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Już Ci mówię dlaczego procedury daje się przed funkcją: Ponieważ procedury mogą być później używane w funkcjach, a funkcje w procedurach nie - taka w tym logikalolasher pisze:O co w tym chodzi? Podejrzewam, że ktoś tak napisał o ironio tylko po to, żeby mieć czytelniejszy kod i akurat takiej bzdetnej rady słuchasz, a z poważnymi się kłóciszMediator14 pisze: Gdzieś przeczytałem że procedury lepiej niech są przed funkcjami, bo później jak coś dodam to będę się pocił i nie wiedział o co chodzi że nie działa.
PS...dobra później wprowadzę zmiany w kodzie bo aktualnie nie bardzo mam czas.
-
lolasher
- Zasłużony użytkownik
- Posty: 2432
- Rejestracja: 10 paź 2008, 19:28
- Lokalizacja: Zadupie pod Siedlcami ;)
Yyyy a kto mi zabroni? Naczytasz się bredni, a potem marnuj tydzień, żeby ci przetłumaczyćMediator14 pisze:Już Ci mówię dlaczego procedury daje się przed funkcją: Ponieważ procedury mogą być później używane w funkcjach, a funkcje w procedurach nie - taka w tym logika
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Ku*wa nie wierzy... To sobie napisz Procedurę zawierającą funkcję (Nie wywołanie funkcji tylko funkcję) Ja pie*dole :wsciekly: , naczytam się bredni - z tym że te brednie stosuje już od początku mojego programowania i jeszcze ani razu się na nich nie zawiodłem (Przynajmniej jeśli chodzi o procedury i funkcje).
-
TheMediator95
- Posty: 468
- Rejestracja: 29 kwie 2010, 10:35
- Kontakt:
Funkcję zawierającą procedurę można napisać... Ale jak się nadal upierasz że nie to sobie sprawdź jak mi nie wierzysz
A i to nie jest dziwy pogląd tylko prawda.
A i to nie jest dziwy pogląd tylko prawda.
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 3 gości