Not easy fix, I convert to pixels and JS is still NOT Being QB64!
Again works fine in QB64 but not so in QBJS (the GetMove() Function).
This is too frustrating to continue, I dont know what JS expects.
Code: (Select All)
' test qbjs get move for chess ' b+ 2026-02-12
Screen _NewImage(640, 400, 12)
Do Until _KeyDown(27)
PrintBoard
gm$ = ""
gm$ = GetMove$
If gm$ <> "" Then
Color 7, 0
Locate 22, 50
Print gm$; " zzz... sleeping."
Sleep
Cls
_KeyClear
End If
Loop
Function GetMove$
Dim As String boardX, boardY, retorn, k, b
Dim As Long mx, my, mb, bx, by
Do
While _MouseInput: Wend
mx = (_MouseX + 4) / 8: my = (_MouseY + 8) / 16 ' convert into char cells
mb = _MouseButton(1)
If mb Then
Locate 14, 50: Print Space$(15)
Locate 14, 50: Print mx, my
boardX = "": boardY = ""
' check mx
If (mx Mod 4) <> 0 Then
If mx > 4 And mx < 39 Then
bx = Int((mx - 0) / 4)
boardX = Chr$(64 + bx)
End If
End If
If my Mod 2 = 0 Then
If my > 3 And my < 19 Then
by = Int((my - 2) / 2)
boardY = _Trim$(Str$(9 - by))
End If
End If
Locate 15, 50: Print Space$(15)
Locate 15, 50: Print boardX, boardY
End If
If (boardX <> "") And (boardY <> "") Then
retorn = boardX + boardY
Else
k = InKey$
If Len(k) = 1 And UCase$(k) = "Q" Then
retorn = k
Else
b = b + k
If Len(b) = 2 Then retorn = b
End If
End If
_Limit 120
Loop Until retorn <> ""
GetMove$ = retorn
End Function
Sub PrintBoard ' rework in QB64 to model the board for get move
Locate 4, 40: Print "Turn: " '; Chess.Turn; " "
Locate 6, 40: Print "Level: " '; levels(aiLevel)
'Locate 12, 40: Print "Enter 'Q' to Quit"
'If Chess.IsCheckMate Then
' Locate 8, 40: Color 4: Print "Check Mate"
'ElseIf Chess.IsCheck Then
' Locate 8, 40: Color 6: Print "Check"
'End If
'PrintHistory
Locate 1, 1
'Dim As String bstate, p, s
'bstate = Chess.BoardPieces
'Dim p$, s$
Dim As Integer rank, file
Color 7: Print
Print " A B C D E F G H"
Print " ";
Color 8, 7: Print "|-------------------------------|"
For file = 8 To 1 Step -1
Color 7, 0
Color 7, 0: Print " " + _Trim$(Str$(file)) + " ";
For rank = Asc("A") To Asc("H")
' s$ = Chr$(rank) + _Trim$(Str$(file))
' p$ = "" ' bstate(s)
' If p$ = "" Then p$ = " "
' Color 8, 7: Print " ";
' If p$ > "A" And p$ < "Z" Then Color 15 Else Color 0
' Print p$;
' Print " "
Color 8, 7: Print "|---";
'Color 7, 0
Next rank
Print "|"
If file > 1 Then
Color 7, 0: Print " ";
Color 8, 7: Print "|-------------------------------|"
End If
Next file
Color 7, 0: Print " ";
Color 8, 7: Print "|-------------------------------|"
End SUBAgain works fine in QB64 but not so in QBJS (the GetMove() Function).
This is too frustrating to continue, I dont know what JS expects.
724 855 599 923 575 468 400 206 147 564 878 823 652 556 bxor cross forever

