打字游戏,你的帮助好真诚。
构建新项目
在Form1上放一个PictureBox显示人物登陆区,只是为了美观。
将控制数组Label1(0-5)放入图片框中。picturebox和label1 (0-5)的背景颜色设置为相同。
下面放三个按钮。
Command1?“走”
命令2“暂停”
命令3“继续”
放一个滑块来控制速度。
然后添加一些标签。
Label2 "字符数:"后跟Label4,后跟Label3 " "
标签5“正确率:”后面是标签6,表示正确率的百分比。
Label7“时间:”
Label8用于显示时间。
标签9“秒”
Label10 "输入一个字符并按空格键启动"
Text1?用于输入字符。
Label11?用于显示一些信息。
Timer1用于处理字符掉落,间隔设置为50。
效果如图所示:
然后是代码:
私有声明函数timeGetTime Lib "winmm.dll "()为Long
私有声明函数WritePrivateProfileString Lib " kernel 32 " Alias " WritePrivateProfileString a "(ByVal lpApplicationName为String,ByVal lpKeyName为Any,ByVal lpString为Any,ByVal lpFilename为String)Long
私有声明函数GetPrivateProfileString Lib " kernel 32 "别名" GetPrivateProfileString a "(ByVal lpApplicationName为String,ByVal lpKeyName为Any,ByVal lpDefault为String,ByVal lpReturnedString为String,ByVal nSize为Long,ByVal lpFilename为String)长
私有类型赢
字符串形式的名称
秒一样长
结束类型
Dim ri一样长,ai一样长
将rst定义为布尔值
昏暗的时间一样长
Dim wTime() As Long
私有子命令1_Click()
rst =真
ai = 0
ri = 0
sTime = timeGetTime
对于i = 0到5
使不规则化
Label1(i)。Caption = Chr(Int(Rnd * 26 + 65))
Label1(i)。Top = CLng(Rnd * 200)
wTime(i) = Int(Rnd * 6)
然后
Text1。文本= " "
Text1。SetFocus
末端接头
私有子命令2_Click()
If命令2。Caption = "暂停"
命令2。Caption = "继续"
定时器1。启用=假
其他
命令2。Caption = "暂停"
定时器1。启用=真
如果…就会结束
末端接头
私有子命令3_Click()
rst =假
对于i = 0到5
Label1(i)。标题= " "
然后
末端接头
私有子窗体_Load()
rst =假
ri = 0
对于i = 0到5
Label1(i)。Top = 0
Label1(i)。标题= " "
然后
标签4。Caption = "0 "
标签6。Caption = "0% "
标签8。Caption = "0 "
Label11。标题= " "
ReDim wTime(5)
末端接头
private Sub text 1 _ KeyPress(KeyAscii为整数)
如果KeyAscii = 32且Text1。Text & lt& gt”“那么
ai = ai + 1
对于i = 0到5
如果UCase(Trim(Text1。Text)) = Label1(i)。标题然后
使不规则化
Label1(i)。Caption = Chr(Int(Rnd * 26 + 65))
Label1(i)。Top = CLng(Rnd * 200)
wTime(i) = Int(Rnd * 6)
KeyAscii = 0
Text1。文本= " "
ri = ri + 1
出口接头
如果…就会结束
然后
KeyAscii = 0
Text1。文本= " "
如果…就会结束
末端接头
私有子定时器1_Timer()
Dim xStr为字符串,ReadStr(9)为WIN
Dim rStr为字符串,pStr()为字符串
Dim使用时间为Long,ReadBl为Boolean
冬季昏暗温度
Dim TempStr作为字符串
如果rst =真,则
对于i = 0到5
Label1(i)。Top = Label1(i)。Top + (Slider1。value+1+wTime(I))* 15
如果Label1(i)。Top & gt图片1。那么高度
使不规则化
Label1(i)。Caption = Chr(Int(Rnd * 26 + 65))
Label1(i)。Top = CLng(Rnd * 200)
wTime(i) = Int(Rnd * 6)
ai = ai + 1
如果…就会结束
然后
如果ai & gt那么0
标签4。Caption = ai
标签6。caption = Int((ri/ai)* 100)amp;"%"
标签8。caption = CLng((time gettime-sTime)/1000)
如果…就会结束
如果ai & gt那就99
rst =假
Label11。Caption = "全部完成!"
use time = CLng((time gettime-sTime)/1000)
XStr = InputBox("字符数:" &;艾& amp“打”&;ri & amp"正确率:" &;int((ri/ai)* 100)& amp;" " & amp“,时间:“&;使用时间& amp“秒”&;vbCrLf & amp;"请输入你的名字:","游戏结束")
ReadBl = False
对于i = 0到9
rStr = INIRead("OPTION "," Win " & amp我,App。路径与路径。" \Config.ini ")
If InStr(rStr," | ")& gt;那么0
pStr = Split(rStr," | ")
ReadStr(i)。name = pStr(0)
ReadStr(i)。Sec = pStr(1)
如果xStr = ReadStr(i)。那就说出名字
ReadStr(i)。Sec =使用时间
ReadBl = True
如果…就会结束
其他
如果ReadBl = False,则
ReadStr(i)。name = xStr
ReadStr(i)。Sec =使用时间
如果…就会结束
为...退出
如果…就会结束
然后
对于i = 0到9
如果ReadStr(i)。Sec = 0,然后退出
对于j = i + 1到9
If ReadStr(j)。Sec = 0,然后退出
如果ReadStr(i)。Sec & gtReadStr(j)。那就等一下
Temp = ReadStr(i)
ReadStr(i) = ReadStr(j)
ReadStr(j) = Temp
如果…就会结束
然后
然后
TempStr = " "
对于i = 0到9
如果ReadStr(i)。Sec & gt那么0
INIWrite选项,赢。我,ReadStr(i)。姓名和名称。" | " & ampReadStr(i)。秒,应用程序。路径与路径。" \Config.ini "
如果TempStr = " "那么
TempStr = " the first " & amp;I+1 & amp;" & amp:" & amp;ReadStr(i)。姓名和名称。"?,时间:“&;ReadStr(i)。美国证券交易委员会。"秒"
其他
TempStr = TempStr & ampvbCrLf & amp;“第一”&;I+1 & amp;" & amp:" & amp;ReadStr(i)。姓名和名称。"?,时间:“&;ReadStr(i)。美国证券交易委员会。"秒"
如果…就会结束
如果…就会结束
然后
MsgBox TempStr,vbOKOnly,“性能排名”
如果…就会结束
如果ai-ri & gt;6然后
rst =假
Label11。Caption = "错误6次,结束。请重新开始!”
如果…就会结束
如果…就会结束
末端接头
私有函数INIRead(iAppName为String,iKeyName为String,iFileName为String)为String
Dim iStr美元,aaa美元
iStr = String(1000,Chr(0))
aaa = Left(iStr,GetPrivateProfileString(IAPP name,ByVal iKeyName,"",iStr,Len(iStr),iFileName))
INIRead = IIf(InStr(aaa,Chr(0))& gt;0,替换(aaa,Chr(0),""),aaa)
结束功能
私有函数INIWrite(iAppName为String,iKeyName为String,iKeyString为String,iFileName为String)
调用WritePrivateProfileString(IAPP name,iKeyName,iKeyString,iFileName)
结束功能