Skip to content

Instantly share code, notes, and snippets.

@laurent22
Created October 13, 2017 10:33
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laurent22/2826941c5468e00433cc156273ebd426 to your computer and use it in GitHub Desktop.
Save laurent22/2826941c5468e00433cc156273ebd426 to your computer and use it in GitHub Desktop.
LABY2.BAS
80 Position:
'Dessin du premier plan
IF dir = 1 THEN pos$ = LEFT$(piece$, 3)
IF dir = 2 THEN pos$ = RIGHT$(piece$, 3)
IF dir = 3 THEN pos$ = RIGHT$(piece$, 2) + LEFT$(piece$, 1)
IF dir = 4 THEN pos$ = RIGHT$(piece$, 1) + LEFT$(piece$, 2)
IF LEFT$(pos$, 1) = "1" THEN
LINE (10, 10)-(134, 76)
LINE -(134, 274)
LINE -(10, 340)
ELSE
LINE (10, 76)-(134, 274), , B
END IF
IF MID$(pos$, 2, 1) = "1" THEN LINE (134, 76)-(506, 274), , B
IF RIGHT$(pos$, 1) = "1" THEN
LINE (630, 10)-(506, 76)
LINE -(506, 274)
LINE -(630, 340)
ELSE
LINE (506, 76)-(630, 274), , B
END IF
'Dessin du second plan
IF MID$(pos$, 2, 1) = "0" THEN
IF dir = 1 THEN F = x - 8
IF dir = 2 THEN F = x + 1
IF dir = 3 THEN F = x + 8
IF dir = 4 THEN F = x - 1
i = INT(lab(F) / 1000)
j = INT(10 * ((lab(F) / 1000) - INT(lab(F) / 1000)))
k = INT(10 * ((lab(F) / 100) - (INT(lab(F) / 100))))
l = INT(10 * ((.1 * lab(F)) - (INT(.1 * lab(F)))))
IF i = 1 THEN i$ = "1" ELSE i$ = "0"
IF j = 1 THEN j$ = "1" ELSE j$ = "0"
IF k = 1 THEN k$ = "1" ELSE k$ = "0"
IF l = 1 THEN l$ = "1" ELSE l$ = "0"
piece$ = i$ + j$ + k$ + l$
IF dir = 1 THEN pos2$ = LEFT$(piece$, 3)
IF dir = 2 THEN pos2$ = RIGHT$(piece$, 3)
IF dir = 3 THEN pos2$ = RIGHT$(piece$, 2) + LEFT$(piece$, 1)
IF dir = 4 THEN pos2$ = RIGHT$(piece$, 1) + LEFT$(piece$, 2)
IF LEFT$(pos2$, 1) = "1" THEN
LINE (134, 76)-(258, 142)
LINE -(258, 208)
LINE -(134, 274)
ELSE
LINE (134, 76)-(196, 108)
LINE -(196, 242)
LINE -(134, 274)
LINE (196, 142)-(258, 208), , B
END IF
IF MID$(pos2$, 2, 1) = "1" THEN LINE (258, 142)-(382, 208), , B
IF RIGHT$(pos2$, 1) = "1" THEN
LINE (506, 76)-(382, 142)
LINE -(382, 208)
LINE -(506, 274)
ELSE
LINE (506, 76)-(444, 108)
LINE -(444, 242)
LINE -(506, 274)
LINE (382, 142)-(444, 208), , B
END IF
END IF
'Dessin du troisiŠme plan
IF MID$(pos$, 2, 1) = "0" AND MID$(pos2$, 2, 1) = "0" THEN
IF dir = 1 THEN F = x - 16
IF dir = 2 THEN F = x + 2
IF dir = 3 THEN F = x + 16
IF dir = 4 THEN F = x - 2
i = INT(lab(F) / 1000)
j = INT(10 * ((lab(F) / 1000) - INT(lab(F) / 1000)))
k = INT(10 * ((lab(F) / 100) - (INT(lab(F) / 100))))
l = INT(10 * ((.1 * lab(F)) - (INT(.1 * lab(F)))))
IF i = 1 THEN i$ = "1" ELSE i$ = "0"
IF j = 1 THEN j$ = "1" ELSE j$ = "0"
IF k = 1 THEN k$ = "1" ELSE k$ = "0"
IF l = 1 THEN l$ = "1" ELSE l$ = "0"
piece$ = i$ + j$ + k$ + l$
IF dir = 1 THEN pos2$ = LEFT$(piece$, 3)
IF dir = 2 THEN pos2$ = RIGHT$(piece$, 3)
IF dir = 3 THEN pos2$ = RIGHT$(piece$, 2) + LEFT$(piece$, 1)
IF dir = 4 THEN pos2$ = RIGHT$(piece$, 1) + LEFT$(piece$, 2)
IF LEFT$(pos2$, 1) = "1" THEN
LINE (258, 142)-(290, 159)
LINE -(290, 191)
LINE -(258, 208)
ELSE
LINE (258, 142)-(274, 151)
LINE -(274, 199)
LINE -(258, 208)
LINE (274, 191)-(290, 159), , B
END IF
IF MID$(pos2$, 2, 1) = "1" THEN LINE (350, 159)-(290, 191), , B
IF RIGHT$(pos2$, 1) = "1" THEN
LINE (382, 142)-(350, 159)
LINE -(350, 191)
LINE -(382, 208)
ELSE
LINE (382, 142)-(366, 151)
LINE -(366, 199)
LINE -(382, 208)
LINE (366, 191)-(350, 159), , B
END IF
END IF
'Dessin du quatriŠme plan
IF MID$(pos$, 2, 1) = "0" AND MID$(pos2$, 2, 1) = "0" THEN
IF dir = 1 THEN F = x - 24
IF dir = 2 THEN F = x + 3
IF dir = 3 THEN F = x + 24
IF dir = 4 THEN F = x - 3
i = INT(lab(F) / 1000)
j = INT(10 * ((lab(F) / 1000) - INT(lab(F) / 1000)))
k = INT(10 * ((lab(F) / 100) - (INT(lab(F) / 100))))
l = INT(10 * ((.1 * lab(F)) - (INT(.1 * lab(F)))))
IF i = 1 THEN i$ = "1" ELSE i$ = "0"
IF j = 1 THEN j$ = "1" ELSE j$ = "0"
IF k = 1 THEN k$ = "1" ELSE k$ = "0"
IF l = 1 THEN l$ = "1" ELSE l$ = "0"
piece$ = i$ + j$ + k$ + l$
IF dir = 1 THEN pos2$ = LEFT$(piece$, 3)
IF dir = 2 THEN pos2$ = RIGHT$(piece$, 3)
IF dir = 3 THEN pos2$ = RIGHT$(piece$, 2) + LEFT$(piece$, 1)
IF dir = 4 THEN pos2$ = RIGHT$(piece$, 1) + LEFT$(piece$, 2)
IF LEFT$(pos2$, 1) = "1" THEN
LINE (290, 159)-(308, 169)
LINE -(308, 181)
LINE -(290, 191)
ELSE
LINE (290, 159)-(299, 164)
LINE -(299, 185)
LINE -(290, 191)
LINE (299, 181)-(308, 169), , B
END IF
IF MID$(pos2$, 2, 1) = "1" THEN LINE (308, 169)-(332, 181), , B
IF RIGHT$(pos2$, 1) = "1" THEN
LINE (350, 159)-(332, 169)
LINE -(332, 181)
LINE -(350, 191)
ELSE
LINE (350, 159)-(341, 164)
LINE -(341, 185)
LINE -(350, 191)
LINE (341, 181)-(332, 169), , B
END IF
END IF
'Dessin du cinquiŠme plan
IF MID$(pos$, 2, 1) = "0" AND MID$(pos2$, 2, 1) = "0" THEN
IF dir = 1 THEN F = x - 32
IF dir = 2 THEN F = x + 4
IF dir = 3 THEN F = x + 32
IF dir = 4 THEN F = x - 4
i = INT(lab(F) / 1000)
j = INT(10 * ((lab(F) / 1000) - INT(lab(F) / 1000)))
k = INT(10 * ((lab(F) / 100) - (INT(lab(F) / 100))))
l = INT(10 * ((.1 * lab(F)) - (INT(.1 * lab(F)))))
IF i = 1 THEN i$ = "1" ELSE i$ = "0"
IF j = 1 THEN j$ = "1" ELSE j$ = "0"
IF k = 1 THEN k$ = "1" ELSE k$ = "0"
IF l = 1 THEN l$ = "1" ELSE l$ = "0"
piece$ = i$ + j$ + k$ + l$
IF dir = 1 THEN pos2$ = LEFT$(piece$, 3)
IF dir = 2 THEN pos2$ = RIGHT$(piece$, 3)
IF dir = 3 THEN pos2$ = RIGHT$(piece$, 2) + LEFT$(piece$, 1)
IF dir = 4 THEN pos2$ = RIGHT$(piece$, 1) + LEFT$(piece$, 2)
IF LEFT$(pos2$, 1) = "1" THEN
LINE (308, 169)-(316, 174)
LINE -(316, 176)
LINE -(308, 181)
ELSE
LINE (308, 169)-(312, 171)
LINE -(312, 179)
LINE -(308, 181)
LINE (312, 174)-(316, 176), , B
END IF
IF MID$(pos2$, 2, 1) = "1" THEN LINE (316, 174)-(324, 176), , B
IF RIGHT$(pos2$, 1) = "1" THEN
LINE (332, 169)-(324, 174)
LINE -(324, 176)
LINE -(332, 181)
ELSE
LINE (332, 169)-(328, 171)
LINE -(328, 179)
LINE -(332, 181)
LINE (328, 174)-(324, 176), , B
END IF
END IF
RETURN
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment