导航:首页 > 编程语言 > 程序心得体会

程序心得体会

发布时间:2021-12-08 16:26:10

1. 编程心得

编程
这是每个游戏编程FAQ里都有的问题。这个问题每星期都会在游戏开发论坛上被问上好几次。这是个很好的问题,但是,没人能给出简单的答案。在某些应用程序中,总有一些计算机语言优于其他语言。下面是几种用于编写游戏的主要编程语言的介绍及其优缺点。希望这篇文章能帮助你做出决定。

1、C语言

如果说FORTRAN和COBOL是第一代高级编译语言,那么C语言就是它们的孙子辈。C语言是Dennis Ritchie在七十年代创建的,它功能更强大且与ALGOL保持更连续的继承性,而ALGOL则是COBOL和FORTRAN的结构化继承者。C语言被设计成一个比它的前辈更精巧、更简单的版本,它适于编写系统级的程序,比如操作系统。在此之前,操作系统是使用汇编语言编写的,而且不可移植。C语言是第一个使得系统级代码移植成为可能的编程语言。

C语言支持结构化编程,也就是说C的程序被编写成一些分离的函数呼叫(调用)的集合,这些呼叫是自上而下运行,而不像一个单独的集成块的代码使用GOTO语句控制流程。因此,C程序比起集成性的FORTRAN及COBOL的“空心粉式代码”代码要简单得多。事实上,C仍然具有GOTO语句,不过它的功能被限制了,仅当结构化方案非常复杂时才建议使用。

正由于它的系统编程根源,将C和汇编语言进行结合是相当容易的。函数调用接口非常简单,而且汇编语言指令还能内嵌到C代码中,所以,不需要连接独立的汇编模块。

优点:有益于编写小而快的程序。很容易与汇编语言结合。具有很高的标准化,因此其他平台上的各版本非常相似。

缺点:不容易支持面向对象技术。语法有时会非常难以理解,并造成滥用。

移植性:C语言的核心以及ANSI函数调用都具有移植性,但仅限于流程控制、内存管理和简单的文件处理。其他的东西都跟平台有关。比如说,为Windows和Mac开发可移植的程序,用户界面部分就需要用到与系统相关的函数调用。这一般意味着你必须写两次用户界面代码,不过还好有一些库可以减轻工作量。

用C语言编写的游戏:非常非常多。

资料:C语言的经典著作是《The C Programming Language》,它经过多次修改,已经扩展到最初的三倍大,但它仍然是介绍C的优秀书本。一本极好的教程是《The Waite Group's C Primer Plus》。

2、C++

C++语言是具有面向对象特性的C语言的继承者。面向对象编程,或称OOP是结构化编程的下一步。OO程序由对象组成,其中的对象是数据和函数离散集合。有许多可用的对象库存在,这使得编程简单得只需要将一些程序“建筑材料”堆在一起(至少理论上是这样)。比如说,有很多的GUI和数据库的库实现为对象的集合。

C++总是辩论的主题,尤其是在游戏开发论坛里。有几项C++的功能,比如虚拟函数,为函数呼叫的决策制定增加了一个额外层次,批评家很快指出C++程序将变得比相同功能的C程序来得大和慢。C++的拥护者则认为,用C写出与虚拟函数等价的代码同样会增加开支。这将是一个还在进行,而且不可能很快得出结论的争论。

我认为,C++的额外开支只是使用更好的语言的小付出。同样的争论发生在六十年代高级程序语言如COBOL和FORTRAN开始取代汇编成为语言所选的时候。批评家正确的指出使用高级语言编写的程序天生就比手写的汇编语言来得慢,而且必然如此。而高级语言支持者认为这么点小小的性能损失是值得的,因为COBOL和FORTRAN程序更容易编写和维护。

优点:组织大型程序时比C语言好得多。很好的支持面向对象机制。通用数据结构,如链表和可增长的阵列组成的库减轻了由于处理低层细节的负担。

