sazian Napisano Kwiecień 4, 2006 Zgłoś Share Napisano Kwiecień 4, 2006 Może najpierw kod [code=Delphi] plansza:array[1..3,1..3]of char=( (' ',' ',' '), (' ',' ĘKB ĘCB NB[[Y[][BB _CB&6VGW&RDf&Ó'WGF6Ć66VćFW#D&ŚV7Bf ŚŃ4)ąą4)4)4)4)dom(3); y:=random(3); if plansza[x,y]=' ' then begin plaVWNIÓBZ[K[^] LJL ÓŚVć@ŚV6RvFw'V3w'V3#&ćFŚSŁ&ćF24)4)ąmątŃĄ4)4)ąmy]:='X'; paintbox1.Canvas.TextOut(x*20-20,y*20-20,'X'); enB[HXB[BB [/code]Włączyłem to i coś nie działa zamiast pełnego rozwiązania pojawia się kilka kółek i krzyżyków(poza tym musze klikać kilka razy na buttona), a za którymś razem (najczęściej trzecim) program się wiesza Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Kwiecień 4, 2006 Zgłoś Share Napisano Kwiecień 4, 2006 [quote] Włączyłem to i coś nie działa zamiast pełnego rozwiązania pojawia się kilka kółek i krzyżyków(poza tym musze klikać kilka razy na buttona), a za którymś razem (najczęściej trzecim) program się wiesza [/quote]Jakiś kod wytrzasnąłeś niewiadomo skąd, nie przeanalizaowałeś go i nas o to pytasz. Poza tym mogłbyś sam to 10 razy lepiej napisać niż autor tego to zrobił. Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 4, 2006 Zgłoś Share Napisano Kwiecień 4, 2006 Kod na labelach z błędami ort. Bosko. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 4, 2006 Autor Zgłoś Share Napisano Kwiecień 4, 2006 a macie jakieś pomysły jak to napisać??bo co ja napisze to sie wiecha :evil: Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Kwiecień 4, 2006 Zgłoś Share Napisano Kwiecień 4, 2006 Nie no bez przesady napisanie kodu ktory losowo wybiera pole w grze kolko i krzyzyk to przeciez to smieszna sprawa jest :/ Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 4, 2006 Autor Zgłoś Share Napisano Kwiecień 4, 2006 dobra mam inny kod [delphi][/delphi]ten nawet prawie działa tylko niech mi ktoś powie dlaczego to sie wiech na koniec :?: Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 4, 2006 Zgłoś Share Napisano Kwiecień 4, 2006 Nie używaj etykiet i 'goto'. Od tego są procedury i pętle.Jak nie wiesz czemu się wiesza, to użyj debuggera. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Budrys Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 [quote] Jak nie wiesz czemu się wiesza, to użyj debuggera. [/quote]Bardzo śmieszne.Ja już bym wolał przeanalizować kod niż czegokolwiek szukać w debuggerze (asm) Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 po pierwsze masz babole w labelach (ortograficzne nie skladowe ;) )po drugie program ci sie wiesza bo pewnie kazesz mu losowac miejsca ktorych juz nie ma (bo sa zajete)po 3 cie nie uzywaj wielokrotnie Randomize bo uzyskujesz efekt odwrotny od zamierzonego.dorob sprawdzanie czy sa jeszcze wolne pola jak nie to niech algorytm wychodziinstrukcja goto powinna byc uzywana tylko w bardzo specyficznych momentach to co ty robisz spokojnie mozna uzyskac przez repeat until albo while Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 CYTAT(Budrys) [quote] Jak nie wiesz czemu się wiesza, to użyj debuggera. [/quote]Bardzo śmieszne.Ja już bym wolał przeanalizować kod niż czegokolwiek szukać w debuggerze (asm)Nie miało być ani trochę śmieszne. A słyszałeś o debuggerze w delphi ? Nie mówię o niskopoziomowym debugowaniu (okno CPU) tylko o debugowaniu "na poziomie kodu źródłowego": F7, F8 czy Ctrl+F7 (do oglądania/modyfikowania zawartości zmiennych). ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
Budrys Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 hmm, nie słyszałem jeszcze o tym Link do komentarza Udostępnij na innych stronach More sharing options...
raV Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 [quote] Nie używaj etykiet i 'goto'. Od tego są procedury i pętle.Jak nie wiesz czemu się wiesza, to użyj debuggera. [/quote]etykiety i goto są fajne. trzeba je umiec uzywac, albo raczej sie do nich przyzwyczaic. Niektorzy wola goto, inni petle, niektorzy rekurencje, inni petle. Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 5, 2006 Zgłoś Share Napisano Kwiecień 5, 2006 CYTAT(raV)CYTAT(KKKas)Nie używaj etykiet i 'goto'. Od tego są procedury i pętle.Jak nie wiesz czemu się wiesza, to użyj debuggera.etykiety i goto są fajne. trzeba je umiec uzywac, albo raczej sie do nich przyzwyczaic. Niektorzy wola goto, inni petle, niektorzy rekurencje, inni petle.Za 4p: [quote] Użycie instrukcji GoTo jest współcześnie niezalecane. Wywodzi się ona z programowania niskopoziomowego. Po opublikowanych przez Edsgera Dijkstrę esejach i referatach \"Go To statement considered harmful\" (1968), wokół tej konstrukcji zostało sformułowanych wiele mitów. Naukowiec zdecydowanie odradzał używanie GoTo, gdyż - przede wszystkim - zatraca sens logiki programu, która w językach wysokiego poziomu jest tworzona poprzez użycie konkretnych instrukcji i składni, a przede wszystkim może przyczyniać się do powstawania trudnych w interpretacji i czasem nieprzewidywalnych w działaniu konstrukcji programu (na przykład skok do wewnątrz ciała pętli For bez początkowego ustawienia zmiennych iteracyjnych - na co języki wysokiego poziomu nie pozwalają). [/quote]Jak widać na przykładzie problemów saziana: "przede wszystkim może przyczyniać się do powstawania trudnych w interpretacji i czasem nieprzewidywalnych w działaniu konstrukcji programu". ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 6, 2006 Autor Zgłoś Share Napisano Kwiecień 6, 2006 znalazłem rozwiązanie :twisted: całość nie wykonuje się 9 razy tylko 4.5 [code=Delphi] pole:array[1..3,1..3]of integer= ((0,0,0), (0,0,0),B JNBN[YB[[Y[][BB _CBB&6VGW&RDf&Ó'WGF6Ć66VćFW#D&ŚV7Bf ĆŚŃ4(4)ąą4)4(4(4)4)i:=1 to 5 do begin powrut: x:=random(4); y:=random(4); Y L [OL H[B]BBBYVWOL[Ś&VvĆUÓŁÓF& amp;6f2FWDWBŁ#Ó#Ł`4)4)ą4)Ńź4(4(4(ź1Ątostr(i )+'= X: '+inttostr(x)+' Y: '+inttostr(y)+' X'); YOMH[XZB]BB[J NBN[J NŚbÓ\"ÓFVŚvFw'WC#ŚbĆUÓÓF4)4)ąmąt4)Ń QŃ=Ąą20-20,'O'); end else goto powrut2; memo1.Lines.Add(intJJH Ę[ JN Ę[JJĘNBBŚVćCŚVćC [/code]i działa Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 goto sa uzyte bzdurnie i wypisalem ci w punktach dlaczego, albo nie chce ci sie czytac albo nie rozumiesz co sie do ciebie mowi. posiedz z 3 h nad debugerem to zrozumiesz. Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 6, 2006 Autor Zgłoś Share Napisano Kwiecień 6, 2006 goto jest użyte dobrze!!!jak zrobiłem "log" to dowiedziałem się dlaczego nie działałoKOD1= X: 3 Y: 2 X1= X: 2 Y: 2 O2= X: 3 Y: 3 X2= X: 1 Y: 2 O3= X: 3 Y: 1 X3= X: 2 Y: 3 O4= X: 2 Y: 1 X4= X: 1 Y: 3 O5= X: 1 Y: 1 Xa niby dlaczego z goto miało by nie działać?? Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 6, 2006 Autor Zgłoś Share Napisano Kwiecień 6, 2006 [quote] po pierwsze masz babole w labelach (ortograficzne nie skladowe )po drugie program ci sie wiesza bo pewnie kazesz mu losowac miejsca ktorych juz nie ma (bo sa zajete)po 3 cie nie uzywaj wielokrotnie Randomize bo uzyskujesz efekt odwrotny od zamierzonego. [/quote]1.pewnie chodzi o powrut nie używam polskich liter w kodzie i nie lubie zapisów typu "powrot"2.i po to jest goto jeśli pole jest zajęte lub = 0(nie ma pola 0) wtedy losuje ponownie3. dzięki za rade poprawiłem Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 [code=Delphi] var t,y: integer; a:array[0..10] of integer; label BY[BHHLY[BBH[JL bEFVEŁV6RvF63ŚVćCŚVćC [/code]Zapewne uznasz ze w tym przykladzie tez uznasz ze goto jest uzyte poprawnie ? Przeciez skacze do labela cos... tylko dlaczego program sie wiesza ? Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 [quote] posiedz z 3 h nad debugerem to zrozumiesz. [/quote]Toster, nie każ mu użyć debuggera, bo to przecież trzeba dłubać w asmie .PBtw. Macie artykuł w swoim serwisie: http://www.unit1.pl/127,34,podglad.html ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 6, 2006 Autor Zgłoś Share Napisano Kwiecień 6, 2006 bo ten będzie się wykonywał w nieskończoność a mój niesory za jakość Link do komentarza Udostępnij na innych stronach More sharing options...
KKKas Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 [quote] bo ten będzie się wykonywał w nieskończoność a mój niesory za jakość [/quote]Od czegoś takiego są schematy blokowe! http://pl.wikipedia.org/wiki/Schemat_blokowyTo, co zaznaczyłeś jest jeszcze bardziej nieczytelne niż Twój kod. ҉ Link do komentarza Udostępnij na innych stronach More sharing options...
sazian Napisano Kwiecień 6, 2006 Autor Zgłoś Share Napisano Kwiecień 6, 2006 no nie wiem dla mnie to jest bardziej czytelne od schematu blokowego :twisted: Link do komentarza Udostępnij na innych stronach More sharing options...
Toster Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 Sazin rozweselasz mnie :)Najpierw sie pytasz co i jak, pozniej jak ktos ci odpowie piszesz znowu "co nie dziala?" i obrazasz sie, ze ktos ci zwrocil uwage mowiac cos robisz zle, pozniej robisz poprawke uwzgledniajac co ci ktos powiedzial, a pozniej pokazujesz swoj kod i tlumaczysz osobie, ktora ci pomogla co robi jej program. Czlowieku, skoro wskazalem ci co jest nie tak i czego nie powinienes robic znaczy sie ze rozumiem twoj kod i nie musisz mi rysowac strzalek, programuje od 15 lat czyli prawie tak dlugo jak ty zyjesz i potrafie zrozumiec podstawy, zastanow sie zanim cos napiszesz bo rece mi opadaja, skoro wiesz ze wszystko robisz dobrze to po co sie pytasz na forum ? [quote] no nie wiem dla mnie to jest bardziej czytelne od schematu blokowego :twisted: [/quote]a przyszlo ci do glowy ze nie kazdy jest toba ? Skoro dla ciebie to jest czytelne to sam sobie to analizuj, jak chcesz pomocy od innych to stosuj sie do ogolnie przyjetych standardow, nie przez przypadek ktos to opracowal i wdrozyl.Nie sadzisz ze bardzij przemyslany kod wygladal by tak ? [code=Delphi] var pola:array[0..2,0..2] of integer; t,x,y,o, zna[YBY[B[Z^NBHf\"Ł\"FvFFĆBŁŹ4(4(4(źI4( repeat x := o mod 3; y := o div 3; YVWHH[Y[BVWHŚćłŚćŁŚćł'&Vł4(%Ąź4(źŃĄź until false; dec(t); until t = 0; end; [/code]dwie petle zamiast skakania i bladzenia, nie mowiac o liczbie iteracji ktora wykona program... Always Dark<br /> Link do komentarza Udostępnij na innych stronach More sharing options...
DarkAndrew Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 W ogóle goto to nieporozumienie nadaje się tylko do asma w którym nie ma instrukcji blokowych. Wszystko co się da zrobić przez goto, lepiej, łatwiej, szybciej robi się pętlami, które po coś ludzie w końcu wymyślili, a nie tak żeby były. Sazian przyzwyczaj się do pętli. Jak nie dociera to zobacz co czytelniejsze: [code=Delphi] var i: integer; begin for i=1 to 5 do begiBZYm[H[Z_CB[B[B [/code]każdy ci powie że goto nadaje się do wyskakiwania z zagnieżdżonych pętlii i że pętle są lepsza i czytelniejsze "Może wam pomoge, może nie, może pierdolcie w dupę się"-prof. Jarząbek Link do komentarza Udostępnij na innych stronach More sharing options...
Firen Napisano Kwiecień 6, 2006 Zgłoś Share Napisano Kwiecień 6, 2006 Eh ale macie temat ;pChyba go nie raz juz walkowano. Nie ma sensu sie o to sprzeczac, chlopak jak bedzie mial troche wiecej doswiadczenia to sam dojdzie do wniosku, ze lepiej goto unikac. Podkreslam, ze 'unikac' nie znaczy 'nie uzywac w ogole' Wszystko jest dla programistow Down With The Sickness Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.