【三支火把】使用STM32战舰板子实现俄罗斯方块游戏

2019-07-21 02:21发布

    最近一直在板子上搞俄罗斯方块的游戏,主要的目的是练习自己写代码的能力,于是选择了这样一个小项目,论坛里也有不少坛友分享过类似的帖子,供大家参考,我也看过 @龙之谷 的代码,写得很不错,就是太过繁琐,一上来就是1000多行的代码,且没有注释。看的有点头大。最近自己一直在深入学习C语言(楼主以前是个写程序连指针都很少用的人,原因是不太会),为了锻炼自己写代码的能力,于是自己写了一个,也花了好几天的时间,收获颇多。在此分享给大家。
    首先感谢我的好伙伴 @xkwy 提出:C是面向过程的语言,其实用C来写E罗斯方块这样一个程序是很费劲的,如果用面向对象的语言(如C++)来实现会简单很多。     确实是这样,为了保证整个程序能完整运行,确实花了很大的精力。
    在写程序的时候,我尽可能的简化自己的代码,使用的大量的指针,结构体指针,前后写了几个版本,最后一个版本将自己的方块处理部分的代码减少到700行+,而这基本就是所有程序的百分之80了,主函数也只有几十行,同时写标明了注释,增加了可读性,也算是有一点参考价值的,希望能够为大家提供点方便。(程序的压缩包随后送上)


****************************************************************************************
****************************************************************************************
****************************************************************************************


    开贴主要是为了记录自己所走的一点一滴,在这次的精力中,我学到了很多,也体会到很多,在此总结一下,我一直信奉,(只做事,不总结,那么你的努力在不久的将来至少也要打个5折)。
    1.如果你没有从书中真正得到过东西,那么你真的不会知道,书是那么的有用,就C语言来说,即使是30年出版的书,也值得你读三遍,楼主大三,不考研,于是找点C语言的书籍来看,真的从书中学到了很多,从我的代码中,你也许就能体会到。(以前的我在写程序的时候,从来没用过结构体,指针之类的东东,而原因就是我不会。)


    2.C是一门面向过程的语言,任何时候的编程,你都要能够知道,你的程序是怎样运行的,如果你已经不够清楚,那么请停下笔来,仔细的分析一下你的代码的逻辑,然后再继续写,请一定要重视这一步,否则尽管你写完了,你也要花费大量的时间,来重新考量你的代码,而这个过程,无疑是很浪费时间的。


    3.如果你已经很累,在时间不那么紧迫的情况下,请不要再继续,给自己一个放松的机会,或许放松之后,你的问题能马上解决。(楼主在实践中确实有这样的体会)
    4.对自己的代码负责,这是我从这次经历给自己定下的目标,作为一个编程者,一定要保证你写出来的代码的准确,可读,即使没有那么简洁,有深度。这次经历,我是抱着能写三行,就不写五行的态度来进行的,所以带简化代码上花费了大量的时间和精力。(楼下附图两张,这两个图片所声明的代码,实现的功能基本是一样的。)








*************************************************************
*************************************************************
*************************************************************
    就说这么多吧,希望能把自己的经历和成果给各位分享,以上感受部分,带有楼主的主观 {MOD}册,我是这样想的就这样说了,大家看看就好,有什么问题或者建议,欢迎提出,一起讨论,一起进步。




友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。