缺点:非常大而复杂。与C语言一样存在语法滥用问题。比C慢。大多数编译器没有把整个语言正确的实现。

移植性:比C语言好多了,但依然不是很乐观。因为它具有与C语言相同的缺点,大多数可移植性用户界面库都使用C++对象实现。

使用C++编写的游戏:非常非常多。大多数的商业游戏是使用C或C++编写的。

资料:最新版的《The C++ Programming Language》非常好。作为教程,有两个阵营,一个假定你知道C,另外一个假定你不知道。到目前为止,最好的C++教程是《Who's Afraid of C++》,如果你已经熟知C,那么试一下《Teach Yourself C++》。

3、我该学习C++或是该从C开始

我不喜欢这种说法,但它是继“我该使用哪门语言”之后最经常被问及的问题。很不幸,不存在标准答案。你可以自学C并使用它来写程序,从而节省一大堆的时间,不过使用这种方法有两个弊端:

你将错过那些面向对象的知识,因为它可能在你的游戏中使得数据建模更有效率的东西。

最大的商业游戏,包括第一人称射击游戏很多并没有使用C++。但是,这些程序的作者即使使用老的C的格式,他们通常坚持使用面向对象编程技术。如果你只想学C,至少要自学OO(面向对象)编程技术。OO是仿真(游戏)的完美方法,如果你不学习OO,你将不得不“辛苦”的工作。

4、汇编语言

显然,汇编是第一个计算机语言。汇编语言实际上是你计算机处理器实际运行的指令的命令形式表示法。这意味着你将与处理器的底层打交道,比如寄存器和堆栈。如果你要找的是类英语且有相关的自我说明的语言,这不是你想要的。

确切的说,任何你能在其他语言里做到的事情,汇编都能做,只是不那么简单 — 这是当然,就像说你既可以开车到某个地方,也可以走路去,只是难易之分。话虽不错,但是新技术让东西变得更易于使用。

总的来说,汇编语言不会在游戏中单独应用。游戏使用汇编主要是使用它那些能提高性能的零零碎碎的部分。比如说,毁灭战士整体使用C来编写,有几段绘图程序使用汇编。这些程序每秒钟要调用数千次,因此,尽可能的简洁将有助于提高游戏的性能。而从C里调用汇编写的函数是相当简单的,因此同时使用两种语言不成问题。

特别注意:语言的名字叫“汇编”。把汇编语言翻译成真实的机器码的工具叫“汇编程序”。把这门语言叫做“汇编程序”这种用词不当相当普遍,因此,请从这门语言的正确称呼作为起点出发。

优点:最小、最快的语言。汇编高手能编写出比任何其他语言能实现的快得多的程序。你将是利用处理器最新功能的第一人,因为你能直接使用它们。

缺点:难学、语法晦涩、坚持效率,造成大量额外代码 — 不适于心脏虚弱者。

移植性:接近零。因为这门语言是为一种单独的处理器设计的,根本没移植性可言。如果使用了某个特殊处理器的扩展功能,你的代码甚至无法移植到其他同类型的处理器上(比如,AMD的3DNow指令是无法移植到其它奔腾系列的处理器上的)。

使用汇编编写的游戏:我不知道有什么商业游戏是完全用汇编开发的。不过有些游戏使用汇编完成多数对时间要求苛刻的部分。

资料:如果你正在找一门汇编语言的文档,你主要要找芯片的文档。网络上如Intel、AMD、Motorola等有一些关于它们的处理器的资料。对于书籍而言,《Assembly Language: Step-By-Step》是很值得学习的。

5、Pascal语言

Pascal语言是由Nicolas Wirth在七十年代早期设计的,因为他对于FORTRAN和COBOL没有强制训练学生的结构化编程感到很失望,“空心粉式代码”变成了规范,而当时的语言又不反对它。Pascal被设计来强行使用结构化编程。最初的Pascal被严格设计成教学之用,最终,大量的拥护者促使它闯入了商业编程中。当Borland发布IBM PC上的 Turbo Pascal时,Pascal辉煌一时。集成的编辑器,闪电般的编译器加上低廉的价格使之变得不可抵抗,Pascal编程了为MS-DOS编写小程序的首选语言。

