12-24-2023, 04:43 AM
Quote:Hello Everyone,
Quads is a 2 player abstract strategy board game. The game is played with 36 tiles on a 6 X 6 game board. Player 1 plays 1 neutral tile and 17 light colored tiles. Player 2 plays the other neutral tile and their dark colored tiles. The player who can not place a tile on their turn loses the game.
At the start of the game each player places their tiles face up on their side of the board in view of both players. There is a variation the players can choose to agree to hide their tiles from their opponent. In a real game the players would stand their tiles up facing them. On my game, the opponent’s tiles are removed from the screen while the player takes their turn.
The game starts with player 1 places their neutral tiles any where on the board. Then player 2 places their neural tile anywhere empty space on the board, except next the other neutral tile placed. Then players take turns placing 1 of their tiles on any empty space on the board that is next to an adjacent tile. The edges of the tile being placed must match the edges of the adjacent tile on the board. In example: If the adjacent tile edge has vertical lines, the tile being place must have mating vertical lines on the same edge face each other. The same is true if the tile has horizontal lines. However, 2 tiles adjacent from each other both has a solid edge, but different colors, these tiles are not a match and can not be placed next to each other, were as same color tiles can. There is a border that surrounds the game board with horizontal lines. A player does not half to match the edges of the border for a normal game. There is a variation to the game that players can agree to have to match the borders edges also. The players are asked at the beginning of the game, weather to use the variations or not.
Playing the game on the computer: The game starts with an empty game board in the center. Player 1’s tiles are positioned on the left side of the board, while player 2’s is on the right side. There is a white cursor surrounding player 1’s neutral tile. You are prompted to choose a location on the board to place that tile. After clicking on the location, the tile is moved to that location. Then the turn go to placing player 2’s neutral tile on the board. From this point forward, the players are asked to choose the tile to placed and a cursor will surround the tile when clicked on. If at that point you wish to choose a different tile, just click on that same tile again and you are unlocked from that tile and able to choose a different. After choosing a tile, the player is asked to choose a space to place the tile on the game board. After clicking the location, a cursor surrounds that space on the board and leaves a cursor at the location where the tile was selected. At this point, the tile is not permanently locked to that space. If the player decides to choose a different tile, they click on the location where the tile was taken from the table and the tile will be unlocked and returned to that location. If a player wishes to rotate the tile, while the mouse pointer is on the tile place, clicking the right mouse button will rotate the tile clockwise. If the player decides o keep the tile at that space on the board, while the mouse pointer over that tile, left click and the tiles is permanently placed there and the turn passes to the other player.
This game is playable, but not complete. I’m a still working on the game, but wanted to get it out there anyway. The parts I'm still working on: At the beginning of a players turn, the computer check every rotation of every player’s tile still on the table to see if it will fit onto the board. If it determined it can’t be placed, then that tile will be highlighted in white and grey on the table and can not be selected for placement during this turn. It may become playable on a future turn. If it is determined that none of the tiles are playable during this turn, the game is considered over and the winner is declared.
There are imperfections in the visualizations of the tiles and I am usually a more perfectionist in my graphics, but in this case, I think it’s good enough. Making the tiles look perfect could have been possible, but a tremendous about of work would have had to be put into it and it wasn’t worth it. I feel It’s good enough for an amateur game. I will be uploading the completed version when ready. Hope you enjoy playing. Pressing ESC will alternate between window and full screen.
Donald
QUADS-CLASSIC-USGB.pdf (Size: 170.79 KB / Downloads: 58)
Code: (Select All)
_Title "Quads by Donald L. Foster Jr."
Screen _NewImage(1310, 735, 256)
_Limit 100
_PaletteColor 1, _RGB32(245, 222, 179) ' Light
_PaletteColor 2, _RGB32(170, 92, 55) ' Dark
_PaletteColor 3, _RGB32(127, 127, 127) ' Grey
_PaletteColor 4, _RGB32(215, 192, 149)
_PaletteColor 5, _RGB32(120, 42, 5)
Dim Pattern$(17, 4)
Dim TableX(2, 17), TableY(2, 17), TableTile(2, 17): ClearTableX(1) = 10: ClearTableX(2) = 992
Player = 1: Opponant = 2
For Z = 1 To 2: For Y = 0 To 17: TableTile(Z, Y) = 1: Next: Next
For Z = 1 To 6: For Y = 1 To 6: BoardPlayer(Z, Y) = 0: BoardTile$(Z, Y) = "": Next: Next
Neutral$(1) = "HHHH": Neutral$(2) = "VVVV"
Pattern$(1, 1) = "VSSS": Pattern$(1, 2) = "SVSS": Pattern$(1, 3) = "SSVS": Pattern$(1, 4) = "SSSV"
Pattern$(2, 1) = "HSSS": Pattern$(2, 2) = "SHSS": Pattern$(2, 3) = "SSHS": Pattern$(2, 4) = "SSSH"
Pattern$(3, 1) = "VSVS": Pattern$(3, 2) = "SVSV": Pattern$(3, 3) = "VSVS": Pattern$(3, 4) = "SVSV"
Pattern$(4, 1) = "HSHS": Pattern$(4, 2) = "SHSH": Pattern$(4, 3) = "HSHS": Pattern$(4, 4) = "SHSH"
Pattern$(5, 1) = "VSHS": Pattern$(5, 2) = "SVSH": Pattern$(5, 3) = "HSVS": Pattern$(5, 4) = "SHSV"
Pattern$(6, 1) = "VHSS": Pattern$(6, 2) = "SVHS": Pattern$(6, 3) = "SSVH": Pattern$(6, 4) = "HSSV"
Pattern$(7, 1) = "HVSS": Pattern$(7, 2) = "SHVS": Pattern$(7, 3) = "SSHV": Pattern$(7, 4) = "VSSH"
Pattern$(8, 1) = "VVSS": Pattern$(8, 2) = "SVVS": Pattern$(8, 3) = "SSVV": Pattern$(8, 4) = "VSSV"
Pattern$(9, 1) = "HHSS": Pattern$(9, 2) = "SHHS": Pattern$(9, 3) = "SSHH": Pattern$(9, 4) = "HSSH"
Pattern$(10, 1) = "SHVH": Pattern$(10, 2) = "HSHV": Pattern$(10, 3) = "VHSH": Pattern$(10, 4) = "HVHS"
Pattern$(11, 1) = "SVHV": Pattern$(11, 2) = "VSVH": Pattern$(11, 3) = "HVSV": Pattern$(11, 4) = "VHVS"
Pattern$(12, 1) = "SHHH": Pattern$(12, 2) = "HSHH": Pattern$(12, 3) = "HHSH": Pattern$(12, 4) = "HHHS"
Pattern$(13, 1) = "SVVV": Pattern$(13, 2) = "VSVV": Pattern$(13, 3) = "VVSV": Pattern$(13, 4) = "VVVS"
Pattern$(14, 1) = "SHHV": Pattern$(14, 2) = "VSHH": Pattern$(14, 3) = "HVSH": Pattern$(14, 4) = "HHVS"
Pattern$(15, 1) = "SVHH": Pattern$(15, 2) = "HSVH": Pattern$(15, 3) = "HHSV": Pattern$(15, 4) = "VHHS"
Pattern$(16, 1) = "SHVV": Pattern$(16, 2) = "VSHV": Pattern$(16, 3) = "VVSH": Pattern$(16, 4) = "HVVS"
Pattern$(17, 1) = "SVVH": Pattern$(17, 2) = "HSVV": Pattern$(17, 3) = "VHSV": Pattern$(17, 4) = "VVHS"
Rotation$(1) = "TA0"
Rotation$(4) = "TA90"
Rotation$(3) = "TA180"
Rotation$(2) = "TA270"
Vertical$ = "C2E2U46L4D46F2BU3P2,2D4BE13U36L4D40E4BL2BU2P2,2R2BD2BL22D3U39L4D36F4U5BL2P2,2R2D5BH11U29L4D24F4U5BL2P2,2R2D5BR40U28R4D24G4U5BR2P2,2L2D5BE11U17R4D14G4U5BR2P2,2L2D5BL62U18L4D14F4U5BL2P2,2R2D5BH11U7L4D3F4U3BL1P2,2R1D3BR84U7R4D3G4U3BR1P2,2"
Horizontal$ = "C2BE46L92F4R85E4L5BD2P2,2U2R5BG11L72F4R64E4L5BD2P2,2U2R5BG11L50F4R42E4L5BD2P2,2U2R5BG11L26F4R18E4L5BD2P2,2"
Solid$ = "C2E48L96F48BU5BU5P2,2"
Cursor$ = "TA0BU49L49D98R98U98L49U1L50D100R100U100L51"
Color1$(1) = "C1TA0H15D30E15BL5P1,1BR234E15D30H15BR5P1,1"
Color1$(2) = "C0TA0H15D30E15BL5P0,0BR234E15D30H15BR5P0,0"
Color2$(1) = "C0TA0H15D30E15BL5P0,0BR234E15D30H15BR5P0,0"
Color2$(2) = "C2TA0H15D30E15BL5P2,2BR234E15D30H15BR5P2,2"
rootpath$ = Environ$("SYSTEMROOT")
fontfile$ = rootpath$ + "\Fonts\cour.ttf"
style$ = "monospace"
f& = _LoadFont(fontfile$, 30, style$)
_Font f&
' Draw Board
Line (329, 41)-(981, 693), 1, BF
' Draw Stripes
X = 41
For Z = 1 To 60
Line (329, X)-(981, X + 4), 2, BF
X = X + 11
Next
Line (358, 70)-(953, 665), 3, BF
' Draw Board Spaces
X = 120
For Z = 1 To 6
V = 408
For Y = 1 To 6
Line (V - 48, X - 48)-(V + 48, X + 48), 4, BF
BoardX(Z, Y) = V: BoardY(Z, Y) = X
V = V + 99
Next
X = X + 99
Next
Line (612, 667)-(700, 694), 1, BF
_Font 16: Color 2, 1: _PrintString (620, 673), "Q U A D S"
_Font f&: Color 15, 0: _PrintString (540, 7), "Q U A D S"
fontfile$ = rootpath$ + "\Fonts\lucon.ttf"
f& = _LoadFont(fontfile$, 22, style$)
_Font f&: Color 15, 0: _PrintString (61, 18), "Player 1's Tiles"
_PrintString (1042, 18), "Player 2's Tiles"
' Draw Tiles on Table
X = 103: W = 0
For Z = 1 To 6
V1 = 58: V2 = 1040
For Y = 1 To 3
If W = 0 Then
X1 = V1: X2 = X: X3 = 1: X4 = W: Tile$ = Neutral$(1): GoSub DrawPiece
X1 = V2: X2 = X: X3 = 2: X4 = W: Tile$ = Neutral$(2): GoSub DrawPiece
Else
Tile$ = Pattern$(W, 1)
X1 = V1: X2 = X: X3 = 1: X4 = W: GoSub DrawPiece
X1 = V2: X2 = X: X3 = 2: X4 = W: GoSub DrawPiece
End If
TableX(1, W) = V1: TableY(1, W) = X: TableX(2, W) = V2: TableY(2, W) = X
W = W + 1: V1 = V1 + 106: V2 = V2 + 106
Next
X = X + 106
Next
Color 15, 0: _PrintString (340, 708), "Use Variation 1: Hide Opponant's Pieces? (Y or N)"
GetVariationInput1:
A$ = UCase$(InKey$): If A$ = "" GoTo GetVariationInput1
If Asc(A$) = 27 And FS = 0 Then _FullScreen _SquarePixels , _Smooth: FS = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: FS = 0
If A$ = "Y" Then Variation1 = 1 Else If A$ = "N" Then Variation1 = 0 Else GoTo GetVariationInput1
If Variation1 = 1 Then Color 2, 0: _PrintString (28, 700), "Hide Opponant's Tiles"
Color 15, 0: _PrintString (340, 708), " Use Variation 2: Must Match Borders? (Y or N) "
GetVariationInput2:
A$ = UCase$(InKey$): If A$ = "" GoTo GetVariationInput2
If Asc(A$) = 27 And FS = 0 Then _FullScreen _SquarePixels , _Smooth: FS = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: FS = 0
If A$ = "Y" Then Variation2 = 1 Else If A$ = "N" Then Variation2 = 0 Else GoTo GetVariationInput2
If Variation2 = 1 Then Color 2, 0: _PrintString (1005, 700), "Must Match Border Edge"
For Player = 1 To 2
'DRaw Player Indicator Arrows
PSet (50, 27), 0: Draw Color1$(Player) + "BR748" + Color2$(Player)
' Place Cursor Around Player 1' Neutral Tile
Line (TableX(Player, 0) - 53, TableY(Player, 0) - 53)-(TableX(Player, 0) + 53, TableY(Player, 0) + 53), 15, B
If Player = 1 Then
Color 15, 0: _PrintString (330, 708), " Player 1, Place Your Neutral Tile on the Board "
Else
Color 15, 0: _PrintString (330, 708), " Player 2, Place Your Neutral Tile on the Board "
End If
' Get Neutral Tile Location
GetNeutralBoardLocation:
Do While _MouseInput
For Z = 1 To 6
For Y = 1 To 6
If _MouseX > BoardX(Z, Y) - 50 And _MouseY > BoardY(Z, Y) - 50 And _MouseX < BoardX(Z, Y) + 50 And _MouseY < BoardY(Z, Y) + 50 Then Selected1 = 1 Else Selected1 = 0
If _MouseButton(1) = -1 And Selected1 = 1 Then
GoSub ButtonRelease1
If Player = 2 Then
If BoardPlayer(Z, Y) > 0 GoTo GetNeutralBoardLocation
If Z - 1 >= 1 Then If BoardPlayer(Z - 1, Y) > 0 GoTo GetNeutralBoardLocation
If Z + 1 <= 6 Then If BoardPlayer(Z + 1, Y) > 0 GoTo GetNeutralBoardLocation
If Y - 1 >= 1 Then If BoardPlayer(Z, Y - 1) > 0 GoTo GetNeutralBoardLocation
If Y + 1 <= 6 Then If BoardPlayer(Z, Y + 1) > 0 GoTo GetNeutralBoardLocation
End If
If Variation2 = 1 Then
If Player = 1 And (Y = 1 Or Y = 6) GoTo GetNeutralBoardLocation
If Player = 2 And (Z = 1 Or Z = 6) GoTo GetNeutralBoardLocation
End If
Line (TableX(Player, 0) - 53, TableY(Player, 0) - 53)-(TableX(Player, 0) + 53, TableY(Player, 0) + 53), 0, BF
X1 = BoardX(Z, Y): X2 = BoardY(Z, Y): X3 = Player: Tile$ = Neutral$(Player): GoSub DrawPiece
TableTile(Player, 0) = 0: BoardPlayer(Z, Y) = 3: BoardTile$(Z, Y) = Neutral$(Player): GoTo EndLoop1
End If
Next
Next
Loop
A$ = InKey$: If A$ <> "" Then If Asc(A$) = 27 And Full = 0 Then _FullScreen _SquarePixels , _Smooth: Full = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: Full = 0
GoTo GetNeutralBoardLocation
EndLoop1:
Next
Player = 1
StartGame:
'DRaw Player Indicator Arrows
PSet (50, 27), 0: Draw Color1$(Player) + "BR748" + Color2$(Player)
If Variation1 = 1 Then
' Clear Opponant's Pieces from View
Line (ClearTableX(Opponant), 55)-(ClearTableX(Opponant) + 309, 682), 0, BF
' Redraw Player's Pieces
For Z = 1 To 17
If TableTile(Player, Z) = 1 Then X1 = TableX(Player, Z): X2 = TableY(Player, Z): X3 = Player: Tile$ = Pattern$(Z, 1): GoSub DrawPiece
Next
End If
Table:
If Player = 1 Then
Color 15, 0: _PrintString (336, 708), " Player 1, Choose a Tile to Place on the Board "
Else
Color 15, 0: _PrintString (336, 708), " Player 2, Choose a Tile to Place On The Board "
End If
ChooseTile:
Do While _MouseInput
For Z = 1 To 17
If _MouseX > TableX(Player, Z) - 48 And _MouseX < TableX(Player, Z) + 48 And _MouseY > TableY(Player, Z) - 48 And _MouseY < TableY(Player, Z) + 48 Then TileChoice = 1 Else TileChoice = 0
If _MouseButton(1) = -1 And TileChoice = 1 Then
GoSub ButtonRelease1: Tile = Z
If TableTile(Player, Z) = 1 Then
Tile$ = Pattern$(Z, 1)
' Draw Cursor Around Piece
Line (TableX(Player, Z) - 53, TableY(Player, Z) - 53)-(TableX(Player, Z) + 53, TableY(Player, Z) + 53), 15, B: GoTo EndLoop2
End If
End If
Next
Loop
A$ = InKey$: If A$ <> "" Then If Asc(A$) = 27 And Full = 0 Then _FullScreen _SquarePixels , _Smooth: Full = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: Full = 0
GoTo ChooseTile
EndLoop2:
If Player = 1 Then
Color 15, 0: _PrintString (339, 708), " Player 1, Choose a Board Location to Place Tile "
Else
Color 15, 0: _PrintString (339, 708), " Player 2, Choose a Board Location to Place Tile "
End If
ChooseLocation:
Do While _MouseInput
' Check Unlock Tile
For Z = 1 To 17
If _MouseX > TableX(Player, Z) - 48 And _MouseX < TableX(Player, Z) + 48 And _MouseY > TableY(Player, Z) - 48 And _MouseY < TableY(Player, Z) + 48 Then TileSelect = 1 Else TileSelect = 0
If _MouseButton(1) = -1 And TileSelect = 1 Then
GoSub ButtonRelease1: Line (TableX(Player, Z) - 53, TableY(Player, Z) - 53)-(TableX(Player, Z) + 53, TableY(Player, Z) + 53), 0, B: GoTo Table
End If
Next
' Check Board Locations
For Z = 1 To 6
For Y = 1 To 6
If _MouseX > BoardX(Z, Y) - 50 And _MouseX < BoardX(Z, Y) + 50 And _MouseY > BoardY(Z, Y) - 50 And _MouseY < BoardY(Z, Y) + 50 Then LocationChoice = 1 Else LocationChoice = 0
If _MouseButton(1) = -1 And LocationChoice = 1 Then
GoSub ButtonRelease1: Row = Z: Column = Y
'Is Board Location Empty?
If BoardPlayer(Z, Y) > 0 GoTo ChooseLocation
' Is Adjacent to a Tile?
If Z - 1 >= 1 Then
If BoardPlayer(Z - 1, Y) = 0 Then W1 = 0 Else W1 = 1
Else
W1 = 2
End If
If Z + 1 <= 6 Then
If BoardPlayer(Z + 1, Y) = 0 Then W3 = 0 Else W3 = 1
Else
W3 = 2
End If
If Y - 1 >= 1 Then
If BoardPlayer(Z, Y - 1) = 0 Then W4 = 0 Else W4 = 1
Else
W4 = 2
End If
If Y + 1 <= 6 Then
If BoardPlayer(Z, Y + 1) = 0 Then W2 = 0 Else W2 = 1
Else
W2 = 2
End If
If W1 = 0 And W2 = 0 And W3 = 0 And W4 = 0 GoTo ChooseLocation
' Remove Tile from Table
Line (TableX(Player, Tile) - 48, TableY(Player, Tile) - 48)-(TableX(Player, Tile) + 50, TableY(Player, Tile) + 48), 0, BF
' Draw Tile on to Board
X1 = BoardX(Z, Y): X2 = BoardY(Z, Y): X3 = Player: GoSub DrawPiece
' Draw Cursor Around Tile on the Board
PSet (BoardX(Z, Y), BoardY(Z, Y)), Point(BoardX(Z, Y), BoardY(Z, Y)): Draw "C15" + Cursor$: GoTo EndLoop3
End If
Next
Next
Loop
A$ = InKey$: If A$ <> "" Then If Asc(A$) = 27 And Full = 0 Then _FullScreen _SquarePixels , _Smooth: Full = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: Full = 0
GoTo ChooseLocation:
EndLoop3:
If Player = 1 Then
Color 15, 0: _PrintString (339, 708), " Player 1, Lock Tile, Rotate Tile or Return Tile "
Else
Color 15, 0: _PrintString (339, 708), " Player 2, Lock Tile, Rotate Tile or Return Tile "
End If
Rotation = 1
GetMouseClick:
Do While _MouseInput
' Check for Return to Table
For Z = 1 To 17
If _MouseX > TableX(Player, Z) - 48 And _MouseX < TableX(Player, Z) + 48 And _MouseY > TableY(Player, Z) - 48 And _MouseY < TableY(Player, Z) + 48 Then MouseChoice = 1 Else MouseChoice = 0
If _MouseButton(1) = -1 And MouseChoice = 1 Then
GoSub ButtonRelease1:
If Z = Tile Then
' Remove Cursor from Tile on the Board
PSet (BoardX(Row, Column), BoardY(Row, Column)), 5: Draw "C3" + Cursor$
' Remove Tile from the Board
Line (BoardX(Row, Column) - 48, BoardY(Row, Column) - 48)-(BoardX(Row, Column) + 48, BoardY(Row, Column) + 48), 4, BF
' Set Tile Back to First Rotation
Tile$ = Pattern$(Tile, 1)
' Redraw the Tile on the Table
X1 = TableX(Player, Tile): X2 = TableY(Player, Tile): X3 = Player: X4 = 1: GoSub DrawPiece
' Remove Cursor from the Table
Line (TableX(Player, Z) - 53, TableY(Player, Z) - 53)-(TableX(Player, Z) + 53, TableY(Player, Z) + 53), 0, B
GoTo Table
End If
End If
Next
For Z = 1 To 6
For Y = 1 To 6
If _MouseX > BoardX(Z, Y) - 50 And _MouseX < BoardX(Z, Y) + 50 And _MouseY > BoardY(Z, Y) - 50 And _MouseY < BoardY(Z, Y) + 50 Then LocationChoice = 1 Else LocationChoice = 0
If _MouseButton(2) = -1 And LocationChoice = 1 Then
GoSub ButtonRelease2: If Rotation = 4 Then Rotation = 1 Else Rotation = Rotation + 1
Tile$ = Pattern$(Tile, Rotation): X1 = BoardX(Row, Column): X2 = BoardY(Row, Column): X3 = Player: X4 = Rotation: GoSub DrawPiece: GoTo GetMouseClick
End If
If _MouseButton(1) = -1 And LocationChoice = 1 Then
GoSub ButtonRelease1: Tile$ = Pattern$(Tile, Rotation): X = 1
' Get Tile 4 Sides
TopSide$ = Mid$(Tile$, 1, 1): RightSide$ = Mid$(Tile$, 2, 1): BottomSide$ = Mid$(Tile$, 3, 1): LeftSide$ = Mid$(Tile$, 4, 1)
' Does Tile Edges Match?
If W1 = 1 Then
Edge$ = Mid$(BoardTile$(Row - 1, Column), 3, 1)
If Edge$ = "S" And Edge$ = TopSide$ And BoardPlayer(Row - 1, Column) = Opponant Then X = 0
If Edge$ <> TopSide$ Then X = 0
End If
If W2 = 1 Then
Edge$ = Mid$(BoardTile$(Row, Column + 1), 4, 1)
If Edge$ = "S" And Edge$ = RightSide$ And BoardPlayer(Row, Column + 1) = Opponant Then X = 0
If Edge$ <> RightSide$ Then X = 0
End If
If W3 = 1 Then
Edge$ = Mid$(BoardTile$(Row + 1, Column), 1, 1)
If Edge$ = "S" And Edge$ = BottomSide$ And BoardPlayer(Row + 1, Column) = Opponant Then X = 0
If Edge$ <> BottomSide$ Then X = 0
End If
If W4 = 1 Then
Edge$ = Mid$(BoardTile$(Row, Column - 1), 2, 1)
If Edge$ = "S" And Edge$ = LeftSide$ And BoardPlayer(Row, Column - 1) = Opponant Then X = 0
If Edge$ <> LeftSide$ Then X = 0
End If
If Variation2 = 1 Then
If W1 = 2 And TopSide$ <> "H" Then X = 0
If W2 = 2 And RightSide$ <> "V" Then X = 0
If W3 = 2 And BottomSide$ <> "H" Then X = 0
If W4 = 2 And LeftSide$ <> "V" Then X = 0
End If
If X = 0 GoTo GetMouseClick
' Remove Tile Information from the Table o Board
TableTile(Player, Tile) = 0: BoardPlayer(Row, Column) = Player: BoardTile$(Row, Column) = Tile$
' Remove Cursor from Tile on the Board
PSet (BoardX(Row, Column), BoardY(Row, Column)), 5: Draw "C3" + Cursor$
' Remove Cursor from the Table
Line (TableX(Player, Tile) - 53, TableY(Player, Tile) - 53)-(TableX(Player, Tile) + 53, TableY(Player, Tile) + 53), 0, B
GoTo EndLoop4
End If
Next
Next
Loop
A$ = InKey$: If A$ <> "" Then If Asc(A$) = 27 And Full = 0 Then _FullScreen _SquarePixels , _Smooth: Full = 1 Else If Asc(A$) = 27 Then _FullScreen _Off: Full = 0
GoTo GetMouseClick
EndLoop4:
Swap Player, Opponant: GoTo StartGame
Sleep
DrawPiece:
Line (X1 - 48, X2 - 48)-(X1 + 48, X2 + 48), 1, BF
'PSET (X1, X2), 0: DRAW "NH48NE48NF48NG48"
For Side = 1 To 4
If X4 = 0 Then
Side$ = Mid$(Neutral$(X3), Side, 1)
Else
Side$ = Mid$(Tile$, Side, 1)
End If
If Side$ = "S" And X3 = 1 Then
Else
If Side$ = "S" Then TileSide$ = Solid$
If Side$ = "V" Then TileSide$ = Vertical$
If Side$ = "H" Then TileSide$ = Horizontal$
PSet (X1, X2), 1: Draw Rotation$(Side) + TileSide$
End If
Next
Return
ButtonRelease1:
Do While _MouseInput
If _MouseButton(1) = 0 Then Return
Loop
GoTo ButtonRelease1
ButtonRelease2:
Do While _MouseInput
If _MouseButton(2) = 0 Then Return
Loop
GoTo ButtonRelease2