Tajemnice ATARI

PIRAMIDA

1 REM ******************************
2 REM *                            *
3 REM *  P I R A M I D A    1992   *
4 REM *                            *
5 REM *  autor:  Aleksander Usik   *
6 REM *                            *
7 REM ******************************
8 REM 
10 REM  ORGANIZACJA EKRANU         
20 GRAPHICS 0:CLR :POKE 752,1:? CHR$(1
25):ANTIC=PEEK(560)+256*PEEK(561):POKE
 559,PEEK(559)-32
30 POKE 708,14:POKE 709,10:POKE 710,0:
POKE 711,6:POKE 712,0
40 RESTORE 50:FOR I=1 TO 5:READ A:POKE
 ANTIC+I-3,A:NEXT I
50 DATA 112,112,70,0,156
60 POKE ANTIC+30,PEEK(ANTIC+30)-2:POKE
 560,PEEK(560)-2:POKE 559,PEEK(559)+32
70 RESTORE 80:FOR I=0 TO 19:READ A:POK
E 39936+I,A:NEXT I
80 DATA 0,48,105,114,225,237,105,100,3
3,0,0,98,121,14,111,108,111,117,115,0
90 RESTORE 100:DIM A$(12):FOR I=1 TO 1
2:READ A$:FOR J=0 TO 11:POKE 1536+I*12
+J,ASC(A$(J+1)):NEXT J:NEXT I
100 DATA .....IO.....
110 DATA .....UU.....
120 DATA ....IUUO....
130 DATA ....UUUU....
140 DATA ...IUUUUO...
150 DATA ...UUUUUU...
160 DATA ..IUUUUUUO..
170 DATA ..UUUUUUUU..
180 DATA .IUUUUUUUUO.
190 DATA .UUUUUUUUUU.
200 DATA IUUUUUUUUUUO
210 DATA UUUUUUUUUUUU
220 POSITION 1,21:? ".................
...................."
230 POSITION 1,22:? "  RUCH:      CZAS
:    sek.  HAN:   "
240 POSITION 1,23:? ".................
...................."
250 POSITION 1,1:? "     ..           
..           ..  "
260 POSITION 1,18:? "     ..      "
270 REM  MALE DEMKO                
280 DIM PW(13):FOR I=0 TO 13:PW(I)=153
6+I*12:NEXT I
290 POSITION 15,18:? "TY TEZ TO POTRAF
ISZ"
300 PM=40081:FOR I=0 TO 11:FOR J=0 TO 
11:POKE PM+I*40+J,PEEK(PW(12-I)+J):NEX
T J:NEXT I
310 FOR J=0 TO 11:FOR I=0 TO 11:POKE P
M+I+J*40,0:POKE PM+13+I+J*40,PEEK(PW(1
2-J)+I):NEXT I:NEXT J
320 FOR J=0 TO 11:FOR I=0 TO 11:POKE P
M+I+J*40+13,0:POKE PM+I+J*40,PEEK(PW(1
2-J)+I):NEXT I:NEXT J
330 REM  WYBOR STOPNIA TRUDNOSCI   
340 TRAP 340:POSITION 35,18:? "   "
350 POSITION 15,16:? "PODAJ LICZBE ELE
MENTOW ":POSITION 15,18:? "OD -3- DO -
12-     ";:POKE 752,0:INPUT TRD
360 POKE 752,1:POSITION 15,16:? "     
                  ":POSITION 15,18:? "
                       "
370 IF TRD<3 OR TRD>12 THEN GOTO 340
380 POSITION 34,21:? TRD:TRAP 40000:RU
CH=0
390 DIM MAT(2,12):FOR I=0 TO 2:FOR J=0
 TO 12:MAT(I,J)=0:NEXT J:NEXT I
400 FOR I=1 TO TRD:MAT(0,I)=(TRD+1)-I:
NEXT I:MAT(0,0)=TRD
410 FOR I=11 TO 0 STEP -1:FOR J=0 TO 1
1:POKE PM+J+I*40,(I<TRD)*PEEK(PW(TRD-I
*(I<TRD))+J):NEXT J:NEXT I
420 PIR=0:NR=0:KOL=PM+16*40:KSZ=KOL+13
*PIR:ZAW=KSZ-40
430 REM  ROZPOCZECIE PRZEKLADANIA  
440 GOSUB 760:POKE 18,0:POKE 19,0:POKE
 20,0
