C语言在VS2017环境下写俄罗斯方块的感悟

C语言给几乎所有人的印象就是语法太严格、使用太拘谨,错误特别多,纠结太细致。很难提起兴趣来。同时还有如下的巨大弱势:

1:C语言写了很久还是只开发黑窗口程序,看不到实际应用在哪里,严重打击兴趣;

2:如果想要使用高效的集成开发环境,却很难和图形库链接上(主要是太多横空出世、突如其来的、不懂的操作细节,比如链接Lib库,为什么要那样做?不清楚,只是照着做而已);以至于高效IDE的魅力也大大失去了光彩。

3:硬要写图形化窗口你可能还真得跑到TC这种连复制粘贴都不友好的环境下去玩。实际公司中不用这低级的环境,就像开发一个PHP的商城是不会用记事本来开发一样,否则你技术再强也找不到工作(和实际脱节)。学习和社会需求严重脱节,不但影响你的职场,还会让你的学习失去兴趣以及白白浪费时间。

这几天反复思考这个问题:到底怎么提高C语言的学习兴趣。应该在高效的集成开发环境如:Visual Studio 2017顺利开发出图形化的C语言软件,是一个很重要的突破口。让你的C语言不再是只有黑窗口,也不用为了个图形界面去用TC了。

在调试过程中多次体会到:开发一个好的俄罗斯方块,是一个综合性比较大、也有难度的东西。就像做好一件事,总有它的难度所在。对入门级的学员来说,里面很多术语可能听的很抽象。如:句柄、资源、以及综合使用各种结构体(C语言顶多到结构体了);所以用C语言来开发图形化很费时费力,也不友好。但这恰恰是让你深入细致的了解底层东西一步一步是怎么来的,让你更理解C语言,就像用51单片机开发的时候,很多时候你还得用位操作去控制CPU的IO口呢,然后你还得一步步的根据时序写串口通信协议...所以,越细致的东西越是磨练你的功力。那么用JS或者PHP或者JAVA以及C++来开发个俄罗斯方块就要容易多了,但却并没有多大的提升水平的效果。所以开发起来难,并不能说明C语言的开发方式就没意义了,对学习很有意义。很简单的例子:没深刻理解面向过程,你无法深入理解面向对象;不深刻理解结构体的来源,你无法理解类的优美;不深刻理解指针的恶心,你无法体会到引用的爽快。上层语言要用的舒心,就得底层语言用的“恶心”。有句话叫“先苦而后甜,苦尽甘来”。如果没有苦的衬托,你的甜是感觉不到的。匆匆的放弃C语言,你同时也会发现上层语言对你也不友好。否则区区一个面向对象编程思想就不至于卡死很多学上层语言的。区区一个引用也不至于很久不明白。区区一个MVC不至于让很多所谓的技术人员大跨特跨...数据库的索引优化,SQL的高级使用不至于被说的非常神秘;负载均衡几乎卡住了学了5年左右的许多人,这是何故?就是小事不愿做,大事就做不了了...

C语言的重大意义虽然不是用来开发漂亮的外衣,但这完全不是可以放弃它的借口。它的核心地位是让你深入理解编程开发的法宝,这是其他语言(除了汇编)难做到的。很简单的应用,如果你精通C和C++,那你学Linux可以很轻松,你学数据库优化和集群这些也都很轻松,你就不会整天沉迷于PHP框架的选择,如到底是选择TP还是Laravel,还是CI,还是YII之类的,因为谁当时受欢迎了,你可以马上拿起来,就这么的简单和霸道。要不,怎么说“学好C/C++,走遍全球都不怕”。而且学C/C++的人可以很轻松的抢JAVA,PHP,JS,.NET.C#等领域的饭碗,就看他想不想过来抢。但反过来就不大可能了。

鉴于VS2017开发的C语言的俄罗斯方块1.0版正在不断修改和调试中。此部分应该会纳入到《C语言,好爽》2017重点讲解的内容,不过要看时间允许与否。因为这样做有意义,那就做了。

源代码就不截图了,里面写的有点乱,而且对于初学者来说,如果不理解C语言的系统,看了也白看。还是截几个结果的效果图吧,因为还在修改中。

效果图:

