Bula i spula Napisano Czerwiec 6, 2006 Zgłoś Share Napisano Czerwiec 6, 2006 Witam!!Na początek może kod (przez ostatnie dwie godziny pracowałem nad czytelnością, jasnoscią itp, bo wcześniej był chaos):(daję składnię od delphi) [code=Delphi] uses crt,dos; var nacisnieto:boolean; BYX^N[YBK\"7&ś63Ś'FSśĆv7Łv&CśW'VćVłŚ64(ąąltlte; label zanikanie; procedure poruszanie(a:char)BY[BBYOI [BY[BśW'VćVłŁvs4(4(ŃĄ4( begin kierunek:='p'; ^ NB[BYvrrFV&VvŹ4(4( end; if a='d' then begin Y[ZI BNłVćCŚVćCŚgVć7F'66łv&C)4(ѹѥ4(Ń4)4( temp:=readkey; if temp=chr(0) then temp2:=reY^NB[[ [JMBY [LNL\"FV3Ós\"\"FV3Ó#C\"FV3ÓC3\"\"F4(ŃĄŹŃŃźŃ; end; end; begin for x:=0 to 80 do [YCBNLHB& amp;Vvw77Fś6ąmąt4( Ąmąt //tablic end; ktory:=0; [YHZY[ZBBM 7ŚFśv6ŚŁÓ#ź ź4(4(c:=50; //aby potem latwo dodac ustawieniHXHY[CBX^L7ĆćFVv62vWŚ śĆv7ŁŁÓźą4(ą repeat if keypressed then klaXHY]HZ]]ZBbśĆv7ŁÓs\"FVbśW'VćVfCfwCvŃĄźąŃąŃąŃlka, to jesli kierunek jest inny niz prawo, to zmien na lewoBY]LNL[YY[ZrFV'W7ŚćRvrF6ćśW'V朹ѥŹąŃĄoruszanie('d'); //to samo z innymi kierunkami Y]LN [YY[Z [[RvrrF6ćśW'VćśbśŃĄŹźźli nacisniety esc, to koniec gry gotoxy(xJNZYH^Z[ZXCBw&FRr2rć7rFV6Ś\"5 ŃźŃŃĄ4( ktory:=ktory+1; // poruszeniH^HZHBYv62fCśFVFVv63ŁFVv 62łŚW6ĆŚVććFVv62ąąąŃźź end; if dlugosc=X^[HY6vćVĆF&7ŚćW7WvćR&ść6vWŚ 4(:=0 to 80 do //wyszukiwanie LLHb'V6\"%ÓÓFVźź4(n //najdawniejszego JLNBw&FRrrźź4( goto zanikanie; //kroku [ BBVćCŚćśćS Ńźź4(o 25 do begin XLNXLKLNBF'ŁF'Ó4(4(ąĄc); if kierunek='l' then if plansza[x-1,yOLH[XZBYY[ZI [Y[7ŚłÓÓFV'&VłbśW'VćVłvrrFąmątŃĄŹ4(k='d' then if plansza[x,y+1]=1 then break; NZJNB[VWNLNB'V6ÓŁF'VFÓ\"ÓĄĄ4(4(Ń4)4 [/code]Jak widać prosty snake bez przenikania ścian i bez jedzenia. No i jest problem: nie usuwa mu się końcówka, tylko jakieś tam inne znaki. A objaśnię jak to zanikanie chciałem zrobić:-tworzymy tablicę ruch o tej samej ilości wierszy i kolumn, co plansza-tworzymy zmienną ktore, która mówi nam, który jest to "krok" węża-do odpowiedniej komórki tablicy ruch podajemy, który to jest ruch-zmienna ilosc mówi nam, ile punkcików zawiera w danym momencie wąż-w zmiennej max ustawiamy maksymalną długość-jeśli ta zostanie osiągnięta (ilosc=max) to szukamy pierwszego ruchu w tablicy ruch-i usuwamy w odpowiadającej pozycji na ekranie znaczek "#"Dpiero gdy to pisałem, to wpadłem na to, że sposób zawiódłby, gdyby się dwa razy przejechało po tym samym polu, ale to i tak nie działa. Po uruchomieniu gry usuwane są jakieś losowe punkty co jakiś czas. I wiem, że jak się idze np. w lewo i naciśnie strzałkę w prawo, to wąż pauzuje się, ale wcześniej było dobrze i widocznie przy tym porządkowaniu coś zepsułem.Proszę o pomoc z tym zanikaniem końca węża, bo nad tym samym problemem siedzę już od wczoraj. Ten sposób wydaję się strzasznie skomplikowany. Może byłby inny?I teraz wpadłem na jeszcze inny pomysł: utworzyć tablicę trójwymiarowoą plansza:array[1..80] of array[1..25] of array[1..1] of byte i tam przechowywać w tym "trzecim wymiarze" który to jest ruch. Tylko w tym też dość łatwo jest się zaplątać...PozdrawiamBula i spula [/code] Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 6, 2006 Autor Zgłoś Share Napisano Czerwiec 6, 2006 ================tutaj są odpowiedzi innych użytkowników, prawda?=======================================Nie no, nie odpowiadajcie tyle, bo się pogubię!A tak na poważne, to doszedłem do czegoś takiego: [code=Delphi] uses crt,dos; var nacisnieto:boolean; dYX^N[YBKLX]NBśĆv7Łv&CśW'VćVłŚ6#Ć7ltltltŃ4( label zanikanie; procedure poruszanie(a:char); begin BY OI ĘH[BY[BśW'VćVłŁvsŁÓ4(4(4(4(ĄŃĄ4( begin kierunek:='p'; ^ NB[BBbvrrFV&VvŹ4(4( end; if (a='d') then beginBY[ZI BŁłVćCŚVćCŚgVć7F'6Ź4)4(ѹѥ4(Ń begin temp:=readkey; if temp=chr(0) then [XY^NB[[ [JMBY FV3Ó#\"FV3Ós\"\"FV3Ó#C\"FV3ÓCĄŃ4(ŃĄŹŃeto:=true; end; end; begin for x:=1 to 80 do [YCBNLHHB& amp;Vvw77Fś6ąmąt4( ąza[x,y,2]:=0; //tablic end; ktNLN[YHZY[ZBBŁÓC 7ŚFśv6Śźź4(4( szybkosc:=50; //aby potem latwo dX]Y[YHXHY[CBX^LL7ĆćFVv62vW ŚśĆv7ŁŁźą4 kierunek:=' '; clrscr; gotoxy(x,y)BBX]B[VKNZNBbśW&W76VBFVśĆv7ŁŁ'66łąŃąŃźźŃ4(4(nacisnieto=true then begin Y]LNML[[YJ ĘNH[HX6ćWFĆWv7G'ŚĆśFŚW6ĆśW'VćVŚW7Bćć&vŃźąź4(ąŃĄszanie('l'); //to samo z innymi kierunkami Y]L [[YJ ĘN[[[[ZHY'VćśbśĆv7ŁÓC3\"FV'W7ŚćRvrźŃźź4(ą27 then break; //jesli nacisniety esc, to koniec gry [VKWNLNBBBbF'fCśFVF'ŁF'łŃŃĄ4(in for x2:=1 B#ŁÓF#RF ąmątŃĄ4( begin BĆ7Ś\"\& quot;ÓŁÓąmąt4( ktory:=ktory-1; & nbsp;[Z[YNBVćC 4(4(4(4( for x2:=1 to 80 do for LLHHBY[V\"% ÓÓFVV6PĆ7Śątąmąt4(4(4( o 80 do for y2:=1 to 25 do Y[VLWOLH[BYvF\"\"Ńą4(4(4( delay(szybkosc); if (kierunek='l') [ [VLKKWOLJH[XZBY Y'VćVłwrćBĆ7ŚłÓÓFV'&VłĄŹĄąmątŃĄŹ4( if (kierunek='d') and (plansza[x,y+1,1]=1) th[XZBB[BB[[ NJHÓ\"Ó#b\"Ó6'67#&WVBŃ4)4 [/code]Ale dalej nie mogę nic wymyśleć, bo już wszystko wydaje się być prawidłowo i jasno...p. Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Czerwiec 6, 2006 Zgłoś Share Napisano Czerwiec 6, 2006 Hmm ja to zrobilem u siebie tak, ze mialem tablice dynamiczna, kazdy elemnt to byla czesc weza, pierwszy element to glowa, potem kolejne czesci i koniec. Teraz robisz tak: lecisz od konca tej tablicy i dajesz ostatniem elementowi wspolrzedne poprzedniego i tak do pierwszego elementu. Jak dojedziesz do pierwszego, to zmienieasz wspolrzedna na np. y - 1 (zalezy, w ktora strone ma isc waz).Tutaj, na dole, masz kod mojej gry "WonSz": http://www.unit1.pl/145,0,kody.html Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 6, 2006 Autor Zgłoś Share Napisano Czerwiec 6, 2006 Dzięki, ale jak uruchamiam plik dpr delphim 7, to mi wyskakuje, że nie ma tflatpanel, a jak ignoruję i chcę skompilować, to ze 20 błędów wyskakuje i jak naciskam, żeby coś tam usunęło, to na koniec w ogóle się nie uruchamia... Jak temu zaradzić? Może byś podesłał gotowy plik .exe?pzdr./edit1/ łojejku. ja tego kodu wcale nie kapuję! ja nawet nie wiem, co to jest to omega! (sterowniki ati ). Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 7, 2006 Autor Zgłoś Share Napisano Czerwiec 7, 2006 Aaaaa. Już kapuję, co napisałeś w poście. To powiedzmy, że robię coś takiego. [code=Delphi] vć(6ŹŚśejxĘo+ZŚ4)Ńźź4)4)ŃĄĆmtĆmt4 [/code]Czy zadziałało by? Za wszelkie odpowiedzi będę niezmiernie wdzięczny.Pzdr./BiS/edit1/ trochę poprawiłem kod, bo wcześniej, to raczej było źle/edit2/ i jak wąż coś zje, to wtedy powiększamy zmienną 'zmienna' i ustawiamy ponownie rozmiar tablicy, tak? Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Czerwiec 7, 2006 Zgłoś Share Napisano Czerwiec 7, 2006 Hmm troche inaczej myslalem, ale juz zalapales (kod bedzie z glowy, pewnie cos zle bedzie ;-) ): [code=Delphi] type element_weza = record posX , posY : Integer ; [BBB^^H[[Y[^H^ ui'SetLength(waz , 3) ; // waz sklada sie z glowy, jednej czescH[XHH- zhłr3huł7^bpu6WDĆVćwFvĆVćwFvvvv5Łum!Ąt `4)m!Ątdm!Ą - 1].posY ;ózjxui'for i := High(waz) downto 1 do begin waz[i].posX := waz[HHWKB^WKHH^HHWKHB[BBbśW' VćVvWŚĆWvFVvł5Łvł5Śą}źŃĄlt` lt`+ 1 else if kierunek_weza = gora then waz[0].posY := waz[0]HHCB[HYY[Z^HH[^KHHł5 [/code] Link do komentarza Udostępnij na innych stronach More sharing options...
DarkAndrew Napisano Czerwiec 7, 2006 Zgłoś Share Napisano Czerwiec 7, 2006 Sorka teraz będzie offtop.Buła na przyszłość nazywaj zmienne jakoś czytelnie a nie "zmienna" albo "temp, temp2,temp3" "ktory" i w komentarzach dawaj jaka wartość zmienna przechowuje tj. np długość {długość węża} bo to pomaga innym pomagać tobie.//prosze nie banujcie mnie za to poważne wykroczenie // hę? - Iskar "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...
Bula i spula Napisano Czerwiec 7, 2006 Autor Zgłoś Share Napisano Czerwiec 7, 2006 To ja sobie teraz poszukam, co to jest [code=Delphi] type'hs77kb_znXmśśŚę i/ŃyĘ+v6o)-Ąź/_v+v^vV(ŚźŚź+Łzpk6źKh-Ś3k8ózjx'Ł;Śży!ś33jei^bpvf\"ŁvvFFy05hŚz{^ł<ŹśHzWŚz{rŚŚ'ózi-z 'ji(jŚ'ś<KŹŹ\"jljJ?6'ŹręhŹjxs7(ui'uses crt; type element_weza=record X,Y:integer; [BBB^^H[[Y[^NBN]NBB6VGW&R6ĆVł&Vv6WFĆVćwFvĆVćwFvł(mĄĄt`mĄĄt`4(mĄĄ].Y:=waz[high(waz)-1].Y; end; begin clrscr; setl[ ^ĘNB^KLB^KNLLB^KÓ3vł%ŁÓvłŁÓCw7&FśvćRvWŚŃ4(ltd4(4(ĄĄŃź begin gotoxy(waz[i].X,waz[i].Y); write('ĘNB[BBX][[^YB[ [/code]Na ekreanie mi wyświetla coś takiego:KOD# #i koniec.../edit5:)/Już działa Mój błąd. Teraz nad tym trochę posiedzę i napiszę rezultaty. (nad przesuwaniem)// pisałem z głowy, dlatego był błąd z tym "to", oczywiście miało być "downto" ;-) - Iskar Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 7, 2006 Autor Zgłoś Share Napisano Czerwiec 7, 2006 OK. Mam coś takigeo: [code=Delphi] uses crt; type element_weza=record X,Y:integer; [BBB^^H[[Y[^NBN]NBY'VćVĆ3Ć3#Ś6#śĆv7Łv&CVSŚ'&ł5b7G4(Ń4(4)ąŹ4(4(ŃąŃ(waz, length(waz)+1); waz[high(waz)].X:=waz[high(waz)-1KB^Y ^WKN]^Y ^KLWKNB[BBć7F'66łv&Cf FVFV#Ś6#FV4(4(Ń4(ŃĄŃĄ begin temp2:=readkey; temp3:=ord(teJMB[BY [LNL H [LNMLH\"FV3Ó#C\"FV3ÓC3\"\"FV3Ó#rFV'66Ń4(4(4(4)4)4(ą4(length(waz, 3); waz[2].X:=38; waz[2].Y:=12; waz[1].LNB^WKNLLB^KM[YH^ć7ŚFPvłŁÓ#&WV@6'67#ĄĄŃźź4(4(mt=waz[i-1].x; waz[i].y:=waz[i-1].y; end; Y^Y[]XBBY]LNs\"FVśW'VćVłŁwsŚW6ĆŚ7FĆć66ćWFĆWv7G'ŚąŃźąŹźŃźąź if klawisz=19200 then kierunek:='l'; //to samo z innymiY[[ZCBY]L [Y[ZI ćśW'VćśbśĆv7ŁÓC3\"FVśW'VćVłŁźŃźź4(ąŃĄak; if kierunek='l' then waz[0].x:=waz[0].x-1; iY[ZI [^K]^K NBYY[ZIrFVvłŁvłÓbśW'VćVłvBrFVvłltŹ4(4(ltŃĄlt4(if waz[0].x=81 then waz[0].x:=1; if waz[0].y=26 then waKNLNBY^KOL[^KNLNBBŁvvFvFF&VvvFvśąmtd4(Ń4(ą4(nd; until klawisz=27; end; begin menu[1]:=' Nowa H BY[VNIH BY[VNIYXs6'67#FWF6Ć\"Rf\"ŁÓF2F&Vv4(ŃŃą4(ŃŃ4(Ńxy(32,11+y); write(menu[y]); end; y:=1; reX]B^ NB^X[ MJNBJ3\"w&FRVU3Ł&VFśW3#Łr4(ĄŃĄ4(ŃŃą4( textbackground(0); gotoxy(32,11+y); write(menu[yJNBYI [XĘJNBYI [[ĘJNBbÓFVŁÓ3bÓBFVŁÓb36\"ŃĄ4(ŃĄĄĄĄ4(1 then gra; end. [/code]tylko powiedzcie mi, jak zrobić, żeby to nie chodziło tak, że tworzy pierwszy, drugi, trzeci element (od końca), następnie usuwa pierwszy i trzeci i ten środkowy uważa za koniec kolejnego ruchu. I mam nawet przenikanie przez ściany :E.dziękuję za pomocpzdrbis Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Czerwiec 7, 2006 Zgłoś Share Napisano Czerwiec 7, 2006 Nie rozumiem o co ci chodzi, juz ci to powinno smigac ;-) Pierwszy element w tej tablicy z elementami weza to glowa, potem tulow i tak dalej..wyjasnij dokladniej o co ci chodzi. Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 7, 2006 Autor Zgłoś Share Napisano Czerwiec 7, 2006 To może skompiluj... Albo podaj maila, to Ci wyślę skompilowane, bo mam teraz konto tylko na 50webs.com - największy plik to kilka kilo, bo na funpic.de zapomniałen hasła .I daj nowa gra i zobaczysz jak się zachowuje wąż...Daję najaktualniejszy kod: [code=Delphi] uses crt; type element_weza=record X,Y:integer; [BBB^^H[[Y[^NBK]NBW'VćVĆ3Ć3#Ś6#śĆv7VćGv&CVSŚ'&łtŃ4(Ń4(4)ąŹ4(4(setlength(waz, length(waz)+1); waz[high(waz)].X:=waz[hi ^KLWKB^Y ^WKN]^Y ^KLWKNBćCŚgVć7F'66łv&Cf FVFV#Ś6#Ń4(4(Ń4(ŃĄ(0) then begin temp2:=readkey; temp[ [JMB[BY [LNL H [3Ós\"\"FV3Ó#C\"FV3ÓC3\"\"FV3Ó#rFVŹŃ4(4(4(4)4)4(ąr; setlength(waz, 5); waz[2].X:=38; waz[2].Y:=12; ^WKLNB^WKNLLB^KMćRvWŚć7ŚFPvłŁÓ#&WV@f\"ĄĄŃźź4(4(mtm-1].x; waz[i].y:=waz[i-1].y; end; if ^Y[]XBBY]LNMLVśW'VćVłŁwsŚW6ĆŚ7FĆć66ćWFĆWv7G'ŚĆśźąŹźŃźąź4(f klawisz=19200 then kierunek:='l'; //to samo z innymi kieru[ZCBY]L [Y[ZI [[ćśW'VćśbśĆv7ŁÓC3\"FVśW'VćVłŁvrsŃźź4(ąŃĄŹ4( if kierunek='l' then waz[0].x:=waz[0].x-1; if kier[ZI [^K]^K NBYY[ZI[vłŁvłÓbśW'VćVłvBrFVvłŁvltŹ4(4(ltŃĄlt4([0].x=81 then waz[0].x:=1; if waz[0].y=25 then waz[0].yLNBY^KOL[^KNLBB^FWF&6św&VćBR6'67#vFc\"#R(Ń%ąŃąŃ4(ĄĄownto 0 do begin textbackground(0); ^MJNBJ^WK^WKJNBw&FRr2rvFFVĆ#R4(Ńą4)4(4)4(lt9gra '; menu[2]:=' Opcje '; menu[3]:=' Wyjscie BB^MJNBNLHBYFWF6Ć\"RFWF&6św&VćBv4(ŃĄmt4(4(4(peat textcolor(0); textbackground(15); gotoxyLJJNB]JY[VWJNBNXY^NBIsb36\"FV3#Ł&VFśWFWF6Ć\"RŃŃ4(Ń4(ŃĄm]); if c2='H' then dec(y); if c2='P' then inc(y); YOL[NLBYOM[NLNBYOX#rFVŁÓ3VF36\"#r\"36\"2bŃĄ4) [/code]/edit1/i powiększ wartość delay (pętelka for od wyświetlania znaków) do 500, to zobaczysz jak to dokładnie wygląda, bo ja nie potrafię tego za bardzo wytłuamczyć.pzdr. Link do komentarza Udostępnij na innych stronach More sharing options...
Iskar Napisano Czerwiec 8, 2006 Zgłoś Share Napisano Czerwiec 8, 2006 Hmm to nie wiem..może zrób tak, że węża będziesz rysował od począteku, a nie będziesz czyścił całego ekranu, tylko ostatnie miejsce w którym znajdowała się ostatnia część węża. Link do komentarza Udostępnij na innych stronach More sharing options...
Bula i spula Napisano Czerwiec 8, 2006 Autor Zgłoś Share Napisano Czerwiec 8, 2006 Może i spróbuję, ale [b]narazie zmieniłem kolejność w pętelce for-zaczyna wyświetlać węża od początku, a nie od końca i dałem delay na 5 i nie jest źle. Natomiast są dwa inne problemy: nie działa mi kod: [code=Delphi] 0rĄ2r,Ż#|iśejĄ,+-'ł'ibqŚ3śKŚj<4jWŻ7gjĆŚyĘm*h,\"zZ+9jxŹńĘ,bZkk;hw8\"ŚĄęk(w7^bpwFWF6Ć\"FWF&6św&VćBRbŚŚVGŚćóŃŃĄ4(4(źą4( repeat randomize; poskZ[J NB[ZN[J JNBVFŚŚVGŚćóf6SVćCvFńĄą`ąąd4( Ń<4(Ńy(1,1); delay(50); if (waz[0].X=posilekZH[ ^KO[ZJH[[Z#jGZ mzWui'repeat ... for i:=0 to 2 do if (posilekX<>waz[i]. H [ZI^WKJH[ÓURTqOOOCB[[OLCBł73z77ŹśJŚ ui'uses crt; type element_weza=record X,Y:integer; [BBB^^H[[Y[^NBK]NBW'VćVĆ3Ć3#Ś6#śĆv7VćGv&CVSŚ'&łtŃ4(Ń4(źą4(ą`ąilekY:byte; procedure posilek; begin setlength(wa[ ^JJNB^Y ^WK]^Y ^KLWKvśvvŁvśvvÓŚŚVGŚćóŁG4(ŃŃŹ4( 4(ą4( nosound; end; function przycisk:word; var t[[B[BY[B[XY^NbFV6\"FV&VvFV#Ł&VFś4(ŃĄŃ4(4(ąŃ:=ord(temp); if (temp3=19200) or (temp3=19712) or (tempL H [LN H [LĘH[X][VćC&6VGW&Rw&ŚĆ&VśćV3Ś&VvŚŚVGźŃ4(ѹѥ4(lt`4(lt:=12; waz[1].X:=39; waz[1].Y:=12; waz[0].X:=40; //w[YH^HH]CB^KNLLBBX]Bf\"ŁvvFvFF&Vvvśmt4(mtmt4(4(4 if keypressed then klawisz:=przycisk; if klawisz=NML[YY[Z [Y[ZI Ś7FĆć66ćWFĆWv7G'ŚĆśFŚW6ĆśW'VćVŚW7BćźŃźąź4(ąŃĄierunek<>'p' then kierunek:='l'; //to samo z innymi ki[[ZCBY]L [YY[ZVśW'VćVłŁvBsF6ćśW'VćśbśĆvŃĄŹąŃĄŹźŃ samo z innymi kierunkami if klawisz=27 then goto konieBBYY[ZI [^K]^KLNBYśW'VćVłwrFVvłŁvłłbśW'VćVłvrrŃĄltlt4(ŹŃĄlt:=waz[0].y+1; if waz[0].x=0 then waz[0].x:=80; i^KNH[^KLNBY^KOLH[^ŁÓbvłÓFVvłŁÓ#CwvŃą4(ŃŃą4(ŃŃ4(ącr; gotoxy(62,25); write('Ilosc punktow: ',punkty)BNLY ^HBY[B^Xśw&VćBFWF6Ć\"RvFvśmtd4(Ń4(Ń4(4(4( //jedzenie end; textcolor(0); texX[ MJNBYY]YH[BYŚŚVGŚćóŁf6S&WV@4(ą`4( posilekY:=random(25); until zjedzono=faNB[BJ[Z[ZJNBw& amp;FRtrvFFVĆ4(4(Ąlt`ą`Ąl tdąd then posilek; //for i:=1 to high(waz) do //if ^K]^WK H[ ^KO]^WKJH[]LVFśĆv7ŁÓ#sśćV3ŚVćCŚ&VvVUłÓŁ94(lt=4(lt]jscie '; clrscr; textcolor(15); for y:=1 to 3 do Y[B^MJNB^X[ NBvF3\"w&FRVUVćCŁ4(4(ŃŃą4(ŃŃ4( gotoxy(32,11+y); write(menu[y]); c1:=readkey; I BYOX H[XY^NB^RFWF&6św&VćBvF3\"w&Ąmt4( ŃĄĄ4(@ŃĄnc(y); if y=0 then y:=3; if y=4 then y:=1; ifOXĘH[NLBYOLH[NB[[ OX#r\"36\"2bÓFVw&ŚVćB [/code]To jak podczas gry naciskam Esc, to wychodzi zupełnie z programu, a jak zrobić, żeby wyszło tylko do menu???pzdr. Link do komentarza Udostępnij na innych stronach More sharing options...
DarkAndrew Napisano Czerwiec 8, 2006 Zgłoś Share Napisano Czerwiec 8, 2006 Ja bym dał osobną procedure do wyświetlania menu osobną do gry i tylko przeskoki między tymi procedurami. Tak jak masz tutaj to [b]poprostuvar poczatek, koniec:label;begin poczatek: menu[1]:=' Nowa gra '; menu[2]:=' Opcje '; menu[3]:=' Wyjscie '; clrscr; textcolor(15); for y:=1 to 3 do begin textcolor(15); textbackground(0); gotoxy(32,11+y); write(menu[y]); end; y:=1; repeat textcolor(0); textbackground(15); gotoxy(32,11+y); write(menu[y]); c1:=readkey; c2:=' '; if c1=chr(0) then c2:=readkey; textcolor(15); textbackground(0); gotoxy(32,11+y); write(menu[y]); if c2='H' then dec(y); if c2='P' then inc(y); if y=0 then y:=3; if y=4 then y:=1; if c1=chr(27) then y:=3; if y=1 then gra; until (c1=chr(27)) or (c1=chr(13)); if y=1 then gra; if y=3 then goto koniec; goto poczatek; koniec:end. [/syntax:c028581980]W przypadku używania tego kodu należy liczyć się z błedami w funkcjonowaniu(z głowy pisane itp) "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...
Bula i spula Napisano Czerwiec 10, 2006 Autor Zgłoś Share Napisano Czerwiec 10, 2006 Tylko jeden problem: funkcja GoTo nie działa między procedurami, lub nawet w jednej procedurze. Tj. można ją wykorzystać tylko między begin, a end. i nie może przenosić do żadnych procedur. 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.