怎麼編程的-ag真人国际官网
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、易語言
★全中文支持,無需跨越英語門檻。★全可視化編程,支持所見即所得程序界面設計和程序流程編碼。★中文語句快速錄入。提供多種內嵌專用輸入法,徹底解決中文語句輸入速度慢的問題。★代碼即文檔。自動規范強制代碼格式轉換,任何人編寫的任何程序源代碼格式均統一。★參數引導技術,方便程序語句參數錄入。★無定義類關鍵字。所有程序定義部分均採用表格填表方式,用戶無需記憶此類關鍵字及其使用格式。★命令格式統一。所有程序語句調用格式完全一致。★語法格式自動檢查。自動檢查並提示所輸入語句的語法格式是否正確,且可自動添加各類名稱。★全程提示與幫助。滑鼠停留立即顯示相關項目提示。編程時提示語法格式,調試時提示變數當前內容,隨時按下f1鍵可得到與當前主題相關詳細幫助等。★名稱自動管理。用戶修改任一名稱定義,其它所有包含該名稱的程序代碼均自動修正。★集成化開發環境。集界面設計、代碼編寫、調試分析、編譯打包等於一體。★學習資源豐富。詳細的幫助文件、數十兆的知識庫、數萬用戶的網上論壇、教材已出版發行……
10、結論
你可能希望得到一個關於「我該使用哪種語言」這個問題的更標準的結論。非常不幸,沒有一個對所有應用程序都最佳的解決方案。c適於快而小的程序,但不支持面向對象的編程。c 完全支持面向對象,但是非常復雜。visual basic與delphi易學,但不可移植且有專利權。java有很多簡潔的功能,但是慢。創作工具可以以最快的速度產生你的程序,但是僅對某一些類型的程序起作用。最好的方法是決定你要寫什麼樣的游戲,並選擇對你的游戲支持最好的語言。「試用三十天」的做法成為工業標準是件好事情。
2. 新手如何學習編程
熟悉以下關鍵東西,可以邊學邊做,定期訓練,經常思考,長期積累:
1、語法。
2、基礎理論(數學、數據結構、演算法等)。
3、設計方法(編程原則、設計模式、框架設計等)。
4、庫(核心、基礎、ui、擴展、游戲引擎等)。
5、計算機相關(操作系統、網路、圖形學等)。
6、領域知識(游戲設計、網站設計等)。
7、開發工具(編輯器、ide、自動部署等)。
8、項目管理(進度管理、分工協作、bug管理、版本控制等)。
最普遍也是最重要的能力:創造力。努力分析並理解好做什麼以及怎麼做。要知道上面那些東西一開始都是不存在的。
具體方法包括:
1、快速閱讀入門教程和書籍,適合學習語言和基礎庫。比如我學java讀的《java編程思想》,練習題做過一點,然後學actionscript就沒讀過書,只讀過adobe官方文檔《actionscript 3.0編程》。
2、閱讀庫的文檔、實例、源碼。比如flash、flex開發,熟悉官方api很重要,很多細節要具體使用時才注意到,這時候最好做個筆記,雖然我從沒看過我的筆記。
3、做一個自己感興趣或熟悉的小項目,比如我就以黑白棋游戲作為多個語言的試水項目,一樣的邏輯,便於把關注點放在語言特點上。
4、自己動手豐衣足食。廚師有菜譜,程序員可沒菜譜。比如我做游戲,最關鍵的游戲編程知識全部是動手學出來的,很少有專門針對某個業務領域(如游戲)的編程書籍,要麼是入門書,要麼是模式書(如演算法)、理論書(圖形學),很少有書籍教你如何開發一個45度角地圖系統加編輯器的,全靠自己思考,以及看前人的代碼,需要時找些網路資料。關鍵是,可以培養最重要的創造力。
對於演算法和設計模式,可以研讀下,但是關鍵還是靠平時如何使用了。新手勉強不來的。
項目管理方面的,就得靠工作經驗了,多思考多提意見不要只走流程。
3. 怎麼編程啊
函數initsqsyspad()的第一個參數,應該是sqsyspad類型的變數,而你傳給它的參數卻是sqsyspad *(指針)類型的變數。所以,編譯器提示:不能把第一個參數從sqsyspad *類型轉換成sqsyspad 類型。其它幾條都是類似的情況。
4. 如何編程
不要老是想著誰「最有錢途」,這些都不是我們應當考慮的,我們要考慮的是怎樣才能真正的精通vb。如果成為了vb的專家,應當很容易賺到錢的。vb程序員為什麼工資低,不是vb不行,是因為大部份vb程序員不行,他們只懂得用控制項,而沒有什麼編程的思想。而vb的初學都只會用控制項和簡單的api就說精通vb了,顯然影響的整個vb在程序界的地位,這些人顯然不能稱為程序員的,只能相當於會使用vb了,就像會word一樣。如果vb程序員都懂的數據結構,uml等,就完全是另外一回事了。有認為vb功能弱,請注意:仙劍95版就是用vb4做的,還有directx sdk7中有個一很好玩的3d游戲,聲音和動畫都非常好,也是用vb寫的。所以vb能做很多東西,只要你想去做。
(1)vb不只是資料庫和報表。不要以為vb就是資料庫和報表,這只是vb強大功能的一小部份。如果這此都搞不清,還是好好的看一下相關的書籍,比在這里問問題有用多了。我以前沒有學過資料庫,只是有些編程的思路,後來學資料庫就非常容易了。我做報表一般用richtextbox或是from來做,一般都能做的很好,也不用去考慮什麼水晶報表了。
(2)不要迷信於api。api能做很多東西,但有些東西在vb裡面的函數中就有,api只是vb對windowssdk的封裝而已。如果想學好api,建議學習sdk。如果vb本身就能很好的支持這個功能,何必還要用api呢。
(3)不要什麼都想著控制項。如果做程序都想著第三方控制項的話,代價是很高的,不僅程序大,安全性也低了很多。其實vb本身帶的控制項已經完全夠用了。
(4)認認真真的把msdn中關於vb的內容好好看一看,特別是函數和語句,很有用的。
(5)遇到問題不要直接來這里問,自己好好想一想,試著解決這個問題,這雖然在時間上慢了,可是在自身的提高上卻有很大的幫助。
(6)沒事的時候,多研究些語言上的東西,如數據結構和演算法,不要老是想著什麼花哨的東西。這對以後的提高非常有幫助。
5. 如何編程
簡單的說,編程就是為了藉助於計算機來達到某一目的或解決某個問題,而使用某種程序設計語言編寫程序代碼,並最終得到結果的過程。
計算機雖然功能十分強大。可以供你上網、打游戲、管理公司人事關系等等,但是沒有程序,它就等於是一堆廢鐵,不會理會我們對它下達的「命令」。於是,我們要馴服它,只有通過一種方式——程序,這也是我們和計算機溝通的唯一方式。
那程序到底是什麼呢?
程序也就是指令的集合,它告訴計算機如何執行特殊的任務.這些計算機本身不會主動的做任何事情。因此我們要通過程序的方式來讓計算機為我們「效勞」。而這個過程就是我們「編」出來的。編程可以使用某一種程序設計語言來實現,按照這種語言的語法來描述讓計算機要做的事情。
我們這里所講的語法和外語中的語法完全兩碼事,這里講的語法只是讀你的程序書寫做出一寫規定而已。
寫出程序後,再由特殊的軟體將你的程序解釋或翻譯成計算機能夠識別的「計算機語言」,然後計算機就可以「聽得懂」你的話了,並會按照你的吩咐去做事了。因此,編程實際上也就是「人給計算機出規則」這么一個過程。
可以考慮一下學習c ,他是一種很不錯的編程語言。
推薦你看一下《21天學通c 》,本人認為它是一本很好的教程,58元錢,如果嫌貴可以發郵件到我郵箱索要電子版,不過要等一星期(我只在星期六上網)我郵箱是[email protected]
6. 編程怎麼編程
擦 這個編程最少要寫上百行 誰會給你寫
7. 怎麼編程入門
編程語言分為結構化程序語言和面向對象的程序語言,其中結構化程序語言要比面向對象的要簡單,語法要簡單一些,而且也容易理解一點,c語言是經典的結構化編程語言,易學易用,它的編譯器turbo c也非常容易使用,所以非常適合作為初學者的入門語言。
學完c語言之後可以縱向擴展,學過c之後再轉入c 、c#或者是java的學習,c 和c#就不用說了,它們都是在c語言基礎之上建立的面向對象語言,而java與c語言在語法上也有一定的相似性,所以學完c之後再轉入java的學習也是順理成章的事。
當然一開始就上面向對象的語言不是說不可以,比如說vb還是很簡單的,vb做一些簡單的系統也是非常實用的,這個就要看怎麼選擇了,如果是為了短期能做點東西比如說做個系統,那麼vb是一個不錯的選擇,但還是建議把基礎打牢,從c語言學起,學完c之後學其他的語言就很容易了。
html只是一門標記語言,很容易掌握,如果需要用的話,可以臨時突擊一下,一個星期內估計就能會使用了,所以覺得沒必要去刻意的學它。
8. 怎麼編程
看你學什麼編程語言啊,計算機里的編程語言跟人類的語言的意思差不多,都需要編譯器將它們翻譯成機器能識別的二進制代碼。
說到這你就會問了,為什麼人們不直接寫二進制代碼讓機器直接識別呢?因為二進制代碼很難看懂,也很難分析的編寫,要考慮到硬體因素,所以人們就發明了各種語言和它們的編譯器。
現在比較流行的編程語言有c語言、java、c 、vb、匯編等。
其中匯編語言是最接近硬體結構的,但也是最難學、最難讀與最難寫的,各種晶元都有其自身的一套匯編,而且同一晶元會因廠商不同而不同。而我們的計算機是高度集成的東西,晶元與廠家五花八門,但它卻能運行各種語言,這就是因為有系統的存在,簡而言之,系統的作用一個是將cpu等硬體資源分頻,另一個作用就是將硬體資源整合成一個標准,在這個標准下任何語言都能安裝運行。
你要是想學編程,應該從最簡單的一些概念開始學起,以上跟你說了一部分了,接下來自己找點資料來看吧。
當你看得足夠多的時候,你就知道你想要編程的方向及選擇的語言了。