然而时日不久,C编译器变得更快,并具有优秀的内置编辑器和调试器。Pascal在1990年Windows开始流行时走到了尽头,Borland放弃了Pascal而把目光转向了为Windows 编写程序的C++。Turbo Pascal很快被人遗忘。

最后,在1996年,Borland发布了它的“Visual Basic杀手”— Delphi。它是一种快速的带华丽用户界面的 Pascal编译器。由于不懈努力,它很快赢得了一大群爱好者。

基本上,Pascal比C简单。虽然语法类似,它缺乏很多C有的简洁操作符。这既是好事又是坏事。虽然很难写出难以理解的“聪明”代码,它同时也使得一些低级操作,如位操作变得困难起来。

优点:易学、平台相关的运行(Dephi)非常好。

缺点:“世界潮流”面向对象的Pascal继承者(Mola、Oberon)尚未成功。语言标准不被编译器开发者认同。专利权。

移植性:很差。语言的功能由于平台的转变而转变,没有移植性工具包来处理平台相关的功能。

使用Pascal编写的游戏:几个。DirectX的Delphi组件使得游戏场所变大了。

资料:查找跟Delphi有关的资料,请访问:Inprise Delphi page。

6、Visual Basic

哈,BASIC。回到八十年代的石器时代,它是程序初学者的第一个语言。最初的BASIC形式,虽然易于学习,却是可怕的无组织化,它义无返顾的使用了GOTO充斥的“空心粉式代码”。当回忆起BASIC的行号和GOSUB命令,没有几个人能止住眼角的泪水。

快速前进到九十年代早期,虽然不是苹果公司所希望的巨人,HyperCard仍然是一个在Windows下无法比拟的吸引人的小型编程环境。Windows下的HyperCard克隆品如ToolBook又慢又笨又昂贵。为了与HyperCard一决高下,微软取得了一个小巧的名为Thunder编程环境的许可权,并把它作为Visual Basci 1.0发布,其用户界面在当时非常具有新意。这门语言虽然还叫做Basic(不再是全部大写),但更加结构化了,行号也被去除。实际上,这门语言与那些内置于TRS-80、Apple II及Atari里的旧的ROM BASIC相比,更像是带Basic风格动词的Pascal。

经过六个版本,Visual Basic变得非常漂亮。用户界面发生了许多变化,但依然保留着“把代码关联到用户界面”的主旨。这使得它在与即时编译结合时变成了一个快速原型的优异环境。

优点:整洁的编辑环境。易学、即时编译导致简单、迅速的原型。大量可用的插件。虽然有第三方的DirectX插件,DirectX 7已准备提供Visual Basic的支持。

缺点:程序很大,而且运行时需要几个巨大的运行时动态连接库。虽然表单型和对话框型的程序很容易完成,要编写好的图形程序却比较难。调用Windows的API程序非常笨拙,因为VB的数据结构没能很好的映射到C中。有OO功能,但却不是完全的面向对象。专利权。

移植性:非常差。因为Visual Basic是微软的产品,你自然就被局限在他们实现它的平台上。也就是说,你能得到的选择是:Windows,Windows或Widnows。当然,有一些工具能将VB程序转变成Java。

使用Visual Basic编写的游戏:一些。有很多使用VB编写的共享游戏,还有一些是商业性的。

资料:微软的VB页面有一些信息。

7、Java

Java是由Sun最初设计用于嵌入程序的可移植性“小C++”。在网页上运行小程序的想法着实吸引了不少人的目光,于是,这门语言迅速崛起。事实证明,Java不仅仅适于在网页上内嵌动画 — 它是一门极好的完全的软件编程的小语言。“虚拟机”机制、垃圾回收以及没有指针等使它很容易实现不易崩溃且不会泄漏资源的可靠程序。

