Private instrow As Int = 0
Private is_study As Boolean = False
Private studypce As String
When the study button is clicked the first thing we do is show the empty studyboard.Private Sub show_studyboard
pnlmain.RemoveAllViews
For r = 0 To 7
For c = 0 To 7
Private pnl As Panel = set_panel(r,c)
pnl.GetView(0).As(Label).Text = "EEE"
pnlmain.AddView(pnl,30dip+(c*40dip),30dip+(r*40dip),40dip,40dip)
board(r,c) = pnl.GetView(0).As(Label).Text
put_bitmap_in_cell(r,c,pnl,board(r,c))
grid(r,c) = cletters.SubString2(c,c+1) & rnumbers.SubString2(r,r+1)
Next
Next
set_sides(cnvs,tpfont)
End Sub
Private Sub show_pieces_with_instructions
pnltaken.RemoveAllViews
Private lbl As Label
lbl.Initialize("")
lbl.Text = "Select a piece and tap on a board cell"
lbl.Typeface = Typeface.DEFAULT_BOLD
lbl.TextSize = 18
lbl.Visible = True
pnltaken.AddView(lbl,5dip,5dip+(instrow*40dip),300dip,40dip)
' black
For i = 0 To 4
Dim piece As String = bpcs1.Get(i)
Dim leftpos As Int = 10dip+(i*50dip)
set_piece_panel_with_image(piece, leftpos,40dip)
Next
Dim piece As String = bpcs2.Get(0)
Dim leftpos As Int = 260dip
set_piece_panel_with_image(piece, leftpos,40dip)
' white
For i = 0 To 4
Dim piece As String = wpcs1.Get(i)
Dim leftpos As Int = 10dip+(i*50dip)
set_piece_panel_with_image(piece, leftpos,90dip)
Next
Dim piece As String = wpcs2.Get(0)
Dim leftpos As Int = 260dip
set_piece_panel_with_image(piece, leftpos,90dip)
Private lbl As Label
lbl.Initialize("")
lbl.Text = "Tap the study button to start playing."
lbl.Typeface = Typeface.DEFAULT_BOLD
lbl.TextSize = 18
lbl.Visible = True
pnltaken.AddView(lbl,5dip,140dip,300dip,40dip)
End Sub
This is how it looks:Private Sub set_piece_panel_with_image(pce As String, lpos As Int,tpos As Int)
Private pnl As Panel
pnl.Initialize("pieces")
pnl.Tag = pce
Private lbl As Label
lbl.Initialize("")
lbl.Text = pce
lbl.Visible = False
pnl.AddView(lbl,0,0,40dip,40dip)
pnltaken.AddView(pnl,lpos,tpos,40dip,40dip)
Dim rect As Rect
rect.Initialize(0dip,0dip,40dip,40dip)
cnvscell.Initialize(pnl)
cnvscell.DrawRect(rect, Colors.Black, False, 1dip)
Dim bmp As Bitmap
bmp.Initialize(File.DirAssets, imagemap.Get(pce))
cnvscell.DrawBitmap(bmp, Null, rect)
End Sub
Private Sub btnstudy_Click
If is_study = True Then
is_study = False
show_board_log
fill_clvinfo
btrow = 0
btcol = 0
wtrow = 2
wtcol = 0
turncolor = "white"
notescnt = 1
Return
End If
is_study = True
show_studyboard
show_board_log
fill_clvinfo
instrow = 0
show_pieces_with_instructions
End Sub
When the player taps on a piece in the instructions panel then that piece gets a blue border to indicate that its ready to be placed on the board. The variable studypce holds the piece information.Private Sub pieces_Click
Dim pnl As Panel = Sender
Dim pce As String = pnl.tag
Log("pieces click: " & pce)
cnvscell.Initialize(pnl)
show_cell_border(Colors.Blue,10dip,cnvscell)
studypce = pce
End Sub
The second tap on the board is captured in the pnl_Click subroutine. If is_study = True Then
Dim row As Int = rowcol.SubString2(0,1)
Dim col As Int = rowcol.SubString(1)
board(row,col) = studypce
refresh_board
show_pieces_with_instructions
Return
End If
Now you are ready to make chess puzzles and try them out. Or you could find puzzles online and put them in the app for later studying.