加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

编程——极有趣的游戏

(2023-07-21 10:31:55)
分类: 科海漫游
               编程——极有趣的游戏


编程——极有趣的游戏

    老夫上班时天天编程,一坐四小时不挪窝,旁观者无不以为俺“任劳任怨”“吃大苦流大汗”,年年评先进,俺私下窃笑:“其实老夫天天玩游戏呢,哈哈!”
    编程者都深知其中乐趣,但很少有人愿意把这快乐写出来,让众人知晓。
    老夫接触电脑还是八十年代中期,大概算中国最早玩电脑的一批人。那时有些单位才刚刚开始有电脑,一台IBM两万,连我们科研单位都买不起,我先弄本谭浩强的《BASIC语言》学着,发现就跟解几何题似的,趣味无穷。
    后来给儿子买了架中华学习机,开始给儿子编游戏程序,有了真东西,就更好玩了。

编程——极有趣的游戏
我当年买的中华学习机就这个样子,现在任何地方都看不到了

    程序语言不过一些英语单词,但前后连起来就等于给电脑下一串命令,让它干什么就得干什么。我上学时学的是俄语,幸亏三十来岁自学了两本广播英语,后来搞编程全用上了,一点没糟践。
    那时编了个《猫捉老鼠》游戏,给“老鼠”整一个“随机函数”,让它瞎蹦乱跳。连我自己都猜不到它下一步会往哪儿跳,然后用鼠标控制“猫”去捉“鼠”,儿子玩得不亦乐乎。
    后来儿子发现那老鼠有时候“挺傻”,自己会往猫嘴里钻。我当然明白,其实那就是随机函数干的,随机乱跳,恰好跳进猫嘴里。
    又编个《五子棋》游戏,我跟不会下棋的妹夫下着玩,几盘撕杀下来,我已丢盔卸甲。

编程——极有趣的游戏
我编的五子棋游戏还要更好看一些

    再编个《画笔》游戏,就跟现在电脑上的《画笔游戏》差不多,而且还设计出压缩存储功能,让爱画画的儿子画着玩,连饭都不想吃了。
 
    后来开始搞汉字编码发明,就正式干上了电脑编程工作,那就不光是业余编编游戏了,而是做数据库,一干就干到退休,做了数不清的数据库。
    有次我做了一个软件,配一个封面,我设想用数据库语言编成一个月球绕地球转的动画图象,这比用动画软件FLASH编制难多了。而且不是平面的,是那种立体空间的,有近大远小的透视感觉。我给月球搞一个椭圆轨道,当转到离读者近的地方时,月球最大,越转越远,也就越小,而且近处转得快,远处转得慢,看起来就跟我们真的看一个天体模型似的。我只须调整程序中的数值,转圈就能按照我的设想运行。
    最好玩的是,我让月球转到近处时,变成暖橙色,越远就越冷,从暖橙色慢慢变黄,变绿,变蓝,给人感觉极像是远去了,到了天尽头似的。其实,这里不过是把月球的颜色值搞成一个函数,随着在椭圆上的位置而变化。
    那时我感觉电脑好玩极了,不管多奇妙的场景,只要你能想象出来,就能做出来。天天编程,乐此不疲。
    当时自己做动画,把我画的画一帧一帧连起来,立刻就能动了,活了。我为了教游泳,编了个游泳教材,其中就做了一段蛙泳动画,那个游泳者手脚配合,动作绝对标准,而且还能翻脚掌,旁观者看了觉得奇怪,不知道那脚掌是怎么翻过去的。为了感觉真的在往前游,加了个背景,只要背景不断往后跑,就感觉游泳者好像不断前进似的。

编程——极有趣的游戏
这是我制作的水中站立动画


    后来玩C语言,这家伙功能强大。我用这种语言编了个电子琴,利用电脑键盘就能弹琴,自己扣个耳机听着玩,太有趣了。黑键白键全有,各种半音都能弹出来,最厉害的是能变36个调,只要直接点击“>”键和“<”键就能升调和降调,比正规买的高级电子琴变调还方便。而变调功能是我通过一个简单函数在程序中实现的。
    通过编这段电子琴程序,我可以想见,即使高级电子琴里的程序也不过如此,只要有材料,我完全可以自己制作一架电子琴出来。起码软件部分没问题。

    数据库那玩艺儿更好玩,成千上万的信息放进去,查得好不好,全看编程技巧。临退休编了四大数据库——中国古代诗词库、中国古文库、四大名著库、鲁迅著作库。这四个库非常适合于搞文学研究的人用。

