回 帖 发 新 帖 刷新版面

主题:6年前用FOXPRO写的英文五笔打字软件和众多屏保,谁想看?

在6年前上大学时,老师教FOXPRO做数据库,我竟然疯狂地迷上了用FOXPRO来编英文打字软件、五笔打字软件和众多屏保,当时每天编到深夜,早上还要早起扫雪出操,每天仅睡两三个小时,真不知当时为什么有那么大的劲。(我不是计算机专业)

事后就没编了,原因是觉得用FOXPRO编数据库是专长,是正统,用它编别的软件无疑于用筷子勺水喝,虽也能完成,但效率极其低下,再者当时也觉得中国的盗版市场是否会让程序员成为活雷锋,但也可能吃不饱饭,就作罢了!

近日,觉得拿出来让大家分析分析可能也比较有意思,可能大家谁都没有想到用FOXPRO也能编出非数据库的软件吧!我那个英文打字软件是当时看到了小霸王学习机的英语打字游戏,就是天空掉字母,然后下面按个键,就发射子弹击爆它,左边是显示正确率、错误率及打字速度!

另外还有些图形屏保,三维图等,也是用FOXPRO编的,挺有意思,可以让大家图个新奇!

大家想看的话,回复一下,我就发上截图及源码,大家看一看!

回复列表 (共54个回复)

11 楼

五笔打字练习


------------------------
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 楼


屏保
[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 楼

很好的东东,谢谢楼主!还有吗?
我全要了。wang520xi@yahoo.com.cn

14 楼

能加你的QQ吗?
我的QQ是:39717317
希望有些问题可以赐教.

15 楼


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 楼


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 楼

感谢楼主的无私奉献,让我受益良多!下面是我修后的唐诗,贴上来与大家分享:
*唐诗
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 楼

一般按ESC就可以停下来了!
再不行就只能热键调出任务管理器来关闭VF了!

不好意思,是6年前刚学时做的东东,很不完善,本想做成独立执行的文件,可当时没学会,后来就作罢了!

19 楼

没什么,只需在最后的一个"ENDDO"前面加上下列三行即可

  if inkey(0.1) # 0
    exit
  endif

想停的时候按任意键!

不过五笔打字还有些不会用,楼主能做一下解释吗?

20 楼

呵~~~原来终止程序很简单呀~~~

五笔软件就是看提示输个用户名、速度等,再切换至五笔输入法就可以用了!
不过我还是在VF6.0的环境下用的,在更高版本没用过,不知会不会有兼容性的问题!







我来回复

您尚未登录,请登录后再回复。点此登录或注册