用vfp编程打字小游戏的问题 请高手帮帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/17 14:08:37
我学的vfp的时间并不长,最近要编一个打字小游戏的程序,对于打字计时问题,已经有所了解,但是对于怎样运用ascii码与原文对照,没有搞清楚,请问我应该怎样做呢?知道的请给我解答一下好么 万分的感谢啊!
就是怎样能输入进去字母后显示出来,并能显示出正确的,和错误的颜色。

楼上两位答的非常好啊,真是谢谢两位了,但是我有点不明白nkeycode=13中的nkeycode是什么意思,以及当我用asc码输入keypress事件时,我是这样些的.
publi to aa
aa=''
*thisform.label2.caption=aa
if aa=alltrim(chr(97))
thisform.text2.value=alltrim(thisform.text2.value)+'a'
else
thisform.text2.value=alltrim(thisform.text2.value)+'B'
endi
thisform.refresh
但是我为什么恩什么键子都是都是B呢?
真的十分感谢大家,没有那么多分了,再把15分给加上了,呵呵.

首先建立一个打字内容的数据表
内有字段:编号,测试内容
编号用于随机抽取
测试内容为你要打字的内容
表单上建一个caption
form init事件
thisform.label1.caption=测试内容
form keypress事件用于控制打字
用一个公共变量或者新建表单属性来标识现在打label1上的那个字
按一个键这个公共变量累加1(打英文和打中文的区别)
假设这个公共变量为n
if asc(substr(thisform.label1.caption,n,1))=nkeycode
那么您打对字了
else
您打错了
endif
记得要排除非enter键以及一些不需要的键
不让这些键也促发这写代码
还有按backspace键,要退回一个重新打字
?inkey(0)
用以上方法可以查询任意键asc码值
以上是英文的

中文涉及到汉字编码问题,怎么识别汉字不是非常清楚,用asc()

汉字可以用字符比较试试

ASC(LEFT("我",1))=206
ASC("我")=52946
规律没有去了解过

希望能找到点灵感

颜色问题
我觉得可以用label来实现
打对一个createobject()
设置这个label的前景色
还有位置

首先建立一个表单,其中至少要有一个textbox作为字母输入框,两个个listbox,其中一个显示正确的原始文本,一个作为打字的字母输出框,把列表框拉大点,选择textbox的valuechange方法中输入事件记数和比较texbox中当前输入的字符与原始文本中当前计数的字母比较,正确的就在正确的计数器在加1,错误的就在错误计数器中+1......