编程——极有趣的游戏
我编的诗词库

    比如你研究《红楼梦》,想知道随便某个不起眼的丫鬟,比如宝玉的小丫鬟“坠儿”,非常不起眼,谁都不注意。如果我们要想知道她从哪一回开始出现,哪一回结束,总共出现了多少次,每次都有什么言行,要用人工方法查找,恐怕几天也不一定查得精确。而用我的库,只要一两秒,全部结果都列得清清楚楚。
    于是我们知道,“坠儿”这个词最早出现于第26回,在这一回共出现了15次,而第一次是:
    “"林姐姐,你在这里作什么呢?"红玉抬头见是小丫头子坠儿。”
    最后一次出现在第60回,这一回中只出现了一次:
    “一个是红玉的,琏二奶奶要去还没给人来,一个是坠儿的,也还没补。”
    数据库不但能把每次“坠儿”的言行查得清清楚楚,而且还能给出统计表:
------------------------------------------------------------
    回目          词组                          出现次数
------------------------------------------------------------
  第二十六回      坠儿                              15
  第二十七回      坠儿                               5
  第二十八回      坠儿                               1
  第三十五回      坠儿                               1
  第五十二回      坠儿                              11
  第五十三回      坠儿                               1
  第五十八回      坠儿                               1
  第六十回        坠儿                               1
------------------------------------------------------------
    总计          坠儿                              36
    连这样没人注意的小丫头都能查得一清二楚,那些主要人物,比如宝黛钗三位,要想完全查清就更没问题了。

编程——极有趣的游戏
极不起眼的坠儿

    我再举个例子,比如我现在想知道在《三国演义》中“白蛇”这个词共出现了几次,在第几回,每次都说了些什么,只要一两秒就能得到如下结果:
========================
            三国集句─《白蛇》

            单词集句共3句

    周末七国分争,并入于秦;及秦灭之后,楚、汉分争,又并入于汉;汉朝自高祖斩白蛇而起义,一统天下,后来光武中兴,传至献帝,遂分为三国。
          ──《第一回》《宴桃园豪杰三结义  斩黄巾英雄首立功》记录号:1

    血流芒砀白蛇亡,赤帜纵横游四方。
          ──《第十四回》《曹孟德移驾幸许都  吕奉先乘夜袭徐郡》记录号:14

    高皇手提三尺雪,芒砀白蛇夜流血;平秦灭楚入咸阳,二百年前几断绝。
          ──《第三十八回》《定三分隆中决策  战长江孙氏报仇》记录号:38

------------------------------------------------------------
    回目          词组                          出现次数
------------------------------------------------------------
  第一回          白蛇                               1
  第十四回        白蛇                               1
  第三十八回      白蛇                               1
------------------------------------------------------------
    总计          白蛇                               3
=================================
    再比如在中国现存十万首古诗词中,要想查找既含“黄河”又含“昆仑”的诗,而且还得保证这两个词在同一行,或同一句中,要彻底查遍一个不许漏,恐怕非常困难,但用我的库,几秒钟就得,全部列出表来,而且诗名、作者、朝代全部记录在案。
    比如这两个词出现在同一行的情况如下:
        黄河但东注,不见归昆仑。
        黄河西来决昆仑,咆吼万里触龙门。
    如果要求更高一些,要求这两个词必须出现在同一句中,则有:
        黄河西来决昆仑。
        黄河万里昆仑来。
    这么好的软件却无法推广出去,我免费推荐给我的文科同学,可惜这些榆木疙瘩对电脑一窍不通,只好我自己天天在家偷着乐。
 
    编程对我的吸引力大到什么程度?一进入状态后,整天满脑子都是程序,晚上睡觉脑子里肯定也是一行行英语单词,甚至去水库游泳,还在一边游一边编程,一趟横渡回来,一段程序就编好了,回去输入、调试,立刻就想看到结果。
    当然,编程也有苦恼的时候,有时明明编得很清楚,但就是运行不了,总出错,还不知道错在哪里。一开始总以为也许软件有问题,后来把毛病找出来后,才知道还是自己错了。这时我才发现,人脑在逻辑思维的精确性,严密性上,远远不如电脑。通过这样长期训练,我们的逻辑思维也就一步步变得更严密更精确。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有