450 ST=STICK(0)
460 CZ=PEEK(20)+256*PEEK(19)+65536*PEE
K(18):SEK=INT(CZ/50):POKE 77,0
470 ON (ST=13)+2*(ST=14)+3*(ST<12) GOS
UB 510,580,660
480 POSITION 8,21:? RUCH;" ":POSITION 
19,21:? SEK;" "
490 IF PEEK(PM-22+TRD*40)=73 THEN GOTO
 780
500 GOTO 450
510 REM  ZDEJMOWANIE                
520 IF NR>0 THEN GOSUB 760:RETURN 
530 POZ=MAT(PIR,0):IF POZ=0 THEN GOSUB
 760:RETURN 
540 NROS=MAT(PIR,POZ):ADKL=PM+PIR*13+4
0*(POZ-1)
550 FOR I=0 TO 11:POKE ZAW+I,PEEK(ADKL
+I):POKE ADKL+I,0:NEXT I
560 MAT(PIR,POZ)=0:MAT(PIR,0)=POZ-1:NR
=NROS
570 RETURN 
580 REM  USTAWIANIE                 
590 IF NR=0 THEN GOSUB 760:RETURN 
600 POZ=MAT(PIR,0):IF POZ=0 THEN GOTO 
620
610 NROS=MAT(PIR,POZ):IF NR>NROS THEN 
GOSUB 760:RETURN 
620 ADKL=PM+PIR*13+40*POZ
630 FOR I=0 TO 11:POKE ADKL+I,PEEK(ZAW
+I):POKE ZAW+I,0:NEXT I
640 MAT(PIR,0)=POZ+1:MAT(PIR,POZ+1)=NR
:NR=0:RUCH=RUCH+1
650 RETURN 
660 REM  RUCH POZIOMY              
670 IF ST=7 THEN PIRN=PIR+1-3*(PIR=2):
GOTO 700
680 IF ST=11 THEN PIRN=PIR-1+3*(PIR=0)
:GOTO 700
690 RETURN 
700 KSZN=KOL+13*PIRN:ZAWN=KSZN-40
710 IF NR=0 THEN GOTO 730
720 FOR I=0 TO 11:POKE ZAWN+I,PEEK(ZAW
+I):POKE ZAW+I,0:NEXT I
730 FOR I=0 TO 1:POKE KSZN+5+I,PEEK(KS
Z+5+I):POKE KSZ+5+I,0:NEXT I
740 PIR=PIRN:ZAW=ZAWN:KSZ=KSZN
750 RETURN 
760 REM  BUCZEK                    
770 SOUND 0,200,12,15:FOR I=0 TO 50:NE
XT I:SOUND 0,0,0,0:RETURN 
780 REM  ZAKONCZENIE GRY           
790 POSITION 12,16:? "MOJE GRATULACJE 
!"
800 FOR I=0 TO 255:POKE 712,I:NEXT I:P
OKE 712,0:POSITION 12,16:? "          
       "
810 GOTO 10
    W Indii, w mieście Benares, pod kopułą głównej świątyni, w miejscu, gdzie znajduje się środek Ziemi, postawił Brahma na brązowej tabliczce trzy diamentowe pałeczki. Przy stworzeniu świata na jedną z tych pałeczek nanizane zostały 64 krążki z czystego złota tak, iż utworzyły postać ściętego stożka. Kapłani, zmieniając się wzajemnie dniem i nocą bez przestanku zajęci są przenoszeniem tego stożka z pierwszej pałeczki na drugą, posiłkując się przejściowo pałeczką trzecią, przy czym zobowiązani są najsurowiej przestrzegać dwu następujących zakazów:

• za jednym ujęciem nie przenosić nigdy więcej ponad jeden krążek
• nigdy nie kłaść krążka większego na mniejszym

    Gdy kapłani, zachowując ściśle te przepisy, ukończą swą pracę, nastąpi koniec świata...

    Tak głosi hinduska legenda, która stała się inspiracją dla wielu prac, nie tylko matematycznych. Na zakończenie chciałbym uspokoić wszystkich czytelników ulegających różnego rodzaju przepowiedniom, podając wzór na liczbę koniecznych przełożeń w funkcji ilości krążków:

x=2u-1

   Cóż za ulga!

Aleksander Usik



Powrót na start | Powrót do spisu treści | Powrót na stronę główną

Pixel 2002