虽然不是C++的正式续篇,Java从C++ 中借用了大量的语法。它丢弃了很多C++的复杂功能,从而形成一门紧凑而易学的语言。不像C++,Java强制面向对象编程,要在Java里写非面向对象的程序就像要在Pascal里写“空心粉式代码”一样困难。

优点:二进制码可移植到其他平台。程序可以在网页中运行。内含的类库非常标准且极其健壮。自动分配合垃圾回收避免程序中资源泄漏。网上数量巨大的代码例程。

缺点:使用一个“虚拟机”来运行可移植的字节码而非本地机器码,程序将比真正编译器慢。有很多技术(例如“即时”编译器)很大的提高了Java的速度,不过速度永远比不过机器码方案。早期的功能,如AWT没经过慎重考虑,虽然被正式废除,但为了保持向后兼容不得不保留。越高级的技术,造成处理低级的机器功能越困难,Sun为这门语言增加新的“受祝福”功能的速度实在太慢。

移植性:最好的,但仍未达到它本应达到的水平。低级代码具有非常高的可移植性,但是,很多UI及新功能在某些平台上不稳定。

使用Java编写的游戏:网页上有大量小的Applet,但仅有一些是商业性的。有几个商业游戏使用Java作为内部脚本语言。

资料:Sun的官方Java页面有一些好的信息。IBM也有一个非常好的Java页面。JavaLobby是一个关于Java新闻的最好去处。

8、创作工具

上面所提及的编程语言涵盖了大多数的商业游戏。但是也有一个例外,这个大游戏由于它的缺席而变得突出。

“神秘岛”。没错,卖得最好的商业游戏不是使用以上任何一门语言编的,虽然有人说“神秘岛”99%是使用 3D建模工具制作的,其根本的编程逻辑是在HyperCard里完成的。

多数创作工具有点像Visual Basic,只是它们工作在更高的层次上。大多数工具使用一些拖拉式的流程图来模拟流程控制。很多内置解释的程序语言,但是这些语言都无法像上面所说的单独的语言那样健壮。

优点:快速原型 — 如果你的游戏符合工具制作的主旨,你或许能使你的游戏跑得比使用其他语言快。在很多情况下,你可以创造一个不需要任何代码的简单游戏。使用插件程序,如Shockware及IconAuthor播放器,你可以在网页上发布很多创作工具生成的程序。

缺点:专利权,至于将增加什么功能,你将受到工具制造者的支配。你必须考虑这些工具是否能满足你游戏的需要,因为有很多事情是那些创作工具无法完成的。某些工具会产生臃肿得可怕的程序。

移植性:因为创作工具是具有专利权的,你的移植性以他们提供的功能息息相关。有些系统,如Director可以在几种平台上创作和运行,有些工具则在某一平台上创作,在多种平台上运行,还有的是仅能在单一平台上创作和运行。

使用创作工具编写的游戏:“神秘岛”和其他一些同类型的探险游戏。所有的Shockwave游戏都在网络上。

资料:Director、HyperCard、SuperCard、IconAuthor、Authorware。

9、结论

你可能希望得到一个关于“我该使用哪种语言”这个问题的更标准的结论。非常不幸,没有一个对所有应用程序都最佳的解决方案。C适于快而小的程序,但不支持面向对象的编程。C++完全支持面向对象,但是非常复杂。Visual Basic与Delphi易学,但不可移植且有专利权。Java有很多简洁的功能,但是慢。创作工具可以以最快的速度产生你的程序,但是仅对某一些类型的程序起作用。最好的方法是决定你要写什么样的游戏,并选择对你的游戏支持最好的语言。“试用三十天”的做法成为工业标准是件好事情。

2. 软件编程学习心得

