VB打字游戏
我们的VB考试题太难了,请大家帮帮忙啊(1)程序开始时,单击菜单“打字设置”,出现如下所示的“打字设置”窗口,在“练习者姓名”文本框中输入用户名,在练习时间文本框中输入时...
我们的VB考试题太难了,请大家帮帮忙啊
(1)程序开始时,单击菜单“打字设置”,出现如下所示的“打字设置”窗口,在“练习者姓名”文本框中输入用户名,在练习时间文本框中输入时间。若未输入姓名或时间久单击“返回”按钮,则提示用户输入相应内容。在“打字设置”窗口可以设置打字练习的速度和难度,速度和难度等级均分为3档。
(2)进行打字设置之后,单击“开始”按钮,根据难度的设置,屏幕上随机产生并落下各种字符。若用户在字符落到屏幕底部的某个位置之前敲击了相应的键盘键,则该字符被“击中”然后消失。程序根据速度和难度的设置自动进行计分,分数和剩余时间实时地显示在窗口的右下角。如图所示。计分标准如下所述:
①慢速+小写字母:打中一个1分;
②慢速+大写字母:打中一个2分;
③慢速+所有字符:打中一个3分;
④中速+小写字母:打中一个4分;
⑤中速+大写字母:打中一个5分;
⑥中速+所有字符:打中一个6分;
⑦快速+小写字母:打中一个7分;
⑧快速+大写字母:打中一个8分;
⑨快速+所有字符:打中一个9分;
“所有字符”包括大小写字母、数字和符号字符。
当下落字符中有相同的字符时,一次只能打掉一个。
(4)打字练习的时间一到,弹出如下所示消息框显示用户本次练习得分,并将用户的成绩保存在“Score.txt”文件中,供以后查询。
在打字过程中,可以按Esc键中止游戏。退出前显示提示信息为“真的要退出吗?”的消息框。使用Esc中止游戏的成绩并不保存。
(5)单击“成绩记录”菜单,调用记事本程序打开“Score.txt”文本文件,显示当前用户每次练习的时间与成绩。 展开
(1)程序开始时,单击菜单“打字设置”,出现如下所示的“打字设置”窗口,在“练习者姓名”文本框中输入用户名,在练习时间文本框中输入时间。若未输入姓名或时间久单击“返回”按钮,则提示用户输入相应内容。在“打字设置”窗口可以设置打字练习的速度和难度,速度和难度等级均分为3档。
(2)进行打字设置之后,单击“开始”按钮,根据难度的设置,屏幕上随机产生并落下各种字符。若用户在字符落到屏幕底部的某个位置之前敲击了相应的键盘键,则该字符被“击中”然后消失。程序根据速度和难度的设置自动进行计分,分数和剩余时间实时地显示在窗口的右下角。如图所示。计分标准如下所述:
①慢速+小写字母:打中一个1分;
②慢速+大写字母:打中一个2分;
③慢速+所有字符:打中一个3分;
④中速+小写字母:打中一个4分;
⑤中速+大写字母:打中一个5分;
⑥中速+所有字符:打中一个6分;
⑦快速+小写字母:打中一个7分;
⑧快速+大写字母:打中一个8分;
⑨快速+所有字符:打中一个9分;
“所有字符”包括大小写字母、数字和符号字符。
当下落字符中有相同的字符时,一次只能打掉一个。
(4)打字练习的时间一到,弹出如下所示消息框显示用户本次练习得分,并将用户的成绩保存在“Score.txt”文件中,供以后查询。
在打字过程中,可以按Esc键中止游戏。退出前显示提示信息为“真的要退出吗?”的消息框。使用Esc中止游戏的成绩并不保存。
(5)单击“成绩记录”菜单,调用记事本程序打开“Score.txt”文本文件,显示当前用户每次练习的时间与成绩。 展开
2个回答
展开全部
提供些框架,具体实现就靠你自己了哈
随机产生字符
字符下落
下落过程中如果按中就置零
整个过程主要用timer控件
form_load
.....
form1.AutoRedraw=True
form1.picture=loadpicture("")
form1的keyevent=true
.....
-----------------command1控件------------
接收在文本框中的名字
name=text1.text (全局变量)
接收在文本框中的秒数
timemax=val(text2.text) (全局变量)
大小写 单选控件
caps (全局变量)
速度 单选控件
speed (全局变量)
分=0 (全局变量)
开始时间=timer (全局变量)
timer1.enable=true
-----------------------------------------
---------timer1控件--------
现在时间=timer
if 现在时间-开始时间>timemax*1000 then
结束提示
call 保存记录
exit sub
end if
cls
字符随机产生
if rnd*10>8 then
x=rnd *10
if 字符位(x)=0 then
字符位(x)=500 (全局变量)
select case caps'根据大小写
case 1
产生小写字母
字符(X)=随机字符(keycode范围65-90 A-Z ) (全局变量)
case 2
产生大写字母
end select
字符下落
for xs=1 to 10
字符位(xs)=字符位(xs)-speed
if 字符位(xs) <=0 then
字符位(xs)=0
else
定位像素pset(xs*60,1000-字符位(xs)*2),form1.backcolor
设置字符大小
设置字符颜色
form1.FontSize=字符位(xs)/10+1
form1.ForeColor=rgb(255-字符位(xs)/2,235,245)
print 字符(xs);
next xs
doevents'重要
-------------------------
--------键盘输入---------
if keycode=27 then
msgbox询问
if 是 then
call 保存记录
exit sub
endif
endif
for xs=1 to 10
if 字符位(xs)>0 then
if 字符(xs)=keycode then
字符与键盘按下的一样
判断大小写 shift是否为1 怎么判断大小写状态....目前还没有简单办法 :(
然后 字符位(xs)=0
分=分+mode
beep
endif
endif
next
-------------------------------------
----------保存记录过程---------------
Private sub 保存记录
on error resume next
保存记录到文件:
st=app.path
If Right$(st, 1) <> "\" Then st = st + "\"
FileNames = st + "Score.txt"
FileNums = FreeFile
FLen = FileLen(FileNames)
Open FileNames For Binary As FileNums
Seek FileNums, flen
put filenums, , 名字
put filenums, , 逗号
put filenums, , 成绩
put filenums, , chr$(13)
put filenums, , chr$(10)
close filenums
end sub
大概思想就这样吧,看不明白就别怪我没讲清楚
有什么问题问老师吧:)
随机产生字符
字符下落
下落过程中如果按中就置零
整个过程主要用timer控件
form_load
.....
form1.AutoRedraw=True
form1.picture=loadpicture("")
form1的keyevent=true
.....
-----------------command1控件------------
接收在文本框中的名字
name=text1.text (全局变量)
接收在文本框中的秒数
timemax=val(text2.text) (全局变量)
大小写 单选控件
caps (全局变量)
速度 单选控件
speed (全局变量)
分=0 (全局变量)
开始时间=timer (全局变量)
timer1.enable=true
-----------------------------------------
---------timer1控件--------
现在时间=timer
if 现在时间-开始时间>timemax*1000 then
结束提示
call 保存记录
exit sub
end if
cls
字符随机产生
if rnd*10>8 then
x=rnd *10
if 字符位(x)=0 then
字符位(x)=500 (全局变量)
select case caps'根据大小写
case 1
产生小写字母
字符(X)=随机字符(keycode范围65-90 A-Z ) (全局变量)
case 2
产生大写字母
end select
字符下落
for xs=1 to 10
字符位(xs)=字符位(xs)-speed
if 字符位(xs) <=0 then
字符位(xs)=0
else
定位像素pset(xs*60,1000-字符位(xs)*2),form1.backcolor
设置字符大小
设置字符颜色
form1.FontSize=字符位(xs)/10+1
form1.ForeColor=rgb(255-字符位(xs)/2,235,245)
print 字符(xs);
next xs
doevents'重要
-------------------------
--------键盘输入---------
if keycode=27 then
msgbox询问
if 是 then
call 保存记录
exit sub
endif
endif
for xs=1 to 10
if 字符位(xs)>0 then
if 字符(xs)=keycode then
字符与键盘按下的一样
判断大小写 shift是否为1 怎么判断大小写状态....目前还没有简单办法 :(
然后 字符位(xs)=0
分=分+mode
beep
endif
endif
next
-------------------------------------
----------保存记录过程---------------
Private sub 保存记录
on error resume next
保存记录到文件:
st=app.path
If Right$(st, 1) <> "\" Then st = st + "\"
FileNames = st + "Score.txt"
FileNums = FreeFile
FLen = FileLen(FileNames)
Open FileNames For Binary As FileNums
Seek FileNums, flen
put filenums, , 名字
put filenums, , 逗号
put filenums, , 成绩
put filenums, , chr$(13)
put filenums, , chr$(10)
close filenums
end sub
大概思想就这样吧,看不明白就别怪我没讲清楚
有什么问题问老师吧:)
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询