For r = 1 To rows
Y = topOffset + (r * (size + space)) - size
For c = 1 To columns
i = i + 1
X = leftOffset + (c * (size + space)) - size
btn[r][c] = Controls.AddButton(btnCap[i], X, Y)
Controls.SetSize(btn[r][c], size, size)
EndFor
EndFor
i = 0 'init i
Sub ButtonClicked
Sound.PlayClickAndWait()
cap = Controls.GetButtonCaption(Controls.LastClickedButton)
If cap <> "+" And cap <> "Av" And cap <> "C" Then
If Controls.GetButtonCaption(btn[4][3]) = "C" Then 'if C is not clicked before proceeding
Controls.SetButtonCaption(btn[4][3], "Av")
EndIf
ElseIf cap = "+" And Array.GetItemCount(digit) = 1 Then
NumerateSingleDigit()
InitDigit()
accumTxt = ""
writeScreen = "+"
ElseIf cap = "+" And Array.GetItemCount(digit) > 1 Then
NumerateMultiDigit()
InitDigit()
accumTxt = ""
writeScreen = "+"
ElseIf cap = "Av" Then
Controls.SetButtonCaption(btn[4][3], "C")
If Array.GetItemCount(digit) = 1 Then
NumerateSingleDigit()
ElseIf Array.GetItemCount(digit) > 1 Then
NumerateMultiDigit()
EndIf
For i = 1 To Array.GetItemCount(num)
numer = numer + num[i]
EndFor
average = numer / Array.GetItemCount(num)
accumTxt = ""
writeScreen = average
'Debug() ' used in Desktop version
num = ""
numer = ""
j = ""
InitDigit()
ElseIf cap = "C" Then
Controls.SetButtonCaption(btn[4][3], "Av")
writeScreen = ""
EndIf
Controls.SetTextBoxText(screen, writeScreen)
EndSub
Sub NumerateMultiDigit
newDigit[1] = digit[1] ' this could be replaced newD = TxtApp(newD, digit[i]) ?
For i = 1 To Array.GetItemCount(digit)-1
newDigit[i+1] = Text.Append(newDigit[i], digit[i+1])
EndFor
j = j + 1
num[j] = newDigit[i]
EndSub