我也建意从C入门,主要是学思想.你都以经能看懂程序了我想写门题也应该不大吧.现在市面上的编程语言是多但有的也的确太过时.现在主流的就JAVA和.NET建意在有了面向过程编程思想的基础上向面向对像的编程思想转变.JAVA和.NET选一门来学别一门思想都差不多有个了解就行一定不能学在主杂了,会把自己弄乱的.另外SQL和正则表达试一定要掌握

3. windows程序设计心得体会

windows程序设计也就是基于微软的windows操作系统而进行的程序设计。
(这是一句废话,但不要小看废话阿!真理往往就在其中)你有没有想过,为
什么是基于windows操作系统呢?下面就来解答:windows应用程序需要利用
由windows操作系统开放出来公用用程序使用的应用程序接口“API”(说道
重点了)windows提供了上千种API函数供应用程序使用。
上面说了,windows程序其实就是在非逻辑的使用这些API函数,我这里
提到了“非逻辑”三个字(这是本人的看法),这正是windows程序的精髓,这
是一切windows程序运行的方式(可能严重了点)。非逻辑也就是指程序不是
按照事先安排好的顺序来进行的,是根据用户的不同操作或者是其他某些原因
一步一步进行的。这种运行方式就叫做“消息驱动”
简单一点来解释一下何谓消息驱动,就是指应用程序始终在等待(等待
一词也许不他恰当,但可能好理解),它绝对不是在等待谁会给它爱(本人
爱开玩笑请别见怪!)它是在等待用户或者是系统的消息(也就是命令),
当接到消息后呢,它会把消息通过DispatchMessage(&msg)传递给窗口函数
(窗口函数就是一个应用程序的核心)窗口函数就会对照事先由程序编写好
的消息对照表调用对应的方法来处理消息。这样就完成一个消息的处理,接
下来准备处理下一个消息。
你也许会问那不是无休止的运行下去了吗?当然不会,下面我用程序
本身来说明这个问题:

//消息循环,通过此处来不断的取得消息。
while(GetMessage(&msg,NULL,0,0))

//消息进行一些转换
TranslateMessage(&msg);
//把消息传向窗口函数
DispatchMessage(&msg);
}
return msg.wParam;

