No Locate like this? Only 1 For loop too!
Code: (Select All)
'........T=====T 1
'......./-----/| 2
'....../-----/|| 2
'...../-----/||| 2
'..../-----/|||J 3
'.../-----/|||/ 4
'../-----/|||/ 4
'./-----/|||/ 4
'T=====T|||/ 4
'|*****|||/ 4
'|*****||/ 4
'|*****|/ 4
'L=====J 5
_Title "Kube"
Randomize Timer ' kube.bas 'bplus 2023-11-05
Do
Cls
a = Int(Rnd * 13) + 3: b = Int(Rnd * 7) + 3: c = Int(Rnd * 13) + 3
If c < b Then c = b
' a = 7: b = 5: c = 8 ' <<<<< test drawing above OK good!
d = b + c: w = a - 2: h = b - 2: rw = 0
For i = 1 To d
If i > c Then
If rw > d - i Then rw = d - i
End If
If i = 1 Then ' case 1
Print String$(c - i + 1, ".") + "T" + String$(w, "=") + "T 1"; Tab(40); i
ElseIf i < b Then ' case 2
Print String$(c - i + 1, ".") + "/" + String$(w, "-") + "/" + String$(rw, "|") + " 2"; Tab(40); i
ElseIf i = b Then ' case 3
Print String$(c - i + 1, ".") + "/" + String$(w, "-") + "/" + String$(rw, "|") + "J 3"; Tab(40); i
ElseIf i <= c Then
Print String$(c - i + 1, ".") + "/" + String$(w, "-") + "/" + String$(rw, "|") + "/" + " 4"; Tab(40); i
ElseIf i = c + 1 Then ' T bar
Print "T" + String$(a - 2, "=") + "T" + String$(rw, "|") + "/ 4"; Tab(40); i
ElseIf i > c + 1 And i <> d Then
Print "|" + String$(a - 2, "*") + String$(rw, "|") + "/ 4"; Tab(40); i
ElseIf i = d Then
rw = 0
Print "L" + String$(a - 2, "=") + "J 5"; Tab(40); i
End If
rw = rw + 1
If rw > h Then rw = h
If d - i + 1 < rw And i > c Then rw = d - i
Next
Print
Print " a", " b", " c"
Print a, b, c
Sleep
Loop
b = b + ...