REM ************************************** REM ***** ***** REM ***** PRISTANI NA MESICI ***** REM ***** ***** REM ************************************** 60 GOSUB 2000 GOSUB 3000 90 GOSUB 4000 GOSUB 5000 IF H GT 0 THEN 90 GOSUB 6000 IF ZA% EQ 1 THEN 60 GOTO 8000 REM ******************************************************* 2000 REM ***** PODPROGRAM INSTRUKCE ***** REM ******************************************************* PRINT INPUT "Chces instrukce (ano - ne) ?"; A$ GOSUB 7000 RANDOMIZE T% = 0 TT% = 0 H = INT (600 * RND + 300) V = INT ( 60 * RND + 30 ) D = SQR (12 * H + 1.2 * V * V) F = INT ( D * RND + D + 30 ) IF ZA% = 0 THEN 2370 PRINT PRINT "********** PRISTANI NA MESICI **********" PRINT PRINT "za sekundu, paliva zbyva v nadrzi";F;"jednotek." PRINT "Pravidla pro rizeni mesicniho modulu jsou nasledujici:" PRINT "1) kazdou sekundu dostanes zpravu o vysce, rychlosti" PRINT " a zbytku paliva," PRINT "2) po teto zprave se objevi dotaz na mnozstvi paliva" PRINT " urceneho k brzdeni v dalsi sekunde," PRINT "3) jednotka paliva snizi rychlost klesani modulu" PRINT " o 1 stopu za sekundu," PRINT "Jsi pilotem vysadkoveho modulu, ktery ma pristat na" PRINT "Mesici. Prebiras rucni rizeni modulu ve vysce";H;"stop" PRINT "nad mesicnim povrchem. Modul klesa rychlosti";V;"stop" PRINT INPUT "Chces-li pokracovat, stiskni libovolnou klavesu + RETURN.";A$ PRINT PRINT "4) maximalni tah motoru je 30 stop/sec (tedy 30 jednotek" PRINT " paliva za sekundu)," PRINT "5) pri dotyku mesicniho povrchu bude motor automaticky" PRINT " vypnut a dostanes zpravu o rychlosti pristani a zbytku" PRINT " paliva," PRINT "6) po spotrebovani paliva se jiz dotazy neobjevuji," PRINT " zpravy vsak budou dale vydavany kazdou sekundu" PRINT " az do srazky s mesicnim povrchem," PRINT "7) tihove zrychleni na povrchu Mesice cini priblizne" PRINT " 5 stop/sec." PRINT PRINT " M N O H O S T E S T I !" PRINT INPUT "Chces-li pokracovat, stiskni libovolnou klavesu + RETURN.";A$ 2370 RETURN REM ******************************************************* 3000 REM ***** PODPROGRAM ZAHAJENI ***** REM ******************************************************* PRINT PRINT PRINT PRINT TAB(14); "Pozor! Prebiras rucni rizeni!" PRINT TAB(14); "Vyska: ";H;"stop" PRINT TAB(14); "Rychlost: ";V;"stop/sec" PRINT TAB(14); "Paliva: ";F;"jednotek" PRINT INPUT "Chces-li pokracovat, stiskni libovolnou klavesu + RETURN.";A$ PRINT PRINT "--------------------------------------" PRINT " CAS VYSKA RYCHLOST PALIVO " PRINT "--------------------------------------" 3130 RETURN REM ******************************************************* 4000 REM ***** PODPROGRAM ZOBRAZENI ***** REM ******************************************************* 4020 IF TT% < 15 THEN 4070 TT% = 1 PRINT "-------------------------------------" PRINT " CAS VYSKA RYCHLOST PALIVO" PRINT "-------------------------------------" 4070 IF T% < 10 THEN PRINT " ";T%; IF T%>9 AND T%<100 THEN PRINT " ";T%; IF T%>99 THEN PRINT " ";T%; IF H < 10 THEN PRINT TAB(11);H; IF H<100 AND H>=10 THEN PRINT TAB(10);H; IF H>=100 THEN PRINT TAB(9);H; IF V < 10 THEN PRINT TAB(20);V; IF V<100 AND V>=10 THEN PRINT TAB(19);V; IF V>=100 THEN PRINT TAB(18);V; IF F < 10 THEN PRINT TAB(30);F; IF F<100 AND F>=10 THEN PRINT TAB(29);F; IF F>=100 THEN PRINT TAB(28);F; PRINT TAB(50); RETURN REM ******************************************************* 5000 REM ***** PODPROGRAM TAHU ***** REM ******************************************************* B = 0 IF F = 0 THEN PRINT " " IF F > 0 THEN INPUT "palivo "; B IF B < 0 THEN B = 0 IF B > 30 THEN B = 30 IF B > F THEN B = F V1 = V + 5 - B F = F - B H = H - (V + V1) / 2 IF H <= 0 THEN 5150 T% = T% + 1 TT% = TT% + 1 V = V1 GOTO 5410 5150 PRINT PRINT " ********** DOTEK **********" H = H + (V + V1) / 2 IF B = 5 THEN D = H / V IF B<>5 THEN D=(-V+SQR(V*V+H*(10-2*B)))/(5-B) V1 = V + (5 - B) * D PRINT PRINT "Pristani na povrchu Mesice za ";T%+D;"sekund" PRINT "Pristavaci rychlost ";V1;"stop/sec" PRINT "Jednotek paliva zbylo ";F PRINT PRINT H = 0 IF V1 = 0 THEN 5340 IF ABS(V1) < 2 THEN 5380 PRINT "***** Bohuzel jsi se prave zabil(-a)! *****" PRINT "***** Komu mame projevit soustrast? *****" PRINT GOTO 5410 5340 PRINT "***** GRATULUJI! Perfektni pristani! *****" PRINT "***** Obnovime tvuj pilotni prukaz! *****" PRINT GOTO 5410 5380 PRINT "***** Tohle pristani nebylo uplne mekke, *****" PRINT "***** lunarni modul uz neni k nicemu, *****" PRINT "***** budes-li mit stesti, treba te zachrani. *****" 5410 RETURN REM ******************************************************* 6000 REM ***** PODPROGRAM ZAKONCENI ***** REM ******************************************************* PRINT INPUT "Chces hrat znovu (ano - ne) ?"; A$ PRINT GOSUB 7000 RETURN REM ******************************************************* 7000 REM ***** PODPROGRAM DOTAZU ***** REM ******************************************************* ZA% = 0 IF A$="ANO" THEN ZA% = 1 IF A$="ano" THEN ZA% = 1 IF A$="A" THEN ZA% = 1 IF A$="a" THEN ZA% = 1 IF A$="YES" THEN ZA% = 1 IF A$="yes" THEN ZA% = 1 IF A$="Y" THEN ZA% = 1 IF A$="y" THEN ZA% = 1 RETURN 8000 REM *****************************************************HOBR*