主题:6年前用FOXPRO写的英文五笔打字软件和众多屏保,谁想看?
顶天
[专家分:0] 发布于 2005-10-19 02:01:00
在6年前上大学时,老师教FOXPRO做数据库,我竟然疯狂地迷上了用FOXPRO来编英文打字软件、五笔打字软件和众多屏保,当时每天编到深夜,早上还要早起扫雪出操,每天仅睡两三个小时,真不知当时为什么有那么大的劲。(我不是计算机专业)
事后就没编了,原因是觉得用FOXPRO编数据库是专长,是正统,用它编别的软件无疑于用筷子勺水喝,虽也能完成,但效率极其低下,再者当时也觉得中国的盗版市场是否会让程序员成为活雷锋,但也可能吃不饱饭,就作罢了!
近日,觉得拿出来让大家分析分析可能也比较有意思,可能大家谁都没有想到用FOXPRO也能编出非数据库的软件吧!我那个英文打字软件是当时看到了小霸王学习机的英语打字游戏,就是天空掉字母,然后下面按个键,就发射子弹击爆它,左边是显示正确率、错误率及打字速度!
另外还有些图形屏保,三维图等,也是用FOXPRO编的,挺有意思,可以让大家图个新奇!
大家想看的话,回复一下,我就发上截图及源码,大家看一看!
回复列表 (共54个回复)
11 楼
顶天 [专家分:0] 发布于 2005-10-21 20:15:00
五笔打字练习
------------------------
set talk off
clear
set color to g+/n,+gr/BR
@ 02,02 to 24,100
tg="弹指神功第二招:"
h1=8
j1=15
n1=1
do while n1<=16
tg1=substr(tg,n1,2)
@ h1,j1 get tg1
j1=j1+5
n1=n1+2
n2=1
do while n2<40000
n2=n2+1
enddo
enddo
set color to gr+/n,+gb/R
xy="五笔神功"
h1=12
j1=38
n2=1
do while n2<=8
xy1=substr(xy,n2,2)
@ h1,j1 get xy1
j1=j1+9
n2=n2+2
n3=1
do while n3<40000
n3=n3+1
enddo
enddo
nn=1
do while nn<200000
nn=nn+1
enddo
clear
**********************动画
set color to +rG
@1,49 say "弹 指 神 功 2.0 版"
@24,88 say "踏雪无痕工作室"
set color to +R
@ 02,20 to 26,20
set colo to +g
set color to +g
@ 02,00 to 26,104
@ 13,30
acce "请输入你的姓名:" to xm
acce "请选择速度(1-10)" to n rang(1,10)
n=iif(n="",10,val(n))
set color to +g
@ 13,00 clear 17,80
@ 02,00 to 26,104
set color to +R
@ 02,20 to 26,20
set color to gr+/n,gr+/BR
@ 13,02 say "姓 名:"
@ 13,11 get xm
@ 14,02 say "正确数:"
@ 15,02 say "错误数:"
@ 16,02 say "正确率:"
@ 17,02 say "速 度:"
************************固定设置
ZS=0
CS=0
ZL=0
dimen p(11)
p(1)="目前,在国内的各大中型城市,都可以见到网吧的身影。不同城市的网吧由于当地中国电信"
p(2)="的接入服务的费用(3元-8元/小时)以及接入手段(拔号连接,ISDN)不同,因而"
p(3)="收费差距非常悬殊(人最低的10元单机包夜到30元/小时)。总的来说,价格是影响网"
p(4)="吧用户流量最主要的因素,当网吧的价格与当地ISP的拔号费用持平或者略低的时候,网"
p(5)="吧的活力就展现出来。现在,相当一部分上网的适龄人群没有电脑,也可以上网,更令人感"
p(6)="到的是上互联网冲浪的花费竟会和玩电子游戏一样! 从今年3月份开始,保定陆续开张了"
p(7)="一些网吧。黑皮看好了网吧这个新兴的产业,几个朋友兄弟一张罗,也在7月份开了时空网"
p(8)="吧。这家网吧在一个居民小区的中心地带,虽然离大学、中学不是很近,但开业的初期,仍"
p(9)="有很多网友暮名而来捧场。短期的繁荣景象过去之后,开始感受到市场残酷的压力了。随着"
p(10)="新网吧的开张,时空网吧的价格也从开业初期的4元-5元/小时,降低到了3元/小时,"
p(11)="并且还有被迫降价的趋势--有的网吧已经开始了四人搭伴上网每人每小时1。5元的优惠"
set colo to gr
@ 03,21 say p(1)
@ 05,21 say p(2)
@ 07,21 say p(3)
@ 09,21 say p(4)
@ 11,21 say p(5)
@ 13,21 say p(6)
@ 15,21 say p(7)
@ 17,21 say p(8)
@ 19,21 say p(9)
@ 21,21 say p(10)
@ 23,21 say p(11)
h=3
L=21
T1=time()
***************************
ex=1
do while ex<2
do while h<=23
do while L<100 &&llllll
dimen Q(80)
h1=int((h-1)/2)
Q(L-20)=substr(p(h1),L-20,2)
@ 00,00
wait " " to A
@0,0 clear to 0,99
do case
case asc(A)=asc(Q(L-20))
@h+1,L get Q(L-20)
ZS=ZS+1
case inkey()=27
h=30
ex=2
exit
otherwise
??chr(7)
@h+1,L say A
CS=CS+1
endcase
****************设置<-键
if lastkey()=127
@h+1,l-2 &&&&&&?1
L=L-2
if asc(A)=asc(Q(L-18))
ZS=zs-1
else
cs=cs-1
loop
endif
endif
************<--设置结束-
L=L+2
*----------开始速度
T2=time()
TA1=val(left(T1,2))
TA2=val(left(T2,2))
TB1=val(subs(T1,4,2))
TB2=val(subs(T2,4,2))
TC1=val(right(T1,2))
TC2=val(right(T2,2))
****TT
TT=(TA2-TA1)*60+(TB2-TB1)+(TC2-TC1)/60
ZL=str(ZS/(ZS+CS)*100,6,2)+"%"
SD1=str(ZS/TT,3)
SD1=SD1+"/分钟"
ZS1=str(ZS,7)
CS1=str(CS,7)
@ 14,11 get ZS1
@ 15,11 get CS1
@ 16,11 get ZL
@ 17,11 get SD1
enddo
L=21
h=h+2
enddo
enddo
*************************THE END
clear
do case
case val(SD1)>=60
?"优秀! 望你百尺杆头,更上一层楼!"
case val(SD1)>=40
?"良好! 望你再接再励,精益求精"
case val(SD1)>=20
?"及格! 望你下步加紧练习,有所进步!"
otherwise
?"别灰心! 化悲痛为力量,定能看到美丽女神的!"
endcase
h1=18
LT=25
do while h1>3
set colo to
clear
set colo to +g/n
@ 02,00 to 24,100
set colo to gr+/n
@ h1,LT say "欢 迎 使 用 本 软 件 , 欢 迎 下 次 再 用 !"
@ h1+2,LT say "小 雨 工 作 室 : 李 吉 勇 千 禧 年 特 别 奉 献 !"
@ h1+4,LT+38 say "2000/04/25"
n=1
do while n<50
n=n+1
enddo
h1=h1-1
@h1,LT clear to h1+6,LT+70
enddo
clear
return
------------------------
[img]http://www.gz9f.com/bbs/UploadFile/2005-10/2005102120957907.jpg[/img]
12 楼
顶天 [专家分:0] 发布于 2005-10-21 20:17:00
屏保
[img]http://www.gz9f.com/bbs/UploadFile/2005-10/20051021201358518.jpg[/img]
---------------------------------
SET COLO TO GR+/N
CLEA
SJ1=RAND()*25
SJ2=RAND()*100
ACCE "请输入任意字符:" TO X
CLEA
DO WHILE .T.
SJ3=RAND()*30 &&决定滚动因素之一
SJ4=RAND()*65 &&决定横向活动范围因素
******************* &&决定纸带颜色与屏幕底色
S=RAND()
SD=RAND()
YC=IIF(S<=0.2,"R+",IIF(S<=0.4,"GR+",IIF(S<=0.6,"G+",IIF(S<=0.8,"GB+","W"))))
DC=IIF(SD<=0.2,"G",IIF(SD<=0.4,"B+",IIF(SD<=0.6,"BR+",IIF(SD<=0.8,"N","W"))))
SET COLO TO &yc/&dc
*****************
on error zz=-5
DO WHILE .NOT.BETW(SJ1,SJ3-0.1,SJ3+0.1)
zz=0
do while zz<=1.2
@ SJ1+zz,SJ2 SAY x font"宋体",3 && COLO +BR/*G
@ 30-sj1+zz,sj2 say x font"宋体",3 && COLO +BR/*G
@ sj1+zz,100-sj2 say x font"宋体",3 && COLO +GR/*BR
@ 30-sj1+zz,100-sj2 say x font"宋体",3 && COLO +GR/*BR
zz=zz+0.2
enddo
SJ1=IIF(SJ1<SJ3,SJ1+0.01,SJ1-0.01)
SJ2=ROUND(SJ2+(SJ4-SJ2)/(ABS((SJ3-SJ1)))*0.1,10)
*IF SJ2>75
*?
*ENDIF
ENDDO
ENDDO
---------------------------------
13 楼
ccone [专家分:70] 发布于 2005-10-22 00:48:00
很好的东东,谢谢楼主!还有吗?
我全要了。wang520xi@yahoo.com.cn
14 楼
zzh820411 [专家分:30] 发布于 2005-10-22 12:02:00
能加你的QQ吗?
我的QQ是:39717317
希望有些问题可以赐教.
15 楼
顶天 [专家分:0] 发布于 2005-10-22 15:44:00
NO.5古诗
[img]http://www.gz9f.com/bbs/UploadFile/2005-10/2005102215362497.jpg[/img]
-----------------------------
SET COLOR TO G+/N,GR+/B
clear
T1="瀑"
T2="布"
T3="唐。李白"
P1="日照香炉生紫烟"
P2="遥年瀑布挂前川"
P3="飞流直下三千尺"
P4="疑是银河落九天"
@ 10,70 SAY T1 FONT"宋体",30 COLO R+
@ 14,70 SAY T2 FONT"宋体",30 COLO R+
@ 14,65 SAY T3 FONT"宋体",15 SIZE 4,2 STYL "I" COLO GR+
@ 06,55 SAY P1 FONT"宋体",20 SIZE 7,2 STYL "B"
@ 06,45 SAY P2 FONT"宋体",20 SIZE 7,2 STYL "B"
@ 06,35 SAY P3 FONT"宋体",20 SIZE 7,2 STYL "B"
@ 06,25 SAY P4 FONT"宋体",20 SIZE 7,2 STYL "B"
-----------------------------
16 楼
顶天 [专家分:0] 发布于 2005-10-22 15:45:00
NO.6动画文字
[img]http://www.gz9f.com/bbs/UploadFile/2005-10/20051022153827445.jpg[/img]
-----------------
set talk off
set colo to +w/n
clea
pt="在这里,你会发现一个精彩的世界,一个令人兴奋的世界......"
dime z(31)
jz=1
do while jz<=31 && 截 字
z(jz)=subs(pt,2*jz-1,2)
jz=jz+1
enddo
set bell to "D:\Vfp98\aing\wav\good\4003b.wav"
?chr(7)
for i=1 to 20000000
endfor
set bell to "D:\Vfp98\aing\wav\good\n2endfight.wav"
?chr(7)
h=8
l=20
jz=1
**************
set curs off
do while jz<=31
* #not# on key label esc ex=2 && 设置 E S C 退出
if jz=21.or.jz=22.or.jz=11.or.jz=12
=inkey(0.35)
@h,l say z(jz) font"楷体",25 color +br styl "b"
jz=jz+1
l=l+6
inkey(0.35)
loop
endif
@h,l say z(jz) font"宋体",21 color +gr
l=l+6
if l>93
l=8
h=h+5
endif
jz=jz+1
@00,88 clea to 06,102
DO W
enddo
set curs on
************
*canc
PROC w
set colo to +r/n
y1_l=90
zsS=0
do while Y1_L<=100
Y2_L=Y1_L-2
do while Y2_L<=Y1_L+2
Y2_H1=(-1)*(sqrt(abs(4-(Y1_L-Y2_L)^2)))+3
Y2_H2=sqrt(abs(4-(Y1_L-Y2_L)^2))+3
@ Y2_H1,Y2_L say "." color +Gr/*BR font"宋体",3
@ Y2_H2,Y2_L say "." color +r/*BG font"宋体",3
Y2_L=Y2_L+0.1
for i=1 to 5000
endfor
zSS=zsS+1
zS=iif(zsS<45,1,iif(zsS<85,2,3))
enddo
Y1_L=Y1_L+4
if zS=1
@ Y2_H1-0.5,Y2_L-3.6 say "鼎" color +Gr/n font"隶书",14
endif
if zS=2
@ Y2_H1-1.2,Y2_L-3.1 say "D" color +G/n font"楷体",13 styl "b"
@ Y2_H1-0.1,Y2_L-3.1 say "L" color +G/n font"楷体",13 styl "b"
endif
if zS=3
@ Y2_H1-0.5,Y2_L-3.6 say "天" color +Gr/n font"隶书",14
zsS=0
endif
enddo
return
-----------------
17 楼
jinlonggao [专家分:17130] 发布于 2005-10-22 17:20:00
感谢楼主的无私奉献,让我受益良多!下面是我修后的唐诗,贴上来与大家分享:
*唐诗
SET COLOR TO G+/N,GR+/B
clear
T1="瀑"
T2="布"
T3="唐·李白"
P1="日照香炉生紫烟"
P2="遥看瀑布挂前川"
P3="飞流直下三千尺"
P4="疑是银河落九天"
do while .t.
n = int(rand()*6)
cColor = substr("G+ GR+B+ R+ W+ W ",3*n+1,3)
cFont = alltrim(substr("宋体 隶书 方正舒体黑体 楷体 幼圆 ",8*n+1,8))
@ 10,70 SAY T1 FONT"宋体",30 COLO R+
@ 14,70 SAY T2 FONT"宋体",30 COLO R+
@ 14,65 SAY T3 FONT"宋体",15 SIZE 4,2 STYL "I" COLO GR+
@ 06,55 SAY P1 FONT(cFont),20 SIZE 8,2 STYL "B" COLO &cColor
@ 06,45 SAY P2 FONT(cFont),20 SIZE 7,2 STYL "B" COLO &cColor
@ 06,35 SAY P3 FONT(cFont),20 SIZE 7,2 STYL "B" COLO &cColor
@ 06,25 SAY P4 FONT(cFont),20 SIZE 7,2 STYL "B" COLO &cColor
if inkey(2) # 0
exit
else
clear
endif
enddo
retu
18 楼
顶天 [专家分:0] 发布于 2005-10-22 18:07:00
一般按ESC就可以停下来了!
再不行就只能热键调出任务管理器来关闭VF了!
不好意思,是6年前刚学时做的东东,很不完善,本想做成独立执行的文件,可当时没学会,后来就作罢了!
19 楼
jinlonggao [专家分:17130] 发布于 2005-10-22 18:50:00
没什么,只需在最后的一个"ENDDO"前面加上下列三行即可
if inkey(0.1) # 0
exit
endif
想停的时候按任意键!
不过五笔打字还有些不会用,楼主能做一下解释吗?
20 楼
顶天 [专家分:0] 发布于 2005-10-22 22:16:00
呵~~~原来终止程序很简单呀~~~
五笔软件就是看提示输个用户名、速度等,再切换至五笔输入法就可以用了!
不过我还是在VF6.0的环境下用的,在更高版本没用过,不知会不会有兼容性的问题!
我来回复