frania Napisano Maj 27, 2007 Zgłoś Share Napisano Maj 27, 2007 Mam napisać program na informatykę na wczoraj: Dwa czołgi strzelają na zmianę (prędkość (albo siłę w %) i kąt jednego czołgu wprowadza użytkownik, a drugiego losuje komputer). Obliczenia są chyba w porządku, ale gorzej z grafika. Czy ktoś mi może pomóc? Po całym dniu spędzonym przed komputerem udało mi się zrobić coś takiego: program czolgi; uses graph,crt; type cialo = Record x,y :real; v,alfa :real; end; const g=9.81; var driver, tryb:integer; t:real; pocisk:cialo; ster:byte; tcalk:real; zas:real; function Deg2Rad(kat:Real):Real; begin; Deg2Rad:=kat*pi/180; end; function tan(x:real):real; begin tan:=sin(x)/cos(x); end; {Rzut ukośny} function czas_upadku(v,alfa:Real):Real; begin; czas_upadku:=2*v*sin(deg2rad(alfa))/g; end; function zasieg_rzutu(v, alfa:Real):Real; begin; zasieg_rzutu:= v*v* sin(2*(deg2rad(alfa)))/g; end; begin {readln(pocisk.alfa); kat:=deg2rad(pocisk.alfa);} writeln('Podaj % prędkości początkowej'); readln(pocisk.v); pocisk.v:=pocisk.v; writeln('Podaj kąt wystrzału.'); readln(pocisk.alfa); pocisk.alfa:=deg2rad(pocisk.alfa); pocisk.x:=0; pocisk.y:=0; tcalk:=czas_upadku(pocisk.v,pocisk.alfa); writeln('czas upadku = ',tcalk:0:2); zas:=zasieg_rzutu(pocisk.v,pocisk.alfa); writeln('zasięg = ',zas:0:0); writeln('alfa = ',pocisk.alfa:0:2); writeln('cosalfa = ',sin(pocisk.alfa):0:2); writeln('v pocisku = ',pocisk.v:0:2); writeln('+x = ',round(pocisk.v*tcalk*cos(pocisk.alfa))); writeln('+y = ',round(pocisk.v*(tcalk/2)*sin(pocisk.alfa)-(g*sqr(tcalk/2)/2))); writeln('tanalfa = ',tan(pocisk.alfa):0:2); for ster:=0 to round(zas)*10 do begin pocisk.x:=ster; pocisk.y:=(pocisk.x*tan(pocisk.alfa))-((g*sqr(pocisk.x))/(2*sqr(pocisk.v)*sqr(cos(pocisk.alfa)))); writeln(round(pocisk.x),' ',round(pocisk.y)); end; readln; {t:=2; writeln('xfunkc ',round(licz_wsp(pocisk).x)); for ster:=10 downto 1 do begin begin; pocisk.x:=pocisk.x+(pocisk.v*(tcalk/ster)*cos(pocisk.alfa)); writeln('x = ',pocisk.x:0:0); pocisk.y:=pocisk.y-(pocisk.v*(tcalk/ster)*sin(pocisk.alfa)-((g*sqr(tcalk/ster)/2))); writeln('y = ',pocisk.y:0:0); end; end; readln;} driver:=detect; initgraph(driver,tryb,''); putpixel(round(pocisk.x+100),round(600-pocisk.y),white); for ster:=0 to round(zas) do begin pocisk.x:=ster; pocisk.y:=(pocisk.x*tan(pocisk.alfa))-((g*sqr(pocisk.x))/(2*sqr(pocisk.v)*sqr(cos(pocisk.alfa)))); putpixel(round(pocisk.x+100),round(600-pocisk.y),white); end; delay(5000); closegraph; end. OQł7Źyę;ŚZąĆq@VćB'WGFW&f6PGP6Ć&V6&@&VcĆĆf&VVćCf\"s&VŚgVć7FFVs%&BśC&V&V'WBŚŚgVć7F7Ś5WFRcĆf&V&VŚgVć7FŚ6Vu'WGRcĆĆf&V&VŚgVć7FĆ7w7C&V#6Ć6ĆóĆVVFFŚgVć7FFVs%&BśC&V&VŚ&VvFVs%&CŁśBóŚVćC'WBŚŚgVć7F7Ś5WFRcĆf&V&VŚ&Vv7Ś5WFSŁc6FVs%&BĆfsŚVćCŚgVć7FŚ6Vu'WGRcĆĆf&V&VŚ&VvŚ6Vu'WGSŁ7\"c6FVs%&B\"ŚĆfsŚVćCŚgVć7FĆ7w7C&V#6Ć6ĆóŚ&VvĆ7w7Ł#Ć7w7Ł\"cŚ62\"ćĆfCbĆ7w7fwCŚ6Vu'WGR\"c\"ćĆfFVĆ7w7ŁrBBó V6PĆ7w7ŁrBBó#ŚVćC&VvsŁÓVćBORŹqP)A )UIŃą ą)Y( ąź(ąQ%Ń(%Ń(}ą}%Ń() ( ąM(]ŃAI1Ą ą(]ŃAI1Ą (]Ń1(]Ń1 ą}Ą ą(]Ń1ią}ŃĄ ą(]Ń1((MąŃ(Ń(% ŃĄąQ(}Ń5`(}Ń5d(ŃźĄ} Ą ąź(( ą(IŃąą}ą}( 1}Ąźą ( ą( }( }((ą((IUŃ-( ą)( Link do komentarza Udostępnij na innych stronach More sharing options...
Jason Napisano Maj 27, 2007 Zgłoś Share Napisano Maj 27, 2007 A czego więcej oczekujesz po Turbo Pascal'u ?? Możesz popróbować jeszcze w trybie 13h, on pozwala na mniejszą rozdzielczość niż graph, ale za to 256 kolorów. Bibliotekę do tego trybu znajdziesz na stronie helionu, po wyszukaniu książki z ich wydawnictwa o tworzeniu gier w Turbo Pascalu. BTW. zapomniałeś o znacznikach kodu... 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.