美文网首页我爱编程
不重视C语言,那你失去了整个编程

不重视C语言,那你失去了整个编程

作者: 这个夏天卟太热 | 来源:发表于2018-05-20 09:41 被阅读52次

    如何学习C语言,在我看来一定要边学边用、理论实践相结合,才能对知识真正掌握牢靠。虽说这都是老生常谈的话题了,但不可否认的是给你一部手机去探索它的功能远比只给你一本手机说明书要好得多。

    很多初学者之所以学C语言有困难,一方面是自己摆脱不了从小到大听课、做题、考试的学习模式,把工科当理科的学了;另一方面也和当下有关C语言的很多教材书籍有关,整本书的示例都只引入,那可不让人误以为C语言就只能做算术题吗?很多原本兴致高昂,以为学了C就能开发游戏的同学硬是被那个黑框造的一点兴趣都没了。(c语言学习交流群:666+29+5498邀请码:书夏热)

    兴趣和动手一定是学习编程的两大法宝,显然对于C语言的学习也不例外。所以针对题主的问题,我给的学习步骤如下:

    1、了解C语言的基本语法 推荐K&R的C程序设计语言 (豆瓣),谭老的书很多人对其颇有微词,我倒是觉得虽然比起“K&R圣经”显得啰嗦,而且还有些错误,但对于只是为了了解基本语法的初学者来说倒也可以接受。比起精确无误,能看懂并坚持下去在一开始比什么都重要!!切忌选一本过厚的书去看,结果八成会是还没开始你就已经放弃了。这一阶段能了解什么是类型、变量、函数,什么是与或非,什么是if、while、for基本上就可以了。最最最重要的是,一定要动手去敲代码!一定要动手去敲代码!一定要动手去敲代码!同样,忽略书上那些复杂隐晦的示例,30行以内简单明了的就好,什么多维数组、运算符优先级,指向指针的指针……暂时先放一边把;

    2、了解C语言可以做什么 有了一定的语法基础后,理论上而言就可以上手编程了,但如上所述,大部分入门级书籍给的示例都是基于标准输入输出的控制台程序,这对于初学者来说并不能激发学习的兴趣。除了做算术题、给数组排序、交换变量A和B的值……C语言能做的事还有很多。远的不说,利用graphics图形库写个“贪吃蛇”是一种很爽的体验……推荐一个视频教程香蕉地--C语言入门了离学会编程还远吗?。这一阶段切勿贪多图快,踏踏实实动手完成一个专属于你的游戏对自己的兴趣和信心都是极大的提升;

    3、进阶学习 依然用项目驱动的方式去学习,通过Windows API写图片查看器、通过Socket写聊天室软件、通过CGI开发动态网页……当然,除了这些软件项目,买一块开发板,比如Arduino玩玩硬件也是很不错的选择。无论是用graphics库开发小游戏,还是这里提到的各种高阶玩法,在实践的过程中遇到不懂的C语言语法再去深入学习,推荐参考书籍:C Primer Plus (豆瓣) 英文牛逼可以看原版,很优美C陷阱与缺陷 (豆瓣) 内容精悍,耐人寻味C专家编程 (豆瓣) 同样精悍,但需要有Linux经验

    文末奉上C语言编写的贪吃蛇小游戏一部分代码:使君感受编程之美(c语言学习交流群:666+29+5498邀请码:书夏热)

    #include "Game.h"

    int main()

    {

    /*

    *playsound播放音乐函数

    *函数原型为 BOOL PlaySound(LPCSTR pszSound, HMODULE hmod,DWORD fdwSound);

    *参数pszSound是要播放声音的文件名,只支持WAV等格式的文件,

    *参数hmod是应用程序的实例句柄,一般传递NULL就可以,

    *参数fdwSound是标志的组合掩码,可选值有SND_FILENAME、SND_ASYNC、SND_SYNC等。

    *SND_FILENAME表示pszSound参数指定的是文件名(pszSound还可以指定资源、内存音乐、系统音乐等等);

    *SND_ASYNC:用异步方式播放声音,PlaySound函数在开始播放后立即返回;

    *SND_SYNC:同步播放声音,在播放完后PlaySound函数才返回;

    *SND_LOOP一遍遍的重复播放声音,必须与SND_ASYNC标志一块使用。

    * 本人自行的理解

    *异步播放简单的就是说,一边播放音乐,一边执行代码,这就是真正的bgm

    *同步播放就是,先播放音乐,播放完音乐再执行下面代码,就跟按了暂停一样

    */

    PlaySound(TEXT("sounds\\波拉哩的春天.wav"),NULL,SND_FILENAME | SND_ASYNC | SND_LOOP);

    Snake.victory_score = 35; //设置默认获胜条件

    Snake.time = 90; //设置默认默认时间

    strcpy(Snake.Difficult,"普通"); //设置默认难度为"普通"

    Snake.Add_speed = 30; //设置默认蛇的左右速度

    Snake.Deceleration_speed = 50; //设置默认蛇的上下速度

    SetConsoleTitle("贪吃蛇"); //设置控制台窗口的标题

    Menu.X[0] = 18; Menu.Y[0] = 7; //"开始游戏"的坐标

    Menu.X[1] = 45; Menu.Y[1] = 7; //"历史最佳"的坐标

    Menu.X[2] = 18; Menu.Y[2] = 13; //"难度"的坐标

    Menu.X[3] = 45; Menu.Y[3] = 13; //"游戏说明"的坐标

    GameAll();

    }

    相关文章

      网友评论

        本文标题:不重视C语言,那你失去了整个编程

        本文链接:https://www.haomeiwen.com/subject/twmzdftx.html