home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / maksiu / kurs-ma / krzywa_smoka_przyklad.amos / krzywa_smoka_przyklad.amosSourceCode
AMOS Source Code  |  1998-01-25  |  2KB  |  103 lines

  1. Screen Open 0,320,256,16,Lowres
  2. Curs Off : Palette $0,$FFF
  3. Cls 1 : Flash Off : Ink 0,1
  4. Dim D(2),X(2),Y(2)
  5. Global D(),X(),Y(),X,Y
  6. STP_SMOKA=11
  7. ' zmienna _STOPIE�_SMOKA zawiera warto�� okre�laj�c�   
  8. ' ilo�� z�o�e� paska papieru 
  9. D�UGO��=(2^STP_SMOKA)-1
  10. ' zmienna D�UGO��_SMOKA zawiera warto�� okre�laj�c� d�ugo�� smoka
  11. ' (ilo�� skr�t�w)  
  12. Reserve As Data 10,D�UGO��
  13. D(1)=Start(10)
  14. Poke D(1),1
  15. Poke D(1)+1,1
  16. Poke D(1)+2,0
  17. D(2)=2
  18. For P=1 To STP_SMOKA
  19.  
  20.    KONIEC_SMOKA=D(1)+D(2)
  21.  
  22.    Poke KONIEC_SMOKA+1,1
  23.  
  24.    Inc D(2)
  25.  
  26.    For L=KONIEC_SMOKA To D(1) Step -1
  27.  
  28.       Inc D(2)
  29.       If Peek(L)
  30.          Poke D(1)+D(2),0
  31.       Else 
  32.          Poke D(1)+D(2),1
  33.       End If 
  34.  
  35.    Next L
  36.  
  37. Next P
  38. Plot 100,72
  39. X(1)=100 : Y(1)=72
  40. X(2)=100 : Y(2)=70
  41. X=100 : Y=70
  42. For P=D(1) To D(1)+D(2)
  43.  
  44.    B=Peek(P)
  45.    If B
  46.       LEWO
  47.    Else PRAWO
  48.    End If 
  49.  
  50. Next P
  51.  
  52. Erase All 
  53. End 
  54. Procedure LEWO
  55.  
  56.    If Y(1)=Y(2)
  57.       If X(1)>X(2)
  58.          Add Y,2
  59.       End If 
  60.       If X(1)<X(2)
  61.          Add Y,-2
  62.       End If 
  63.    End If 
  64.  
  65.    If X(1)=X(2)
  66.       If Y(1)<Y(2)
  67.          Add X,2
  68.       End If 
  69.       If Y(1)>Y(2)
  70.          Add X,-2
  71.       End If 
  72.    End If 
  73. X(1)=X(2)
  74. Y(1)=Y(2)
  75. Y(2)=Y
  76. X(2)=X
  77. Draw To X(2),Y(2)
  78. End Proc
  79. Procedure PRAWO
  80.  
  81.    If Y(1)=Y(2)
  82.       If X(1)>X(2)
  83.          Add Y,-2
  84.       End If 
  85.       If X(1)<X(2)
  86.          Add Y,2
  87.       End If 
  88.    End If 
  89.  
  90.    If X(1)=X(2)
  91.       If Y(1)<Y(2)
  92.          Add X,-2
  93.       End If 
  94.       If Y(1)>Y(2)
  95.          Add X,2
  96.       End If 
  97.    End If 
  98. X(1)=X(2)
  99. Y(1)=Y(2)
  100. Y(2)=Y
  101. X(2)=X
  102. Draw To X(2),Y(2)
  103. End Proc