还在为不知道怎么写CPL课程的小游戏项目而烦恼吗?
那可真是太巧了!我这恰好一不小心花了点时间写了一个小项目:
你猜怎么着!恰好完成了其中一道期末项目的要求!
我将代码都留了下来,并且编写了一段较为详尽的教程来告诉你我是怎么写出这个项目的。
我把项目放在 GitHub 这里了!要是真的不知道大项目该怎么写,那你也来看看吧!
还在为不知道怎么写CPL课程的小游戏项目而烦恼吗?
那可真是太巧了!我这恰好一不小心花了点时间写了一个小项目:
你猜怎么着!恰好完成了其中一道期末项目的要求!
我将代码都留了下来,并且编写了一段较为详尽的教程来告诉你我是怎么写出这个项目的。
我把项目放在 GitHub 这里了!要是真的不知道大项目该怎么写,那你也来看看吧!
XMake
是由国人开发的基于 Lua
的 C/C++
构建系统,支持多重编译器和平台,利用 Lua
轻量、简洁、灵活、跨平台等特性,带来不一样的构建体验。
请注意:不建议使用除 vscode
以外的编辑器使用 XMake
编写项目,这些编辑器有 XMake
插件但并不好用,没有办法提供合适的 include
解析,导致编写代码十分的困难,好在我们现在仅仅是借助 XMake
来帮助我们打包项目,在这里我们以 SDL2
为例,但 XMake
不仅限于此,它有十分充足的仓库,你几乎能在里面找到所有你想要使用的 C/C++
库。
大家可能在做 CQ's Challenge
的时候发现利用 getchar()
读掉换行符的方式(这在平时 OJ 上都是非常有效的)出现了意想不到的问题,样例在本地跑的是对的,但是交上去就不大对劲,这到底是什么情况?
是这样的,某 CQ 在 Windows
下出题,一开始并没有考虑到这个问题,所以使用了自己用 C++ 编写的随机数程序,并直接在 Windows
平台的环境下自动生成数据。
那在 Windows
平台下生成数据会有什么区别呢?
随着题目难度的增大,某 CQ 发现开始有越来越多的同学对空间超限以及时间超限发出了疑问。
某 CQ 十分的奇怪:明明题目的时空限制放的都很宽啊,怎么会出现超时超空间的问题呢?
一问发现有些同学的算法不是很好,导致在一些数据范围比较大的题目当中甚至出现了三重循环,这你不超时谁超时?如果看上去并不会超但是却时间超限了,那往往是死循环导致的。
那么我们到底该怎么样控制我们程序的时空复杂度呢?
其实十分的简单!下面就来大致的讲一讲罢!
时间复杂度:
这个时候你可以盯着题目给定的数据范围看,看看 n 的最大可以到多少,还有一些其它的数据范围,当你想好你将会怎么来做这道题之后,你就可以通过这些东西来计算自己应该用哪种数据类型(int
-> long long
)
某 CQ 今天发现有不少同学会在群里面求某道题的测试数据来验证自己程序的正确性。
每个人程序的做法是不同的,错误也很可能出在五花八门的地方,也就是说,同样的数据,别人是对的你不一定对,别人是错的你也不一定就是错的。
经常在群里求数据解决问题是不可取的,首先没有那么多的测试数据来给,其次也并不知道你错在哪里,不能给出更有针对性的数据。
那么我们怎么能更高效的获得可能使你程序出错的数据呢?某 CQ 就在这里给大家介绍介绍:
首先我们需要自己写个程序来生成随机的测试数据:
C 语言怎么写随机数呢?直接上代码你就懂了!