Mon code pour le triangle, le carré et le tri-carré (récupéré par liaison série)
Code : Tout sélectionner
EM xxxxxxxxxxxxxxxxxxxxxxxxxxxx
REM xxxxx PROC S_triangle xxxxxx
REM xxxxxxxxxxxxxxxxxxxxxxxxxxx
PROC Striang:(Lv1%)
Srpinski:(240,0,160,159,320,159,Lv1%)
GET
ENDP
REM xxxxxxxxxxxxxxxxxxxxxxxxxxxx
REM xxxxx PROC S_carre xxxxxx
REM xxxxxxxxxxxxxxxxxxxxxxxxxxx
PROC Scarre:(Lv1%)
SpinskiC:(0,0,480,0,480,159,0,159,Lv1%)
GET
ENDP
REM xxxxxxxxxxxxxxxxxxxxxxxxxxxx
REM xxxxx PROC Stricarr xxxxxx
REM xxxxxxxxxxxxxxxxxxxxxxxxxxx
PROC Stricar:(Lv1%)
SpinskTC:(0,0,480,0,480,159,0,159,Lv1%)
GET
ENDP
REM lancement du triangle
PROC Srpinski:(P11%,P12%,P21%,P22%,P31%,P32%,Lv1%)
IF Lv1%>0
Srpinski:(P11%,P12%,(P11%+P21%)/2,(P12%+P22%)/2,(P11%+P31%)/2,(P12%+P32%)
/2,Lv1%-1)
Srpinski:((P11%+P21%)/2,(P12%+P22%)/2,P21%,P22%,(P21%+P31%)/2,(P22%+P32%)
/2,Lv1%-1)
Srpinski:((P11%+P31%)/2,(P12%+P32%)/2,(P31%+P21%)/2,(P32%+P22%)/2,P31%,P3
2%,Lv1%-1)
ELSE
POLY3:(P11%,P12%,P21%,P22%,P31%,P32%,0)
ENDIF
ENDP
REM dessin d'un triangle plein
PROC POLY3:(P11%,P12%,P21%,P22%,P31%,P32%,N%)
LOCAL C%(9)
C%(1)=P11%
C%(2)=P12%
C%(3)=4
C%(4)=2*(P21%-P11%)
C%(5)=P22%-P12%
C%(6)=2*(P31%-P21%)
C%(7)=P32%-P22%
C%(8)=2*(P11%-P31%)
C%(9)=P12%-P32%
gPOLY C%()
IF (ABS(P21%-P31%)>1 AND ABS(P22%-P12%)>1) OR (ABS(P22%-P32%)>1 AND ABS(P21%-
P11%)>1)
IF N%=0
POLY3:(P11%,P12%+1,P21%+1,P22%-1,P31%-1,P32%-1,N%)
ELSEIF N%=1
POLY3:(P11%+1,P12%+1,P21%+1,P22%-2,P31%-2,P32%+1,N%)
ELSEIF N%=2
POLY3:(P11%+2,P12%+1,P21%-1,P22%-2,P31%-1,P32%+1,N%)
ELSEIF N%=3
POLY3:(P11%-1,P12%+2,P21%+2,P22%-1,P31%-1,P32%-1,N%)
ELSE
POLY3:(P11%+1,P12%+2,P21%+1,P22%-1,P31%-2,P32%-1,N%)
ENDIF
ENDIF
ENDP
REM Lancement du carré
PROC SpinskiC:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinskiC:(P11%,P12%,S%:(P11%,P21%),S%:(P12%,P22%),S%:(P11%,P31%),S%:(P12%
,P32%),S%:(P11%,P41%),S%:(P12%,P42%),Lv1%-1)
SpinskiC:(S%:(P11%,P21%),S%:(P12%,P22%),S%:(P21%,P11%),S%:(P22%,P12%),S%:
(P21%,P41%),S%:(P22%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),Lv1%-1)
SpinskiC:(S%:(P21%,P11%),S%:(P22%,P12%),P21%,P22%,S%:(P21%,P31%),S%:(P22%
,P32%),S%:(P21%,P41%),S%:(P22%,P42%),Lv1%-1)
SpinskiC:(S%:(P21%,P41%),S%:(P22%,P42%),S%:(P21%,P31%),S%:(P22%,P32%),S%:
(P31%,P21%),S%:(P32%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),Lv1%-1)
SpinskiC:(S%:(P31%,P11%),S%:(P32%,P12%),S%:(P31%,P21%),S%:(P32%,P22%),P31
%,P32%,S%:(P31%,P41%),S%:(P32%,P42%),Lv1%-1)
SpinskiC:(S%:(P41%,P21%),S%:(P42%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),S%:
(P31%,P41%),S%:(P32%,P42%),S%:(P41%,P31%),S%:(P42%,P32%),Lv1%-1)
SpinskiC:(S%:(P41%,P11%),S%:(P42%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),S%:
(P41%,P31%),S%:(P42%,P32%),P41%,P42%,Lv1%-1)
SpinskiC:(S%:(P11%,P41%),S%:(P12%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),S%:
(P41%,P21%),S%:(P42%,P22%),S%:(P41%,P11%),S%:(P42%,P12%),Lv1%-1)
ELSE
POLY4:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%)
ENDIF
ENDP
PROC S%:(X%,Y%)
RETURN (2*X%+Y%)/3
ENDP
REM dessin d'un carré
PROC POLY4:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%)
LOCAL C%(11)
C%(1)=P11%
C%(2)=P12%
C%(3)=4
C%(4)=2*(P21%-P11%)
C%(5)=P22%-P12%
C%(6)=2*(P31%-P21%)
C%(7)=P32%-P22%
C%(8)=2*(P41%-P31%)
C%(9)=P42%-P32%
C%(10)=2*(P11%-P41%)
C%(11)=P12%-P42%
gPOLY C%()
IF ABS(P11%-P31%)>1 AND ABS(P12%-P32%)>1
POLY4:(P11%+1,P12%+1,P21%-1,P22%+1,P31%-1,P32%-1,P41%+1,P42%-1)
ENDIF
ENDP
REM lancement du carré triangle
PROC SpinskTC:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinskTC:(P11%,P12%,S%:(P11%,P21%),S%:(P12%,P22%),S%:(P11%,P31%),S%:(P12%
,P32%),S%:(P11%,P41%),S%:(P12%,P42%),Lv1%-1)
SpinsTC1:(S%:(P11%,P21%),S%:(P12%,P22%),S%:(P21%,P11%),S%:(P22%,P12%),S%:
(P21%,P41%),S%:(P22%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),Lv1%-1)
SpinskTC:(S%:(P21%,P11%),S%:(P22%,P12%),P21%,P22%,S%:(P21%,P31%),S%:(P22%
,P32%),S%:(P21%,P41%),S%:(P22%,P42%),Lv1%-1)
SpinsTC2:(S%:(P21%,P41%),S%:(P22%,P42%),S%:(P21%,P31%),S%:(P22%,P32%),S%:
(P31%,P21%),S%:(P32%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),Lv1%-1)
SpinskTC:(S%:(P31%,P11%),S%:(P32%,P12%),S%:(P31%,P21%),S%:(P32%,P22%),P31
%,P32%,S%:(P31%,P41%),S%:(P32%,P42%),Lv1%-1)
SpinsTC3:(S%:(P41%,P21%),S%:(P42%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),S%:
(P31%,P41%),S%:(P32%,P42%),S%:(P41%,P31%),S%:(P42%,P32%),Lv1%-1)
SpinskTC:(S%:(P41%,P11%),S%:(P42%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),S%:
(P41%,P31%),S%:(P42%,P32%),P41%,P42%,Lv1%-1)
SpinsTC4:(S%:(P11%,P41%),S%:(P12%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),S%:
(P41%,P21%),S%:(P42%,P22%),S%:(P41%,P11%),S%:(P42%,P12%),Lv1%-1)
SpinskTC:(S%:(P11%,P31%),S%:(P12%,P32%),S%:(P21%,P41%),S%:(P22%,P42%),S%:
(P31%,P11%),S%:(P32%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),Lv1%-1)
ELSE
POLY4:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%)
ENDIF
ENDP
REM Carré avec triangle vide en bas à droite
PROC SpinsTC1:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinskTC:(P11%,P12%,S%:(P11%,P21%),S%:(P12%,P22%),S%:(P11%,P31%),S%:(P12%
,P32%),S%:(P11%,P41%),S%:(P12%,P42%),Lv1%-1)
SpinsTC1:(S%:(P11%,P21%),S%:(P12%,P22%),S%:(P21%,P11%),S%:(P22%,P12%),S%:
(P21%,P41%),S%:(P22%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),Lv1%-1)
SpinsTC1:(S%:(P21%,P11%),S%:(P22%,P12%),P21%,P22%,S%:(P21%,P31%),S%:(P22%
,P32%),S%:(P21%,P41%),S%:(P22%,P42%),Lv1%-1)
SpinsTC1:(S%:(P41%,P11%),S%:(P42%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),S%:
(P41%,P31%),S%:(P42%,P32%),P41%,P42%,Lv1%-1)
SpinsTC4:(S%:(P11%,P41%),S%:(P12%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),S%:
(P41%,P21%),S%:(P42%,P22%),S%:(P41%,P11%),S%:(P42%,P12%),Lv1%-1)
SpinsTC1:(S%:(P11%,P31%),S%:(P12%,P32%),S%:(P21%,P41%),S%:(P22%,P42%),S%:
(P31%,P11%),S%:(P32%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),Lv1%-1)
ELSE
POLY3:(P11%,P12%,P41%,P42%,P21%,P22%,1)
ENDIF
ENDP
REM Carré avec triangle vide en bas à gauche
PROC SpinsTC2:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinsTC2:(P11%,P12%,S%:(P11%,P21%),S%:(P12%,P22%),S%:(P11%,P31%),S%:(P12%
,P32%),S%:(P11%,P41%),S%:(P12%,P42%),Lv1%-1)
SpinsTC1:(S%:(P11%,P21%),S%:(P12%,P22%),S%:(P21%,P11%),S%:(P22%,P12%),S%:
(P21%,P41%),S%:(P22%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),Lv1%-1)
SpinskTC:(S%:(P21%,P11%),S%:(P22%,P12%),P21%,P22%,S%:(P21%,P31%),S%:(P22%
,P32%),S%:(P21%,P41%),S%:(P22%,P42%),Lv1%-1)
SpinsTC2:(S%:(P21%,P41%),S%:(P22%,P42%),S%:(P21%,P31%),S%:(P22%,P32%),S%:
(P31%,P21%),S%:(P32%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),Lv1%-1)
SpinsTC2:(S%:(P31%,P11%),S%:(P32%,P12%),S%:(P31%,P21%),S%:(P32%,P22%),P31
%,P32%,S%:(P31%,P41%),S%:(P32%,P42%),Lv1%-1)
SpinsTC2:(S%:(P11%,P31%),S%:(P12%,P32%),S%:(P21%,P41%),S%:(P22%,P42%),S%:
(P31%,P11%),S%:(P32%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),Lv1%-1)
ELSE
POLY3:(P11%,P12%,P31%,P32%,P21%,P22%,2)
ENDIF
ENDP
REM Carré avec triangle vide en haut à gauche
PROC SpinsTC3:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinsTC3:(S%:(P21%,P11%),S%:(P22%,P12%),P21%,P22%,S%:(P21%,P31%),S%:(P22%
,P32%),S%:(P21%,P41%),S%:(P22%,P42%),Lv1%-1)
SpinsTC2:(S%:(P21%,P41%),S%:(P22%,P42%),S%:(P21%,P31%),S%:(P22%,P32%),S%:
(P31%,P21%),S%:(P32%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),Lv1%-1)
SpinskTC:(S%:(P31%,P11%),S%:(P32%,P12%),S%:(P31%,P21%),S%:(P32%,P22%),P31
%,P32%,S%:(P31%,P41%),S%:(P32%,P42%),Lv1%-1)
SpinsTC3:(S%:(P41%,P21%),S%:(P42%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),S%:
(P31%,P41%),S%:(P32%,P42%),S%:(P41%,P31%),S%:(P42%,P32%),Lv1%-1)
SpinsTC3:(S%:(P41%,P11%),S%:(P42%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),S%:
(P41%,P31%),S%:(P42%,P32%),P41%,P42%,Lv1%-1)
SpinsTC3:(S%:(P11%,P31%),S%:(P12%,P32%),S%:(P21%,P41%),S%:(P22%,P42%),S%:
(P31%,P11%),S%:(P32%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),Lv1%-1)
ELSE
POLY3:(P21%,P22%,P41%,P42%,P31%,P32%,3)
ENDIF
ENDP
REM Carré avec triangle vide en haut à droite
PROC SpinsTC4:(P11%,P12%,P21%,P22%,P31%,P32%,P41%,P42%,Lv1%)
IF Lv1%>0
SpinsTC4:(P11%,P12%,S%:(P11%,P21%),S%:(P12%,P22%),S%:(P11%,P31%),S%:(P12%
,P32%),S%:(P11%,P41%),S%:(P12%,P42%),Lv1%-1)
SpinsTC4:(S%:(P31%,P11%),S%:(P32%,P12%),S%:(P31%,P21%),S%:(P32%,P22%),P31
%,P32%,S%:(P31%,P41%),S%:(P32%,P42%),Lv1%-1)
SpinsTC3:(S%:(P41%,P21%),S%:(P42%,P22%),S%:(P31%,P11%),S%:(P32%,P12%),S%:
(P31%,P41%),S%:(P32%,P42%),S%:(P41%,P31%),S%:(P42%,P32%),Lv1%-1)
SpinskTC:(S%:(P41%,P11%),S%:(P42%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),S%:
(P41%,P31%),S%:(P42%,P32%),P41%,P42%,Lv1%-1)
SpinsTC4:(S%:(P11%,P41%),S%:(P12%,P42%),S%:(P11%,P31%),S%:(P12%,P32%),S%:
(P41%,P21%),S%:(P42%,P22%),S%:(P41%,P11%),S%:(P42%,P12%),Lv1%-1)
SpinsTC4:(S%:(P11%,P31%),S%:(P12%,P32%),S%:(P21%,P41%),S%:(P22%,P42%),S%:
(P31%,P11%),S%:(P32%,P12%),S%:(P41%,P21%),S%:(P42%,P22%),Lv1%-1)
ELSE
POLY3:(P11%,P12%,P41%,P42%,P31%,P32%,4)
ENDIF
ENDP