关于《C语言,好爽》的网站昨天快速的开发了一个,使用二级域名(http://c.phpkhbd.com),还在加入一个重要的模块“问答模块”。

时间: 2025-01-16 08:24:37

C语言在VS2017环境下写俄罗斯方块的感悟的相关文章

VS2017环境下安装AO10.2的方法

软件版本 Visual Studio的全称.简称及版本号对应关系为: Microsoft Visual Studio?2002 VS2002 VC7.0 Microsoft Visual Studio?2003 VS2003 VC7.1 Microsoft Visual Studio?2005 VS2005 VC8.0 Microsoft Visual Studio?2008 VS2008 VC9.0 Microsoft Visual Studio?2010 VS2010 VC10.0 Micr

在 mongodb 终端环境下写多行 javascript 代码、函数

工作中碰到一个问题,需要把某个 collection 中的某些符合条件的数据取出来,逐行处理其中某些字段.mongodb 终端下支持直接写 js 代码.函数,也可以运行 js 文件.1 首先需要设置 mongo 终端的代码编辑器,不设置的话只能输入一行代码文件,无法处理大段 js 逻辑 进入 mongo 终端后,输入 f={} 回车后,继续输入: edit f 未设置过相关系统变量的会收到如下提示: please define EDITOR as a JavaScript string or a

[笔记]Go语言在Linux环境下输出彩色字符

Go语言要打印彩色字符与Linux终端输出彩色字符类似,以黑色背景高亮绿色字体为例: fmt.Printf("\n %c[1;40;32m%s%c[0m\n\n", 0x1B, "testPrintColor", 0x1B) 其中0x1B是标记,[开始定义颜色,1代表高亮,40代表黑色背景,32代表绿色前景,0代表恢复默认颜色.显示效果为: 下面代码遍历全部显示效果. package main import ( "fmt" ) func main

windows vs2017环境下编译webkit 2

WebKit在Windows上 内容 安装开发工具 设置Git存储库 设置支持工具 构建WebKit 安装Cygwin(可选) 得到一个崩溃日志 本指南提供了用于构建WebKit的指令在Windows 8.1没有Cygwin(AppleWin港口WebKit). 你可以选择安装Cygwin运行测试. 安装开发工具 首先安装以下程序和设置您的环境: Visual Studio. (确保你包括c++支持.) https://www.visualstudio.com/en-us/products/vi

linux环境下写C++操作mysql(二)

main.cpp #include<stdio.h> #include<stdlib.h> #include"mysqlInterface.h" int main() { CMysqlInterface mysqlObj; mysqlObj.connect(); return 0; } mysqlInterface.h class CMysqlInterface { public: CMysqlInterface(); ~CMysqlInterface(); i

R语言在Linux环境下安装Curl出错问题的解决

运行 install.packages("RCurl") 得到这样的结果 > I have some problem in running R-cran's Demography package. > The hmd.mx function need Rcurl. I tried to install RCurl, but meet the following error: > *********************************************

linux环境下写C++操作mysql(一)

/***************** connect.cpp g++ connect.cpp -o connect -I /usr/include/mysql/ -L /usr/lib/mysql/ -lmysqlclient ****************/ #include<stdio.h> #include<string.h> #include<stdlib.h> #include"mysql.h" class CMysqlInterface

在AE10.1环境下调试其他版本的程序

不同人的可能使用的开发环境不一样,使用SDK版本也不一样,比如用ArcEngine9.3开发的程序在ArcEngine10.1下就不能运行,需要重新调试,才能运行. 这里的例子程序是其他网友在ArcEngine10.0的环境下写的 http://bbs.esrichina-bj.cn/ESRI/viewthread.php?tid=120017&extra=page%3D1 打开Debug的应用程序不能正常执行,这是ArcEngine版本不对的现象. 用VS2010打开程序,界面也看不到: 打开

读生产环境下go语言最佳实践有感

最近看了一篇关于go产品开发最佳实践的文章,go-in-procution.作者总结了他们在用go开发过程中的很多实际经验,我们很多其实也用到了,鉴于此,这里就简单的写写读后感,后续我也争取能将这篇文章翻译出来.后面我用soundcloud来指代原作者. 开发环境 在soundcloud,每个人使用一个独立的GOPATH,并且在GOPATH直接按照go规定的代码路径方式clone代码. $ mkdir -p $GOPATH/src/github.com/soundcloud $ cd $GOPA