Triquad puzzle game - Rick3137 - 05-18-2022
I hope this works on other computers.
This works on my HP windows11 laptop.
Code: (Select All) $NoPrefix
screen1& = NewImage(1360, 748, 256)
Screen screen1&
ScreenMove -2, -2
Dim Shared mx, my, row, column, zone, c1, c2, c3, c4, btn, pieceup, c1a, c2a, c3a, c4a, mz As Integer
Dim Shared gameover, lastzone, mousereleased, playagain, test, tcode1, tcode2, tcode3 As Integer
Dim Shared triquad(80, 4) As Integer
Dim Shared startquad(80, 4) As Integer
Dim Shared quadx(80) As Integer
Dim Shared quady(80) As Integer
playagain = 1: mz = 0: test = 0
Randomize Timer
setupcolors
Color 10, 11
Cls
While playagain = 1
menu
If mz = 1 Then game1setup
If mz = 2 Then game2setup
If mz = 3 Then game3setup
If mz = 4 Then game4setup
If mz = 5 Then game5setup
If mz = 6 Then game6setup
If mz = 7 Then game7setup
If mz = 8 Then game8setup
If mz = 9 Then game9setup
Color 10, 11
gameover = 0: lastzone = 0: pieceup = 0: mousereleased = 0:
snd 1: snd 2: snd 1
If mz < 5 Then mainloop
If mz = 5 Then mainloop2
If mz = 6 Then mainloop2
If mz = 7 Then mainloop3
If mz = 8 Then mainloop3
If mz = 9 Then mainloop3
EndScreen
Color 10, 11
Cls
Wend
End
Sub game1setup
setupdata
shuffle
makeboard
End Sub
Sub game2setup
setupdata
shuffle
makeboard
End Sub
Sub game3setup
setupdata
shuffle
makeboard
End Sub
Sub game4setup
setupdata
shuffle
makeboard
End Sub
Sub game5setup
setupdata2
shuffle2
makeboard2
End Sub
Sub game6setup
setupdata2
shuffle2
makeboard2
End Sub
Sub game7setup
setupdata3
shuffle3
makeboard3
End Sub
Sub game8setup
setupdata3
shuffle3
makeboard3
End Sub
Sub game9setup
setupdata3
shuffle3
makeboard3
End Sub
Sub menu
Color 10
mz = 0
a = 0: k$ = ""
Locate 10, 60: Print "THE GAME OF TRIQUAD"
Locate 12, 40: Print " To solve this puzzle, move all of the squares"
Locate 13, 40: Print " from the left side of the screen to the right side "
Locate 14, 40: Print " of the screen, using the mouse."
Locate 16, 40: Print " All triangles that touch, must be of the same color"
Locate 17, 40: Print " to win ."
Locate 20, 60: Print " SELECT GAME BUTTON WITH MOUSE TO START "
Locate 22, 60: Print " http://rb23.yolasite.com/ "
x = 198
For cnt = 1 To 9
y = 395 ' make 9 menu keys
box x, y, 60, 13
box2 x, y, 60, 10
box x + 10, y + 10, 40, 3
box2 x + 10, y + 10, 40, 10
x = x + 80
Locate 27, 18 + 10 * cnt: Print cnt
Next
Do
k$ = InKey$
If k$ <> "" Then a = 1
If MouseInput Then
mx = MouseX
my = MouseY
btn = MouseButton(1)
If btn = -1 And my > 400 And my < 460 Then ' select menu button (mz)
If mx > 200 And mx < 260 Then mz = 1
If mx > 280 And mx < 340 Then mz = 2
If mx > 360 And mx < 420 Then mz = 3
If mx > 440 And mx < 500 Then mz = 4
If mx > 520 And mx < 580 Then mz = 5
If mx > 600 And mx < 660 Then mz = 6
If mx > 680 And mx < 790 Then mz = 7
If mx > 760 And mx < 820 Then mz = 8
If mx > 840 And mx < 900 Then mz = 9
If mx > 900 Then test = 1
If mx > 900 Then Print " * "
End If
If mz = 1 Then a = 1
If mz = 2 Then a = 1
If mz = 3 Then a = 1
If mz = 4 Then a = 1
If mz = 5 Then a = 1
If mz = 6 Then a = 1
If mz = 7 Then a = 1
If mz = 8 Then a = 1
If mz = 9 Then a = 1
End If
Loop Until a = 1
Color 10, 11
Cls
End Sub
Sub EndScreen
a = 0: k$ = ""
Color 1, 11
Cls
Locate 10, 40
Print " PRESS ESCAPE KEY TO EXIT"
Locate 20, 40
Print " HIT SPACE BAR TO PLAY AGAIN "
Do
k$ = InKey$
If k$ = " " Then a = 1
If k$ = Chr$(27) Then playagain = 0: a = 1
Loop Until a = 1
End Sub
Sub shuffle
Dim t1, t2, t3, t4, q1, q2, q3, q4, r1, r2 As Integer ' temporary variables
If mz < 3 Then
t1 = triquad(3, 1) ' store colors in temporary variables
t2 = triquad(3, 2)
t3 = triquad(3, 3)
t4 = triquad(3, 4)
triquad(3, 1) = 0 ' clear color array
triquad(3, 2) = 0
triquad(3, 3) = 0
triquad(3, 4) = 0
triquad(12, 1) = t1 ' store variables to color array
triquad(12, 2) = t2
triquad(12, 3) = t3
triquad(12, 4) = t4
End If
If mz = 1 Then
q1 = triquad(9, 1) ' store colors in temporary variables
q2 = triquad(9, 2)
q3 = triquad(9, 3)
q4 = triquad(9, 4)
triquad(9, 1) = 0 ' clear color array
triquad(9, 2) = 0
triquad(9, 3) = 0
triquad(9, 4) = 0
triquad(18, 1) = q1 ' store variables to color array
triquad(18, 2) = q2
triquad(18, 3) = q3
triquad(18, 4) = q4
End If
t1 = 0: t2 = 0: t3 = 0: t4 = 0: q1 = 0: q2 = 0: q3 = 0: q4 = 0
' save solution data
For q = 1 To 9
startquad(q, 1) = triquad(q, 1)
startquad(q, 2) = triquad(q, 2)
startquad(q, 3) = triquad(q, 3)
startquad(q, 4) = triquad(q, 4)
Next
makeboard: Sleep 4
For cnt = 1 To 8 ' number of times to shuffle
If test = 0 Then
r1 = Int(Rnd * 9) + 1 ' from 8 or 9???
r2 = Int(Rnd * 9) + 1 ' to
End If
' This test mode makes square 9 the correct move for square 18
If test = 1 Then
r1 = Int(Rnd * 8) + 1 ' from 8 or 9???
r2 = Int(Rnd * 8) + 1 ' to
End If
t1 = triquad(r1, 1) ' store colors in temporary variables
t2 = triquad(r1, 2)
t3 = triquad(r1, 3)
t4 = triquad(r1, 4)
q1 = triquad(r2, 1)
q2 = triquad(r2, 2)
q3 = triquad(r2, 3)
q4 = triquad(r2, 4)
triquad(r2, 1) = t1 ' swap variables and store to color arrays
triquad(r2, 2) = t2
triquad(r2, 3) = t3
triquad(r2, 4) = t4
triquad(r1, 1) = q1
triquad(r1, 2) = q2
triquad(r1, 3) = q3
triquad(r1, 4) = q4
Next
End Sub
Sub shuffle3
Dim t1, t2, t3, t4, q1, q2, q3, q4, r1, r2 As Integer ' temporary variables
t1 = 0: t2 = 0: t3 = 0: t4 = 0: q1 = 0: q2 = 0: q3 = 0: q4 = 0
If mz = 7 Then
t1 = triquad(5, 1) ' store colors in temporary variables
t2 = triquad(5, 2)
t3 = triquad(5, 3)
t4 = triquad(5, 4)
triquad(5, 1) = 0 ' clear color array
triquad(5, 2) = 0
triquad(5, 3) = 0
triquad(5, 4) = 0
triquad(30, 1) = t1 ' store variables to color array
triquad(30, 2) = t2
triquad(30, 3) = t3
triquad(30, 4) = t4
t1 = triquad(25, 1) ' store colors in temporary variables
t2 = triquad(25, 2)
t3 = triquad(25, 3)
t4 = triquad(25, 4)
triquad(25, 1) = 0 ' clear color array
triquad(25, 2) = 0
triquad(25, 3) = 0
triquad(25, 4) = 0
triquad(50, 1) = t1 ' store variables to color array
triquad(50, 2) = t2
triquad(50, 3) = t3
triquad(50, 4) = t4
t1 = triquad(1, 1) ' store colors in temporary variables
t2 = triquad(1, 2)
t3 = triquad(1, 3)
t4 = triquad(1, 4)
triquad(1, 1) = 0 ' clear color array
triquad(1, 2) = 0
triquad(1, 3) = 0
triquad(1, 4) = 0
triquad(26, 1) = t1 ' store variables to color array
triquad(26, 2) = t2
triquad(26, 3) = t3
triquad(26, 4) = t4
t1 = triquad(21, 1) ' store colors in temporary variables
t2 = triquad(21, 2)
t3 = triquad(21, 3)
t4 = triquad(21, 4)
triquad(21, 1) = 0 ' clear color array
triquad(21, 2) = 0
triquad(21, 3) = 0
triquad(21, 4) = 0
triquad(46, 1) = t1 ' store variables to color array
triquad(46, 2) = t2
triquad(46, 3) = t3
triquad(46, 4) = t4
End If
If mz = 8 Then
t1 = triquad(5, 1) ' store colors in temporary variables
t2 = triquad(5, 2)
t3 = triquad(5, 3)
t4 = triquad(5, 4)
triquad(5, 1) = 0 ' clear color array
triquad(5, 2) = 0
triquad(5, 3) = 0
triquad(5, 4) = 0
triquad(30, 1) = t1 ' store variables to color array
triquad(30, 2) = t2
triquad(30, 3) = t3
triquad(30, 4) = t4
t1 = triquad(25, 1) ' store colors in temporary variables
t2 = triquad(25, 2)
t3 = triquad(25, 3)
t4 = triquad(25, 4)
triquad(25, 1) = 0 ' clear color array
triquad(25, 2) = 0
triquad(25, 3) = 0
triquad(25, 4) = 0
triquad(50, 1) = t1 ' store variables to color array
triquad(50, 2) = t2
triquad(50, 3) = t3
triquad(50, 4) = t4
End If
' save solution data
For q = 1 To 25
startquad(q, 1) = triquad(q, 1)
startquad(q, 2) = triquad(q, 2)
startquad(q, 3) = triquad(q, 3)
startquad(q, 4) = triquad(q, 4)
Next
makeboard3: Sleep 4
t1 = 0: t2 = 0: t3 = 0: t4 = 0: q1 = 0: q2 = 0: q3 = 0: q4 = 0
For z = 1 To 11 ' number of times to shuffle
If test = 0 Then
r1 = Int(Rnd * 25) + 1 ' from
r2 = Int(Rnd * 25) + 1 ' to
End If
' This test mode makes square 23,24,25 the correct move for square 48,49,50
If test = 1 Then
r1 = Int(Rnd * 22) + 1 ' from
r2 = Int(Rnd * 22) + 1 ' to
End If
t1 = triquad(r1, 1) ' store colors in temporary variables
t2 = triquad(r1, 2)
t3 = triquad(r1, 3)
t4 = triquad(r1, 4)
q1 = triquad(r2, 1)
q2 = triquad(r2, 2)
q3 = triquad(r2, 3)
q4 = triquad(r2, 4)
triquad(r2, 1) = t1 ' swap variables and store to color arrays
triquad(r2, 2) = t2
triquad(r2, 3) = t3
triquad(r2, 4) = t4
triquad(r1, 1) = q1
triquad(r1, 2) = q2
triquad(r1, 3) = q3
triquad(r1, 4) = q4
Next
End Sub
Sub shuffle2
Dim t1, t2, t3, t4, q1, q2, q3, q4, r1, r2 As Integer
t1 = 0: t2 = 0: t3 = 0: t4 = 0: q1 = 0: q2 = 0: q3 = 0: q4 = 0: r1 = 0: r2 = 0
If mz = 5 Then
t1 = triquad(4, 1) ' store colors in temporary variables
t2 = triquad(4, 2)
t3 = triquad(4, 3)
t4 = triquad(4, 4)
triquad(4, 1) = 0 ' clear color array
triquad(4, 2) = 0
triquad(4, 3) = 0
triquad(4, 4) = 0
triquad(20, 1) = t1 ' store variables to color array
triquad(20, 2) = t2
triquad(20, 3) = t3
triquad(20, 4) = t4
t1 = triquad(16, 1) ' store colors in temporary variables
t2 = triquad(16, 2)
t3 = triquad(16, 3)
t4 = triquad(16, 4)
triquad(16, 1) = 0 ' clear color array
triquad(16, 2) = 0
triquad(16, 3) = 0
triquad(16, 4) = 0
triquad(32, 1) = t1 ' store variables to color array
triquad(32, 2) = t2
triquad(32, 3) = t3
triquad(32, 4) = t4
t1 = triquad(13, 1) ' store colors in temporary variables
t2 = triquad(13, 2)
t3 = triquad(13, 3)
t4 = triquad(13, 4)
triquad(13, 1) = 0 ' clear color array
triquad(13, 2) = 0
triquad(13, 3) = 0
triquad(13, 4) = 0
triquad(29, 1) = t1 ' store variables to color array
triquad(29, 2) = t2
triquad(29, 3) = t3
triquad(29, 4) = t4
End If
' save solution data
For q = 1 To 16
startquad(q, 1) = triquad(q, 1)
startquad(q, 2) = triquad(q, 2)
startquad(q, 3) = triquad(q, 3)
startquad(q, 4) = triquad(q, 4)
Next
makeboard2: Sleep 4
For z = 1 To 11 ' number of times to shuffle
t1 = 0: t2 = 0: t3 = 0: t4 = 0: q1 = 0: q2 = 0: q3 = 0: q4 = 0: r1 = 0: r2 = 0
If test = 0 Then
r1 = Int(Rnd * 16) + 1 ' from
r2 = Int(Rnd * 16) + 1 ' to
End If
' This test mode makes square 14,15,16 the correct move for square 30,31,32 used for testing
If test = 1 Then
r1 = Int(Rnd * 13) + 1 ' from
r2 = Int(Rnd * 13) + 1 ' to
End If
t1 = triquad(r1, 1) ' store colors in temporary variables
t2 = triquad(r1, 2)
t3 = triquad(r1, 3)
t4 = triquad(r1, 4)
q1 = triquad(r2, 1)
q2 = triquad(r2, 2)
q3 = triquad(r2, 3)
q4 = triquad(r2, 4)
triquad(r2, 1) = t1 ' swap variables and store to color arrays
triquad(r2, 2) = t2
triquad(r2, 3) = t3
triquad(r2, 4) = t4
triquad(r1, 1) = q1
triquad(r1, 2) = q2
triquad(r1, 3) = q3
triquad(r1, 4) = q4
Next
End Sub
Sub checkboard
' check to see if game over
Dim p1, p2, p3, p4, c As Integer
c = 0
For cnt = 10 To 18
For cnt2 = 1 To 4
p1 = triquad(cnt, 1): p2 = triquad(cnt, 2): p3 = triquad(cnt, 3): p4 = triquad(cnt, 4)
If cnt = 10 And p2 > 0 And triquad(11, 4) = p2 Then c = c + 1
If cnt = 10 And p3 > 0 And triquad(13, 1) = p3 Then c = c + 1
If cnt = 11 And p2 > 0 And triquad(12, 4) = p2 Then c = c + 1
If cnt = 11 And p3 > 0 And triquad(14, 1) = p3 Then c = c + 1
If cnt = 12 And p3 > 0 And triquad(15, 1) = p3 Then c = c + 1
If cnt = 13 And p2 > 0 And triquad(14, 4) = p2 Then c = c + 1
If cnt = 13 And p3 > 0 And triquad(16, 1) = p3 Then c = c + 1
If cnt = 14 And p2 > 0 And triquad(15, 4) = p2 Then c = c + 1
If cnt = 14 And p3 > 0 And triquad(17, 1) = p3 Then c = c + 1
If cnt = 15 And p3 > 0 And triquad(18, 1) = p3 Then c = c + 1
If cnt = 16 And p2 > 0 And triquad(17, 4) = p2 Then c = c + 1
If cnt = 17 And p2 > 0 And triquad(18, 4) = p2 Then c = c + 1
Next
Next
If c = 48 Then Locate 2, 30: Print " PUZZLE SOLVED "
End Sub
Sub checkboard3
' check to see if game over
Dim p1, p2, p3, p4, c As Integer
c = 0
For cnt = 26 To 50
For cnt2 = 1 To 4
p1 = triquad(cnt, 1): p2 = triquad(cnt, 2): p3 = triquad(cnt, 3): p4 = triquad(cnt, 4)
If cnt = 26 And p2 > 0 And triquad(27, 4) = p2 Then c = c + 1
If cnt = 26 And p3 > 0 And triquad(31, 1) = p3 Then c = c + 1
If cnt = 27 And p2 > 0 And triquad(28, 4) = p2 Then c = c + 1
If cnt = 27 And p3 > 0 And triquad(32, 1) = p3 Then c = c + 1
If cnt = 28 And p2 > 0 And triquad(29, 4) = p2 Then c = c + 1
If cnt = 28 And p3 > 0 And triquad(33, 1) = p3 Then c = c + 1
If cnt = 29 And p2 > 0 And triquad(30, 4) = p2 Then c = c + 1
If cnt = 29 And p3 > 0 And triquad(34, 1) = p3 Then c = c + 1
If cnt = 30 And p3 > 0 And triquad(35, 1) = p3 Then c = c + 1
If cnt = 31 And p2 > 0 And triquad(32, 4) = p2 Then c = c + 1
If cnt = 31 And p3 > 0 And triquad(36, 1) = p3 Then c = c + 1
If cnt = 32 And p2 > 0 And triquad(33, 4) = p2 Then c = c + 1
If cnt = 32 And p3 > 0 And triquad(37, 1) = p3 Then c = c + 1
If cnt = 33 And p2 > 0 And triquad(34, 4) = p2 Then c = c + 1
If cnt = 33 And p3 > 0 And triquad(38, 1) = p3 Then c = c + 1
If cnt = 34 And p2 > 0 And triquad(35, 4) = p2 Then c = c + 1
If cnt = 34 And p3 > 0 And triquad(39, 1) = p3 Then c = c + 1
If cnt = 35 And p3 > 0 And triquad(40, 1) = p3 Then c = c + 1
If cnt = 36 And p2 > 0 And triquad(37, 4) = p2 Then c = c + 1
If cnt = 36 And p3 > 0 And triquad(41, 1) = p3 Then c = c + 1
If cnt = 37 And p2 > 0 And triquad(38, 4) = p2 Then c = c + 1
If cnt = 37 And p3 > 0 And triquad(42, 1) = p3 Then c = c + 1
If cnt = 38 And p2 > 0 And triquad(39, 4) = p2 Then c = c + 1
If cnt = 38 And p3 > 0 And triquad(43, 1) = p3 Then c = c + 1
If cnt = 39 And p3 > 0 And triquad(40, 4) = p2 Then c = c + 1
If cnt = 39 And p3 > 0 And triquad(44, 1) = p3 Then c = c + 1
If cnt = 40 And p3 > 0 And triquad(45, 1) = p3 Then c = c + 1
If cnt = 41 And p2 > 0 And triquad(42, 4) = p2 Then c = c + 1
If cnt = 41 And p3 > 0 And triquad(46, 1) = p3 Then c = c + 1
If cnt = 42 And p2 > 0 And triquad(43, 4) = p2 Then c = c + 1
If cnt = 42 And p3 > 0 And triquad(47, 1) = p3 Then c = c + 1
If cnt = 43 And p2 > 0 And triquad(44, 4) = p2 Then c = c + 1
If cnt = 43 And p3 > 0 And triquad(48, 1) = p3 Then c = c + 1
If cnt = 44 And p2 > 0 And triquad(45, 4) = p2 Then c = c + 1
If cnt = 44 And p3 > 0 And triquad(49, 1) = p3 Then c = c + 1
If cnt = 45 And p3 > 0 And triquad(50, 1) = p3 Then c = c + 1
If cnt = 46 And p2 > 0 And triquad(47, 4) = p2 Then c = c + 1
If cnt = 47 And p2 > 0 And triquad(48, 4) = p2 Then c = c + 1
If cnt = 48 And p2 > 0 And triquad(49, 4) = p2 Then c = c + 1
If cnt = 49 And p2 > 0 And triquad(50, 4) = p2 Then c = c + 1
Next
Next
If c = 160 Then Locate 2, 30: Print " PUZZLE SOLVED "
End Sub
Sub checkboard2
' check to see if game over
Dim p1, p2, p3, p4, c As Integer
c = 0
For cnt = 17 To 32
For cnt2 = 1 To 4
p1 = triquad(cnt, 1): p2 = triquad(cnt, 2): p3 = triquad(cnt, 3): p4 = triquad(cnt, 4)
If cnt = 17 And p2 > 0 And triquad(18, 4) = p2 Then c = c + 1
If cnt = 17 And p3 > 0 And triquad(21, 1) = p3 Then c = c + 1
If cnt = 18 And p2 > 0 And triquad(19, 4) = p2 Then c = c + 1
If cnt = 18 And p3 > 0 And triquad(22, 1) = p3 Then c = c + 1
If cnt = 19 And p2 > 0 And triquad(20, 4) = p2 Then c = c + 1
If cnt = 19 And p3 > 0 And triquad(23, 1) = p3 Then c = c + 1
If cnt = 20 And p3 > 0 And triquad(24, 1) = p3 Then c = c + 1
If cnt = 21 And p2 > 0 And triquad(22, 4) = p2 Then c = c + 1
If cnt = 21 And p3 > 0 And triquad(25, 1) = p3 Then c = c + 1
If cnt = 22 And p2 > 0 And triquad(23, 4) = p2 Then c = c + 1
If cnt = 22 And p3 > 0 And triquad(26, 1) = p3 Then c = c + 1
If cnt = 23 And p2 > 0 And triquad(24, 4) = p2 Then c = c + 1
If cnt = 23 And p3 > 0 And triquad(27, 1) = p3 Then c = c + 1
If cnt = 24 And p3 > 0 And triquad(28, 1) = p3 Then c = c + 1
If cnt = 25 And p2 > 0 And triquad(26, 4) = p2 Then c = c + 1
If cnt = 25 And p3 > 0 And triquad(29, 1) = p3 Then c = c + 1
If cnt = 26 And p2 > 0 And triquad(27, 4) = p2 Then c = c + 1
If cnt = 26 And p3 > 0 And triquad(30, 1) = p3 Then c = c + 1
If cnt = 27 And p2 > 0 And triquad(28, 4) = p2 Then c = c + 1
If cnt = 27 And p3 > 0 And triquad(31, 1) = p3 Then c = c + 1
If cnt = 28 And p3 > 0 And triquad(32, 1) = p3 Then c = c + 1
If cnt = 29 And p2 > 0 And triquad(30, 4) = p2 Then c = c + 1
If cnt = 30 And p2 > 0 And triquad(31, 4) = p2 Then c = c + 1
If cnt = 31 And p2 > 0 And triquad(32, 4) = p2 Then c = c + 1
Next
Next
If c = 96 Then Locate 2, 40: Print " PUZZLE SOLVED "
End Sub
Sub setupdata
Dim z, r1, r2, r3, r4 As Integer
tcode1 = 0
quadx(1) = 50: quadx(2) = 250: quadx(3) = 450: quadx(4) = 50: quadx(5) = 250: quadx(6) = 450: quadx(7) = 50: quadx(8) = 250: quadx(9) = 450
quady(1) = 100: quady(2) = 100: quady(3) = 100: quady(4) = 300: quady(5) = 300: quady(6) = 300: quady(7) = 500: quady(8) = 500: quady(9) = 500
quadx(10) = 700: quadx(11) = 900: quadx(12) = 1100: quadx(13) = 700: quadx(14) = 900: quadx(15) = 1100: quadx(16) = 700: quadx(17) = 900: quadx(18) = 1100
quady(10) = 100: quady(11) = 100: quady(12) = 100: quady(13) = 300: quady(14) = 300: quady(15) = 300: quady(16) = 500: quady(17) = 500: quady(18) = 500
' setup random colors
For z = 1 To 9
If z = 1 Or z = 3 Or z = 5 Or z = 7 Or z = 9 Then
r1 = Int(Rnd * 9) + 1: triquad(z, 1) = r1
r2 = Int(Rnd * 9) + 1: triquad(z, 2) = r2
r3 = Int(Rnd * 9) + 1: triquad(z, 3) = r3
r4 = Int(Rnd * 9) + 1: triquad(z, 4) = r4
End If
Next
If mz = 4 Then
For z = 1 To 9
If z = 1 Or z = 3 Or z = 5 Or z = 7 Or z = 9 Then
r1 = Int(Rnd * 30) + 1
triquad(z, 1) = r1
r2 = Int(Rnd * 30) + 1
triquad(z, 2) = r2
r3 = Int(Rnd * 30) + 1
triquad(z, 3) = r3
r4 = Int(Rnd * 30) + 1
triquad(z, 4) = r4
End If
Next
End If
For z = 10 To 18
triquad(z, 1) = 0
triquad(z, 2) = 0
triquad(z, 3) = 0
triquad(z, 4) = 0
Next
triquad(2, 1) = r1: triquad(2, 2) = triquad(3, 4): triquad(2, 3) = triquad(5, 1): triquad(2, 4) = triquad(1, 2)
triquad(4, 1) = triquad(1, 3): triquad(4, 2) = triquad(5, 4): triquad(4, 3) = triquad(7, 1): triquad(4, 4) = r2
triquad(6, 1) = triquad(3, 3): triquad(6, 2) = r4: triquad(6, 3) = triquad(9, 1): triquad(6, 4) = triquad(5, 2)
triquad(8, 1) = triquad(5, 3): triquad(8, 2) = triquad(9, 4): triquad(8, 3) = r4: triquad(8, 4) = triquad(7, 2)
For z = 1 To 9
r1 = triquad(z, 1)
r2 = triquad(z, 2)
r3 = triquad(z, 3)
r4 = triquad(z, 4)
tcode1 = tcode1 + r1 + r2 * 10 + r3 * 100 + r4 * 1000
Next
End Sub
Sub setupdata3
Dim z, r1, r2, r3, r4 As Integer
' set up locations
quadx(1) = 50: quadx(2) = 150: quadx(3) = 250: quadx(4) = 350: quadx(5) = 450
quadx(6) = 50: quadx(7) = 150: quadx(8) = 250: quadx(9) = 350: quadx(10) = 450
quadx(11) = 50: quadx(12) = 150: quadx(13) = 250: quadx(14) = 350: quadx(15) = 450
quadx(16) = 50: quadx(17) = 150: quadx(18) = 250: quadx(19) = 350: quadx(20) = 450
quadx(21) = 50: quadx(22) = 150: quadx(23) = 250: quadx(24) = 350: quadx(25) = 450
quady(1) = 100: quady(2) = 100: quady(3) = 100: quady(4) = 100: quady(5) = 100
quady(6) = 200: quady(7) = 200: quady(8) = 200: quady(9) = 200: quady(10) = 200
quady(11) = 300: quady(12) = 300: quady(13) = 300: quady(14) = 300: quady(15) = 300
quady(16) = 400: quady(17) = 400: quady(18) = 400: quady(19) = 400: quady(20) = 400
quady(21) = 500: quady(22) = 500: quady(23) = 500: quady(24) = 500: quady(25) = 500
quadx(26) = 650: quadx(27) = 750: quadx(28) = 850: quadx(29) = 950: quadx(30) = 1050
quadx(31) = 650: quadx(32) = 750: quadx(33) = 850: quadx(34) = 950: quadx(35) = 1050
quadx(36) = 650: quadx(37) = 750: quadx(38) = 850: quadx(39) = 950: quadx(40) = 1050
quadx(41) = 650: quadx(42) = 750: quadx(43) = 850: quadx(44) = 950: quadx(45) = 1050
quadx(46) = 650: quadx(47) = 750: quadx(48) = 850: quadx(49) = 950: quadx(50) = 1050
quady(26) = 100: quady(27) = 100: quady(28) = 100: quady(29) = 100: quady(30) = 100
quady(31) = 200: quady(32) = 200: quady(33) = 200: quady(34) = 200: quady(35) = 200
quady(36) = 300: quady(37) = 300: quady(38) = 300: quady(39) = 300: quady(40) = 300
quady(41) = 400: quady(42) = 400: quady(43) = 400: quady(44) = 400: quady(45) = 400
quady(46) = 500: quady(47) = 500: quady(48) = 500: quady(49) = 500: quady(50) = 500
' setup random colors
For z = 1 To 25
r1 = Int(Rnd * 44) + 1
triquad(z, 1) = r1
r2 = Int(Rnd * 44) + 1
triquad(z, 2) = r2
r3 = Int(Rnd * 44) + 1
triquad(z, 3) = r3
r4 = Int(Rnd * 44) + 1
triquad(z, 4) = r4
Next
For z = 26 To 50
triquad(z, 1) = 0
triquad(z, 2) = 0
triquad(z, 3) = 0
triquad(z, 4) = 0
Next
triquad(1, 2) = triquad(2, 4): triquad(2, 2) = triquad(3, 4): triquad(3, 2) = triquad(4, 4): triquad(4, 2) = triquad(5, 4)
triquad(6, 2) = triquad(7, 4): triquad(7, 2) = triquad(8, 4): triquad(8, 2) = triquad(9, 4): triquad(9, 2) = triquad(10, 4)
triquad(11, 2) = triquad(12, 4): triquad(12, 2) = triquad(13, 4): triquad(13, 2) = triquad(14, 4): triquad(14, 2) = triquad(15, 4)
triquad(16, 2) = triquad(17, 4): triquad(17, 2) = triquad(18, 4): triquad(18, 2) = triquad(19, 4): triquad(19, 2) = triquad(20, 4)
triquad(21, 2) = triquad(22, 4): triquad(22, 2) = triquad(23, 4): triquad(23, 2) = triquad(24, 4): triquad(24, 2) = triquad(25, 4)
triquad(1, 3) = triquad(6, 1): triquad(2, 3) = triquad(7, 1): triquad(3, 3) = triquad(8, 1): triquad(4, 3) = triquad(9, 1): triquad(5, 3) = triquad(10, 1)
triquad(6, 3) = triquad(11, 1): triquad(7, 3) = triquad(12, 1): triquad(8, 3) = triquad(13, 1): triquad(9, 3) = triquad(14, 1): triquad(10, 3) = triquad(15, 1)
triquad(11, 3) = triquad(16, 1): triquad(12, 3) = triquad(17, 1): triquad(13, 3) = triquad(18, 1): triquad(14, 3) = triquad(19, 1): triquad(15, 3) = triquad(20, 1)
triquad(16, 3) = triquad(21, 1): triquad(17, 3) = triquad(22, 1): triquad(18, 3) = triquad(23, 1): triquad(19, 3) = triquad(24, 1): triquad(20, 3) = triquad(25, 1)
' makeboard3: Sleep 300
End Sub
Sub setupdata2
' set up locations
Dim z, r1, r2, r3, r4 As Integer
quadx(1) = 50: quadx(2) = 150: quadx(3) = 250: quadx(4) = 350
quadx(5) = 50: quadx(6) = 150: quadx(7) = 250: quadx(8) = 350
quadx(9) = 50: quadx(10) = 150: quadx(11) = 250: quadx(12) = 350
quadx(13) = 50: quadx(14) = 150: quadx(15) = 250: quadx(16) = 350
quady(1) = 200: quady(2) = 200: quady(3) = 200: quady(4) = 200
quady(5) = 300: quady(6) = 300: quady(7) = 300: quady(8) = 300
quady(9) = 400: quady(10) = 400: quady(11) = 400: quady(12) = 400
quady(13) = 500: quady(14) = 500: quady(15) = 500: quady(16) = 500
quadx(17) = 550: quadx(18) = 650: quadx(19) = 750: quadx(20) = 850
quadx(21) = 550: quadx(22) = 650: quadx(23) = 750: quadx(24) = 850
quadx(25) = 550: quadx(26) = 650: quadx(27) = 750: quadx(28) = 850
quadx(29) = 550: quadx(30) = 650: quadx(31) = 750: quadx(32) = 850
quady(17) = 200: quady(18) = 200: quady(19) = 200: quady(20) = 200
quady(21) = 300: quady(22) = 300: quady(23) = 300: quady(24) = 300
quady(25) = 400: quady(26) = 400: quady(27) = 400: quady(28) = 400
quady(29) = 500: quady(30) = 500: quady(31) = 500: quady(32) = 500
' setup random colors
For z = 1 To 16
r1 = Int(Rnd * 23) + 1
triquad(z, 1) = r1
r2 = Int(Rnd * 23) + 1
triquad(z, 2) = r2
r3 = Int(Rnd * 23) + 1
triquad(z, 3) = r3
r4 = Int(Rnd * 23) + 1
triquad(z, 4) = r4
Next
For z = 17 To 32
triquad(z, 1) = 0
triquad(z, 2) = 0
triquad(z, 3) = 0
triquad(z, 4) = 0
Next
triquad(1, 2) = triquad(2, 4): triquad(2, 2) = triquad(3, 4): triquad(3, 2) = triquad(4, 4)
triquad(5, 2) = triquad(6, 4): triquad(6, 2) = triquad(7, 4): triquad(7, 2) = triquad(8, 4)
triquad(9, 2) = triquad(10, 4): triquad(10, 2) = triquad(11, 4): triquad(11, 2) = triquad(12, 4)
triquad(13, 2) = triquad(14, 4): triquad(14, 2) = triquad(15, 4): triquad(15, 2) = triquad(16, 4)
triquad(1, 3) = triquad(5, 1): triquad(5, 3) = triquad(9, 1): triquad(9, 3) = triquad(13, 1)
triquad(2, 3) = triquad(6, 1): triquad(6, 3) = triquad(10, 1): triquad(10, 3) = triquad(14, 1)
triquad(3, 3) = triquad(7, 1): triquad(7, 3) = triquad(11, 1): triquad(11, 3) = triquad(15, 1)
triquad(4, 3) = triquad(8, 1): triquad(8, 3) = triquad(12, 1): triquad(12, 3) = triquad(16, 1)
' printglobals
End Sub
Sub mainloop3
Dim a As Integer
pieceup = 0: btn = 0: row = 0: column = 0: zone = 0
makeboard3
Do
row = 0: column = 0: zone = 0
key$ = InKey$
If key$ <> "" Then Print key$; " "
Do While MouseInput
mx = MouseX
my = MouseY
If my > 100 And my < 190 Then row = 1
If my > 200 And my < 290 Then row = 2
If my > 300 And my < 390 Then row = 3
If my > 400 And my < 490 Then row = 4
If my > 500 And my < 590 Then row = 5
If mx > 50 And mx < 140 Then column = 1
If mx > 150 And mx < 240 Then column = 2
If mx > 250 And mx < 340 Then column = 3
If mx > 350 And mx < 440 Then column = 4
If mx > 450 And mx < 540 Then column = 5
If mx > 650 And mx < 740 Then column = 6
If mx > 750 And mx < 840 Then column = 7
If mx > 850 And mx < 940 Then column = 8
If mx > 950 And mx < 1040 Then column = 9
If mx > 1050 And mx < 1140 Then column = 10
If column = 0 Then row = 0
If row = 0 Then column = 0
getzone3
btn = MouseButton(1)
Loop
If btn = -1 Then
mousereleased = 1
Else
mousereleased = 0
End If
If test = 1 Then printsolution3
If mousereleased = 1 And pieceup = 0 And zone > 0 And triquad(zone, 1) > 0 Then
c1a = triquad(zone, 1): c2a = triquad(zone, 2): c3a = triquad(zone, 3): c4a = triquad(zone, 4)
pickup2
pieceup = 1
zone = 0
Else
If mousereleased = 1 And zone > 0 And pieceup = 1 Then
a = triquad(zone, 1)
If a = 0 Then
putdown3
pieceup = 0
Else
snd 4
c1 = c1a: c2 = c2a: c3 = c3a: c4 = c4a
pieceup = 1
End If
makeboard3
checkboard3
End If
End If
makeboard3
Loop Until key$ = Chr$(27)
End Sub
Sub mainloop2
Dim a As Integer
pieceup = 0: btn = 0: row = 0: column = 0: zone = 0
makeboard2
Do
row = 0: column = 0: zone = 0
key$ = InKey$
If key$ <> "" Then Print key$; " "
Do While MouseInput
mx = MouseX
my = MouseY
If my > 200 And my < 295 Then row = 1
If my > 295 And my < 395 Then row = 2
If my > 395 And my < 495 Then row = 3
If my > 495 And my < 595 Then row = 4
If mx > 50 And mx < 145 Then column = 1
If mx > 145 And mx < 245 Then column = 2
If mx > 245 And mx < 345 Then column = 3
If mx > 345 And mx < 445 Then column = 4
If mx > 545 And mx < 645 Then column = 5
If mx > 645 And mx < 745 Then column = 6
If mx > 745 And mx < 845 Then column = 7
If mx > 845 And mx < 945 Then column = 8
If column = 0 Then row = 0
If row = 0 Then column = 0
getzone2
btn = MouseButton(1)
Loop
If btn = -1 Then
mousereleased = 1
Else
mousereleased = 0
End If
If test = 1 Then printsolution2
If mousereleased = 1 And pieceup = 0 And zone > 0 And triquad(zone, 1) > 0 Then
c1a = triquad(zone, 1): c2a = triquad(zone, 2): c3a = triquad(zone, 3): c4a = triquad(zone, 4)
pickup2
pieceup = 1
' printglobals
zone = 0
Else
If mousereleased = 1 And zone > 0 And pieceup = 1 Then
a = triquad(zone, 1)
If a = 0 Then
putdown2
pieceup = 0
Else
snd 4
c1 = c1a: c2 = c2a: c3 = c3a: c4 = c4a
pieceup = 1
' printglobals
End If
makeboard2
checkboard2
End If
End If
makeboard2
Loop Until key$ = Chr$(27)
End Sub
Sub mainloop
Dim a As Integer
pieceup = 0: btn = 0: row = 0: column = 0: zone = 0
makeboard
Do
row = 0: column = 0: zone = 0
key$ = InKey$
If key$ <> "" Then Print key$; " "
Do While MouseInput
mx = MouseX
my = MouseY
If my > 100 And my < 280 Then row = 1
If my > 300 And my < 480 Then row = 2
If my > 500 And my < 680 Then row = 3
If mx > 50 And mx < 230 Then column = 1
If mx > 250 And mx < 430 Then column = 2
If mx > 450 And mx < 630 Then column = 3
If mx > 700 And mx < 880 Then column = 4
If mx > 900 And mx < 1080 Then column = 5
If mx > 1100 And mx < 1280 Then column = 6
If column = 0 Then row = 0
If row = 0 Then column = 0
getzone
btn = MouseButton(1)
Loop
If btn = -1 Then
mousereleased = 1
Else
mousereleased = 0
End If
If mousereleased = 1 And pieceup = 0 And zone > 0 And triquad(zone, 1) > 0 Then
c1a = triquad(zone, 1): c2a = triquad(zone, 2): c3a = triquad(zone, 3): c4a = triquad(zone, 4)
pickup
pieceup = 1
' printglobals
zone = 0
Else
If mousereleased = 1 And zone > 0 And pieceup = 1 Then
a = triquad(zone, 1)
If a = 0 Then
putdown
pieceup = 0
Else
snd 4
c1 = c1a: c2 = c2a: c3 = c3a: c4 = c4a
pieceup = 1
' printglobals
End If
checkboard
makeboard
End If
End If
makeboard
If test = 1 Then printsolution1
Loop Until key$ = Chr$(27)
End Sub
Sub pickup ()
Dim z, x, y As Integer
z = zone: x = quadx(z): y = quady(z)
c1 = triquad(z, 1): c2 = triquad(z, 2): c3 = triquad(z, 3): c4 = triquad(z, 4)
triquad(z, 1) = 0: triquad(z, 2) = 0: triquad(z, 3) = 0: triquad(z, 4) = 0
snd 1: snd 2
End Sub
Sub putdown ()
Dim z, x, y As Integer
z = zone: x = quadx(z): y = quady(z)
triquad(z, 1) = c1: triquad(z, 2) = c2: triquad(z, 3) = c3: triquad(z, 4) = c4
c1 = 0: c2 = 0: c3 = 0: c4 = 0
snd 2: snd 1: snd 1
End Sub
Sub pickup2 ()
Dim z, x, y As Integer
z = zone: x = quadx(z): y = quady(z)
c1 = triquad(z, 1): c2 = triquad(z, 2): c3 = triquad(z, 3): c4 = triquad(z, 4)
box1$ = " r90 d90 l90 u90 "
bx1$ = " r90 d90 h90 d90 e90 "
box x, y, 90, 0
PSet (x, y), 12
Draw box1$
Draw bx1$
triquad(z, 1) = 0: triquad(z, 2) = 0: triquad(z, 3) = 0: triquad(z, 4) = 0
snd 1: snd 2
End Sub
Sub putdown2 ()
Dim z, x, y As Integer
z = zone: x = quadx(z): y = quady(z)
triquad(z, 1) = c1: triquad(z, 2) = c2: triquad(z, 3) = c3: triquad(z, 4) = c4
makeboard2
c1 = 0: c2 = 0: c3 = 0: c4 = 0
snd 2: snd 1: snd 1
End Sub
Sub putdown3 ()
Dim z, x, y As Integer
z = zone: x = quadx(z): y = quady(z)
triquad(z, 1) = c1: triquad(z, 2) = c2: triquad(z, 3) = c3: triquad(z, 4) = c4
makeboard3
c1 = 0: c2 = 0: c3 = 0: c4 = 0
snd 2: snd 1: snd 1
Locate 5, 20: Print z
End Sub
Sub printsolution1
a = 10
For z = 1 To 9
Locate 2, a: Print startquad(z, 1)
Locate 3, a: Print startquad(z, 2)
Locate 4, a: Print startquad(z, 3)
Locate 5, a: Print startquad(z, 4)
a = a + 4
Next
End Sub
Sub printsolution2
a = 10
For z = 1 To 16
Locate 2, a: Print startquad(z, 1)
Locate 3, a: Print startquad(z, 2)
Locate 4, a: Print startquad(z, 3)
Locate 5, a: Print startquad(z, 4)
a = a + 4
Next
End Sub
Sub printsolution3
a = 10
For z = 1 To 25
Locate 2, a: Print startquad(z, 1)
Locate 3, a: Print startquad(z, 2)
Locate 4, a: Print startquad(z, 3)
Locate 5, a: Print startquad(z, 4)
a = a + 4
Next
End Sub
Sub printglobals ()
Locate 2, 2: Print mx
Locate 3, 2: Print my
Locate 4, 10: Print " Row"
Locate 4, 15: Print row
Locate 4, 20: Print " Column"
Locate 4, 30: Print column
Locate 4, 40: Print " Zone"
Locate 4, 50: Print zone
Locate 4, 60: Print " Btn"
Locate 4, 70: Print btn
Locate 4, 80
If pieceup = 1 Then Print " Pieceup "
If pieceup = 0 Then Print " Piecedown"
Locate 4, 100: Print " Mousereleased "
Locate 4, 120: Print mousereleased
Locate 2, 10: Print c1
Locate 2, 14: Print c2
Locate 2, 18: Print c3
Locate 2, 22: Print c4
Locate 2, 120: Print tcode1
Locate 3, 120: Print tcode2
Locate 4, 120: Print tcode3
' JESUS IS COMMING ... PASS IT ON
End Sub
Sub box (x, y, size, clr)
' x and y are upper left side of box
Line (x, y)-(x + size, y + size), clr, BF , 2 ' Solid box
End Sub
Sub box2 (x, y, size, clr)
' x and y are upper left side of box
Line (x, y)-(x + size, y + size), clr, B ' plain box
End Sub
Sub getzone
Dim z, r, c As Integer
c = column
r = row
z = 0
If r = 1 Then
If c = 1 Then z = 1
If c = 2 Then z = 2
If c = 3 Then z = 3
If c = 4 Then z = 10
If c = 5 Then z = 11
If c = 6 Then z = 12
End If
If r = 2 Then
If c = 1 Then z = 4
If c = 2 Then z = 5
If c = 3 Then z = 6
If c = 4 Then z = 13
If c = 5 Then z = 14
If c = 6 Then z = 15
End If
If r = 3 Then
If c = 1 Then z = 7
If c = 2 Then z = 8
If c = 3 Then z = 9
If c = 4 Then z = 16
If c = 5 Then z = 17
If c = 6 Then z = 18
End If
zone = z
End Sub
Sub getzone3
Dim z, r, c As Integer
c = column
r = row
z = 0
If r = 1 Then
If c = 1 Then z = 1
If c = 2 Then z = 2
If c = 3 Then z = 3
If c = 4 Then z = 4
If c = 5 Then z = 5
If c = 6 Then z = 26
If c = 7 Then z = 27
If c = 8 Then z = 28
If c = 9 Then z = 29
If c = 10 Then z = 30
End If
If r = 2 Then
If c = 1 Then z = 6
If c = 2 Then z = 7
If c = 3 Then z = 8
If c = 4 Then z = 9
If c = 5 Then z = 10
If c = 6 Then z = 31
If c = 7 Then z = 32
If c = 8 Then z = 33
If c = 9 Then z = 34
If c = 10 Then z = 35
End If
If r = 3 Then
If c = 1 Then z = 11
If c = 2 Then z = 12
If c = 3 Then z = 13
If c = 4 Then z = 14
If c = 5 Then z = 15
If c = 6 Then z = 36
If c = 7 Then z = 37
If c = 8 Then z = 38
If c = 9 Then z = 39
If c = 10 Then z = 40
End If
If r = 4 Then
If c = 1 Then z = 16
If c = 2 Then z = 17
If c = 3 Then z = 18
If c = 4 Then z = 19
If c = 5 Then z = 20
If c = 6 Then z = 41
If c = 7 Then z = 42
If c = 8 Then z = 43
If c = 9 Then z = 44
If c = 10 Then z = 45
End If
If r = 5 Then
If c = 1 Then z = 21
If c = 2 Then z = 22
If c = 3 Then z = 23
If c = 4 Then z = 24
If c = 5 Then z = 25
If c = 6 Then z = 46
If c = 7 Then z = 47
If c = 8 Then z = 48
If c = 9 Then z = 49
If c = 10 Then z = 50
End If
zone = z
End Sub
Sub getzone2
Dim z, r, c As Integer
c = column
r = row
z = 0
If r = 1 Then
If c = 1 Then z = 1
If c = 2 Then z = 2
If c = 3 Then z = 3
If c = 4 Then z = 4
If c = 5 Then z = 17
If c = 6 Then z = 18
If c = 7 Then z = 19
If c = 8 Then z = 20
End If
If r = 2 Then
If c = 1 Then z = 5
If c = 2 Then z = 6
If c = 3 Then z = 7
If c = 4 Then z = 8
If c = 5 Then z = 21
If c = 6 Then z = 22
If c = 7 Then z = 23
If c = 8 Then z = 24
End If
If r = 3 Then
If c = 1 Then z = 9
If c = 2 Then z = 10
If c = 3 Then z = 11
If c = 4 Then z = 12
If c = 5 Then z = 25
If c = 6 Then z = 26
If c = 7 Then z = 27
If c = 8 Then z = 28
End If
If r = 4 Then
If c = 1 Then z = 13
If c = 2 Then z = 14
If c = 3 Then z = 15
If c = 4 Then z = 16
If c = 5 Then z = 29
If c = 6 Then z = 30
If c = 7 Then z = 31
If c = 8 Then z = 32
End If
zone = z
End Sub
Sub makeboard3
Dim clr1, clr2, clr3, clr4, sx, sy, z As Integer
z = 1
For q = 1 To 50
sx = quadx(z): sy = quady(z)
clr1 = triquad(z, 1)
clr2 = triquad(z, 2)
clr3 = triquad(z, 3)
clr4 = triquad(z, 4)
box1$ = " r90 d90 l90 u90 "
bx1$ = " r90 d90 h90 d90 e90 "
PSet (sx, sy), 45
Draw box1$
Draw bx1$
Paint (sx + 40, sy + 20), clr1, 45
Paint (sx + 70, sy + 40), clr2, 45
Paint (sx + 40, sy + 60), clr3, 45
Paint (sx + 20, sy + 40), clr4, 45
z = z + 1
Next
End Sub
Sub makeboard2
' box 2, 2, 1360, 11
Dim clr1, clr2, clr3, clr4, sx, sy, z As Integer
For z = 1 To 32
sx = quadx(z): sy = quady(z)
clr1 = triquad(z, 1)
clr2 = triquad(z, 2)
clr3 = triquad(z, 3)
clr4 = triquad(z, 4)
box1$ = " r90 d90 l90 u90 "
bx1$ = " r90 d90 h90 d90 e90 "
PSet (sx, sy), 45
Draw box1$
Draw bx1$
Paint (sx + 40, sy + 20), clr1, 45
Paint (sx + 70, sy + 40), clr2, 45
Paint (sx + 40, sy + 60), clr3, 45
Paint (sx + 20, sy + 40), clr4, 45
Next
End Sub
Sub makeboard
Dim clr1, clr2, clr3, clr4, sx, sy, z As Integer
For z = 1 To 18
sx = quadx(z): sy = quady(z)
clr1 = triquad(z, 1)
clr2 = triquad(z, 2)
clr3 = triquad(z, 3)
clr4 = triquad(z, 4)
box1$ = " r180 d180 l180 u180 "
bx1$ = " r180 d180 h180 d180 e180 "
PSet (sx, sy), 45
Draw box1$
Draw bx1$
Paint (sx + 90, sy + 40), clr1, 45
Paint (sx + 120, sy + 90), clr2, 45
Paint (sx + 90, sy + 120), clr3, 45
Paint (sx + 40, sy + 90), clr4, 45
Next
End Sub
Sub setupcolors ()
PaletteColor 0, RGB32(0, 0, 0) ' black
PaletteColor 1, RGB32(255, 255, 255) ' white
PaletteColor 2, RGB32(0, 255, 0) ' green
PaletteColor 3, RGB32(0, 0, 90) ' dark blue
PaletteColor 4, RGB32(50, 80, 0) ' yellow green
PaletteColor 5, RGB32(255, 255, 0) ' yellow
PaletteColor 6, RGB32(0, 255, 255) ' blue green
PaletteColor 7, RGB32(255, 0, 255) ' violet
PaletteColor 8, RGB32(0, 150, 250) ' greenish blue
PaletteColor 9, RGB32(0, 230, 80) ' bluish green
PaletteColor 10, RGB32(200, 200, 255) ' bluish white
PaletteColor 11, RGB32(0, 0, 70) 'very dark blue
PaletteColor 12, RGB32(255, 0, 0) ' red
PaletteColor 13, RGB32(0, 0, 255) ' blue
PaletteColor 14, RGB32(0, 0, 220) ' blue2
PaletteColor 15, RGB32(0, 0, 200) ' blue3
PaletteColor 16, RGB32(180, 0, 0) ' red2
PaletteColor 17, RGB32(90, 0, 0) ' red3
PaletteColor 18, RGB32(0, 180, 0) ' green2
PaletteColor 19, RGB32(0, 90, 0) ' green3
PaletteColor 20, RGB32(180, 0, 180) ' violet2
PaletteColor 21, RGB32(90, 0, 90) ' violet3
PaletteColor 22, RGB32(0, 70, 70) ' bluegreen2
PaletteColor 23, RGB32(0, 120, 120) ' bluegreen3
PaletteColor 24, RGB32(0, 0, 170) ' blue4
PaletteColor 25, RGB32(0, 0, 140) ' blue5
PaletteColor 26, RGB32(0, 0, 120) ' blue6
PaletteColor 27, RGB32(220, 0, 0) ' red4
PaletteColor 28, RGB32(140, 0, 0) ' red5
PaletteColor 29, RGB32(0, 220, 0) ' green4
PaletteColor 30, RGB32(0, 140, 0) ' green5
PaletteColor 31, RGB32(220, 0, 220) ' violet4
PaletteColor 32, RGB32(140, 0, 140) ' violet5
PaletteColor 33, RGB32(0, 180, 180) ' bluegreen4
PaletteColor 34, RGB32(0, 220, 220) ' bluegreen5
PaletteColor 35, RGB32(150, 150, 150) ' gray
PaletteColor 36, RGB32(90, 90, 90) ' dark gray
PaletteColor 37, RGB32(100, 100, 220) ' bluishbrown
PaletteColor 38, RGB32(200, 100, 100) ' redish brown
PaletteColor 39, RGB32(100, 200, 100) ' greenish brown
PaletteColor 40, RGB32(200, 100, 200) ' violet brown
PaletteColor 41, RGB32(0, 50, 0) ' green6
PaletteColor 42, RGB32(40, 0, 40) ' violet6
PaletteColor 43, RGB32(40, 0, 40) ' bluegreen6
PaletteColor 44, RGB32(180, 180, 100) ' yellow brown
PaletteColor 45, RGB32(200, 200, 255) 'off white
End Sub
Sub snd (sd)
' tempo "T80" length of note "L8"
'If sd = 1 Then Play "L8": Play "T40": Play "c"
If sd = 1 Then
Sound 160, 1
Sound 80, 1
End If
If sd = 2 Then
Sound 180, 1
Sound 90, 1
End If
If sd = 3 Then
Sound 200, 1
Sound 100, 1
End If
If sd = 20 Then
For x = 1 To 5
Sound 1000, 1
Sound 1000 - 100 * x, 1
Next
End If
End Sub
RE: Triquad puzzle game - Helium5793 - 05-19-2022
It works on my HP desktop.... very nice!
RE: Triquad puzzle game - Rick3137 - 05-19-2022
Thank you. I spent several weeks on this project. ( Helps fight boredom)
RE: Triquad puzzle game - bplus - 05-19-2022
Hey @Rick3137,
Welcome to forum, nice to see you found us!
This was great game, loved making my own mod of it!
RE: Triquad puzzle game - Rick3137 - 05-19-2022
Thanks Mark
I'm glad I found it. Good Forums are getting hard to find.
RE: Triquad puzzle game - bplus - 05-19-2022
(05-19-2022, 03:41 PM)Rick3137 Wrote: Thanks Mark
I'm glad I found it. Good Forums are getting hard to find.
A more stable way to poll the mouse = update mouse x, y and buttons:
Code: (Select All) While MouseInput: Wend ' <<<< this updates mouse x, y and buttons internally for the loop
mx = MouseX ' now just capture updates into variables mx, my, btn or mb1
my = MouseY
btn = MouseButton(1)
If btn Then
If my > 100 And my < 280 Then row = 1
If my > 300 And my < 480 Then row = 2
If my > 500 And my < 680 Then row = 3
If mx > 50 And mx < 230 Then column = 1
If mx > 250 And mx < 430 Then column = 2
If mx > 450 And mx < 630 Then column = 3
If mx > 700 And mx < 880 Then column = 4
If mx > 900 And mx < 1080 Then column = 5
If mx > 1100 And mx < 1280 Then column = 6
If column = 0 Then row = 0
If row = 0 Then column = 0
getzone
_Delay .2 ' for user to release button ' this waits for user to release mouse button before processing
mousereleased = 1 ' now you can assume it's released and go ahead
End If
so don't need this,
Code: (Select All) 'If btn = -1 Then
' mousereleased = 1
'Else
' mousereleased = 0
'End If
wow 3 mouse pollings in 3 main loops, yikes!
RE: Triquad puzzle game - Dav - 05-19-2022
Nice game Rick3137! Work fine for me on my lenovo laptop.
Fun little puzzle. Good job.
- Dav
|