就是这样了:当我们点击窗口右上角的小叉或者点击退出按钮时,
windows就会自动在我们的消息队列中加入一条消息“WM_DESTROY”,这
时呢窗口程序有这么一部分:
switch(message)
{
//其它代码
.........
//
case WM_DESTROY:
PostQuitMessage(0);
return 0;

相信一般的朋友都会明白吧,它的作用的就是在接收到WM_DESTROY时呢,
通过调用PostQuitMessage(0)让windows在消息列表中呢在加入另一条消
息“WM_QUIT".
当GetMessage函数抓取到WM_QUIT时返回0,其余返回非0值,懂了吧,
这下可以退出消息循环了。
这就是windows程序设计最基础的部分了,可以说是核心。

该说一些心得了,我认为学习windows程序设计不要基于某一部分,
而要把握住其大局,要有整体观,有了整体观对windows程序设计有了
一定的了解后在对其各部分下功夫(这下可不是照顾全局了,要静下
心来细心的咀嚼,要不然你会咽到的。)这样才不会走火入魔(嘿嘿)

就写到这吧,以后等我水平高些了再写(还早着呢,嘿嘿),希望
我没白费功夫,也希望对你有用,88。

4. 求学习编程的教程及心得体会

先学C,再学C++后面是WINDOWS编程(之后再怎么深入就看你自己的了),再后面是JAVA、HEML这些的
心得嘛!别把编程当编程学才学,要把编程当作一门艺术学,这样才学得好
编程很枯燥,所以需要有点精神的支柱才行...我当初学的时候,支柱是女朋友的鼓励....嘻嘻
对了
编程切记不能死套...要灵活运用,数学好,这个是很好的资本,所以要多重视算法方面的,因为算法是一个程序的精髓,而且呢,你数学好,那么逻辑思维应该不是很差,对算法方面的理解也蛮有帮助的
还有就是,编程这东西是水到渠成的,所以呢,刚开始的时候会很幸苦,这个是第一个坎,以前我用了两个多月才跨过这道坎,在那个时期,建议是多写点程序,而且是即兴创作
在跨过那道坎之后就差不多是一番风顺的了
后面的自己摸索了

5. 发展党员的程序心得体会

通过对《中国共产党发展党员细则》的学习,让我对党有了更深刻认识,特别是在发展党员、管理党员等方面。《中国共产党发展党员细则》与时俱进,不仅继承了1900试行版的严谨细致的特点更结合了、十三届三中全会和系列重要讲话精神,适合新形势下发展党员、管理党员的工作需要。这次学习,我对从发展党员工作有新的了解,以前只知道成为一名预备党员是一件很光荣的事,监督自己时刻向优秀党员学习,参加一些党组织活动,跟随着辅导员、学长学姐步伐,我从懵懂到现在对党有点肤浅的认识。直到完整的学习了《中国共产党发展党员细则》后才渐渐领会到党员是党最基本的组成单元,只有保证新发展的党员质量,才能保持党的先进性和纯洁性。只有对马克思主义信仰、共产主义有觉悟和有中国特色社会主义信念,并能自觉践行社会主义核心价值观的社会各界优秀人才才能被吸纳为党员。深深意识到作为一名预备党员不仅仅只是光荣,更多是社会对我们的期望和赋予我们的责任。

《中国共产党发展党员细则》在新形势下对发展党员的各个步骤了具体的说明,同时也提出新的要求,我们也应该努力提高自己,更快更好的达到《中国共产党发展党员细则》的各项要求,在坚持以邓小平理论、“三个代表”重要思想、科学发展观为指导的基础上,要保证党的先进性和纯洁性。在学习《关于加强新形势下发展党员和党员管理工作意见》一文后,我充分认识到新形势下发展党员和党员管理工作的具有重要意义。要使党充满活力不断前进就要要提高发展党员的质量,控制发展党员质量,完善党组织结构。
从向党递交入党申请书到有机会学习党的基本知识,荣幸的成为我们班第二批入党积极分子,再到预备党员经过了两三年漫长的成长之路,正是这两三年对党的性质、纲领、宗旨、组织原则和纪律的系统性学习让我明白中国共产党的根本宗旨是全心全意为人民服务,懂得党员的义务和权利,坚定了为共产主义事业奋斗终身的信念,也更加坚定了我终身拥护中国共产党的决心。同时也认识到我作为一名预备党员还有许多有待提高的地方,还有很多要向党员同志学习的地方,深感责任重大。

6. 软件开发心得体会

计算机软件工程专业的学生,要想在以后的职业中崭露头角,除了要有过硬的理论知识,健康的体魄外,还必须具备良好的心理素质,使自己在以后的途中无论经历什么样的困难,都立于不败之地。

阅读全文

与程序心得体会相关的资料

热点内容
微信一点通 浏览:429
行者数据如何修正 浏览:765
手机网站免费制作 浏览:251
网络上怎么找到我的位置 浏览:905
如何开启数据看板 浏览:102
给领导看文件怎么说 浏览:526
装源泉插件后打开cad文件很慢 浏览:634
vb编写一个简单计算器程序代码 浏览:381
app代充怎么赚钱 浏览:133
湖南省大数据发展 浏览:838
ip和数据哪个好看 浏览:409
linux文件驱动 浏览:511
超大数据中心 浏览:697
工作文件系统如何建立 浏览:307
利用文件中的内容初始化 浏览:935
马云支付宝用到的大数据技术 浏览:333
厦门大数据战略 浏览:720
6s如何设置app切换 浏览:724
西门子编程软件在官方网站哪里找 浏览:511
大数据社会调研报告 浏览:172

友情链接