数组中小的基本变量?

时间:2018-12-04 07:07:26

标签: smallbasic

在我的hangman程序中,我试图使用数组来检测之前是否已按下过一个字母,因此无法再次按下它。

在尝试执行此操作时,我尝试使用:

If targetarray[LastLetter] = 1 Then

“ LastLetter”是我的变量。

在我的代码的另一部分中,我也将数组存储为:

 Sub LetterArrays
  If GraphicsWindow.LastKey = "a" Then
    targetarray["a"] = 1
  ElseIf GraphicsWindow.LastKey = "b" Then
    targetarray["b"] = 1

依此类推...

用于检查字母是否为1的初始代码的子项位于按下字母(GraphicsWindow.KeyDown)且在if子句之前被调用的子项内,我使用:targetarray[LastLetter] = 1作为我的子项将数组中的字母设置为1的方法。

如果这对您有意义并且您有解决方案,请非常感谢。

2 个答案:

答案 0 :(得分:0)

不能100%确定您要问的是什么,但是如果您只是想检测按键,那么此代码应该可以解决问题:

GraphicsWindow.KeyDown = KeyDown
GraphicsWindow.KeyUp = KeyUp

While 1 = 1
  Program.Delay(10)

  If Key["a"] Then
    TextWindow.WriteLine("Key 'a' was pressed")
  EndIf
EndWhile


Sub Keydown
  LastKeyDown = GraphicsWindow.LastKey
  Key[LastKeyDown] = "True"
EndSub

Sub KeyUp
  LastKeyUp = GraphicsWindow.LastKey
  Key[LastKeyUp] = "False"
EndSub

答案 1 :(得分:0)

据我所知,您不希望按两次相同的键。您可以这样做:

GraphicsWindow.KeyDown = KeyDown
i = 0

Sub KeyDown
    If Array.ContainsValue(keysPressed, GraphicsWindow.LastKey) Then
        ' key already pressed before
    Else
        ' key not pressed before
        i = i + i
        keysPressed[i] = GraphicsWindow.LastKey
        ' add code here